La ressource a une nouvelle URL permanente.
Quand l’utiliser
Anciennes URL après une refonte de site. Les navigateurs et les moteurs de recherche la retiennent.
Bon à savoir
Pour le SEO, 301 indique aux moteurs de recherche que le déplacement est permanent : Google transfère les signaux de classement et remplace l’ancienne URL par la nouvelle dans son index. Google traite 301 et 308 de la même façon et transmet aussi les signaux via les 302 de longue durée, mais un 302 peut laisser l’ancienne URL indexée plus longtemps. Conservez les 301 pendant au moins un an et faites-les pointer directement vers l’URL finale, sans passer par une chaîne.
Les navigateurs mettent les 301 en cache de façon agressive, souvent sans expiration, si bien qu’une redirection erronée peut rester dans les navigateurs des utilisateurs longtemps après la correction côté serveur. Testez d’abord avec un 302, ou envoyez Cache-Control: max-age=3600 sur la redirection. Les clients peuvent transformer un POST en GET en suivant un 301 ; utilisez 308 pour conserver la méthode. Mettez à jour les liens internes et les sitemaps vers les nouvelles URL plutôt que de compter sur les redirections.
Redirection (3xx)
Les codes 3xx sont des redirections : le client doit aller ailleurs, ou utiliser sa copie en cache, pour terminer la requête.
À quoi ça ressemble
HTTP/1.1 301 Moved PermanentlyComment l’envoyer
| Node.js / Express | res.redirect(301, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=301) |
| nginx | return 301 https://example.com$request_uri; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/