Une redirection 301Redirection permanente transférant le jus SEO de l'ancienne URL vers la nouvelle. est la réponse HTTP « Moved Permanently » : le serveur annonce que la page a déménagé pour de bon et donne sa nouvelle adresse dans l'en-tête Location. Le navigateur et GooglebotRobot d'exploration de Google qui parcourt le web pour découvrir et indexer les pages. suivent, et Google traite la nouvelle URLUniform Resource Locator. Adresse unique d'une page web. Une URL optimisée est courte, descriptive et contient le mot-clé. comme celle à montrer dans ses résultats.
Elle se pose en une ligne : une directive dans le .htaccess, un bloc dans nginx, deux clics dans un plugin. Ce qui fait perdre du trafic pendant une refonteModification majeure du design ou de la structure d'un site. Risque SEO si mal gérée., c'est la colonne de droite du fichier, la destination. Elle se choisit URL par URL et se vérifie au curl avant la bascule.
Ce que le code 301 dit au navigateur et à Google
Un 301 dit au client que la ressource a reçu une nouvelle adresse permanente, et que les prochaines requêtes doivent viser celle donnée dans Location. La norme HTTP (RFC 9110) range la famille 3xx dans les redirections ; les erreurs commencent à 4xx. L'« erreur 301 » qu'on croise dans les forums n'existe donc pas.
Côté navigateur, la norme précise qu'une réponse 301 peut être mise en cache sans consigne explicite. Le navigateur mémorise l'association et ne redemande plus au serveur. Beaucoup de « ma redirection ne marche pas » viennent de là : la règle fonctionne, mais l'onglet où vous testez depuis deux heures sert sa copie en cache. Testez en navigation privée ou au curl.
Côté Google, la 301 est un signal fort que la cible doit devenir l'URL canonique. L'ancienne adresse sort de l'index au fil des recrawls. Pour une migration, Google compte en général quelques semaines pour la majorité des pages d'un site de petite ou moyenne taille, davantage sur un gros site.
Les signaux mettent plus longtemps. Google demande de garder les redirections au moins un an, le temps de transférer tous les signaux vers les nouvelles URL, liens des autres sites compris.

Poser une redirection 301 selon votre serveur
Apache, nginx, PHP, CMS : quatre syntaxes pour un seul comportement attendu, un code HTTP 301 et un Location propre. Google les présente toutes comme des redirections côté serveur, la méthode qu'il interprète le plus sûrement.

Avec htaccess sur Apache
Pour une redirection simple, mod_alias suffit : la documentation d'Apache conseille ses directives plutôt que RewriteRule pour ce cas. Attention au choix de la directive : Redirect compare un début de chemin et recopie la suite, donc /ancienne-page/xyz part aussi vers /nouvelle-page/xyz. Pour une URL exacte, RedirectMatch et une expression ancrée.
# Avec mod_alias. Une URL exacte
RedirectMatch 301 ^/ancienne-page/$ https://exemple.fr/nouvelle-page/
# Un dossier entier : Redirect recopie la suite du chemin
Redirect 301 /ancien-dossier/ https://exemple.fr/nouveau-dossier/
Si votre .htaccess passe déjà par mod_rewrite, comme celui de WordPress, écrivez plutôt vos redirections en RewriteRule. Ce second bloc remplace le premier : une seule famille de directives par fichier.
# Avec mod_rewrite, au-dessus du bloc # BEGIN WordPress
RewriteEngine On
# Une URL exacte
RewriteRule ^categorie/produit-x/?$ https://exemple.fr/nouvelle-categorie/produit-x/ [R=301,L]
# Domaine entier, en conservant le chemin
RewriteCond %{HTTP_HOST} ^(www\.)?ancien-domaine\.fr$ [NC]
RewriteRule ^(.*)$ https://nouveau-domaine.fr/$1 [R=301,L]
Placez ces règles au-dessus du bloc # BEGIN WordPress : en dessous, la règle de WordPress qui envoie les URL vers index.php arrête le traitement avec son drapeau L, et votre redirection ne part jamais.
Accolez presque toujours L à R=301, comme le conseille Apache. Seul, le drapeau R laisse l'URL réécrite passer à la règle suivante, et Apache prévient que le résultat déclenche souvent des avertissements d'URI invalide.
Autre piège quand le fichier grossit : mélanger Redirect et RewriteRule sur les mêmes URL rend le résultat difficile à prévoir, l'ordre des lignes ne décide pas. La documentation d'Apache en tire un conseil simple : choisissez un seul module pour une tâche donnée.
Avec nginx
Pas de .htaccess ici : tout se passe dans le bloc server, et il faut recharger la configuration.
# Une URL exacte, dans le bloc server du site
server {
server_name exemple.fr;
location = /ancienne-page/ {
return 301 https://exemple.fr/nouvelle-page/;
}
}
# Bascule de domaine complète, avec et sans www, en http et en https
server {
listen 80;
listen 443 ssl;
server_name ancien-domaine.fr www.ancien-domaine.fr;
ssl_certificate /etc/ssl/ancien-domaine.fr.pem;
ssl_certificate_key /etc/ssl/ancien-domaine.fr.key;
return 301 https://nouveau-domaine.fr$request_uri;
}
La directive return 301 arrête le traitement et répond aussitôt au client. Gardez rewrite ... permanent pour les correspondances qui ont besoin d'une expression régulière. Sur une bascule de domaine, listez chaque variante dans server_name : une variante oubliée tombe sur le serveur par défaut. Et gardez un certificat valide pour l'ancien domaine, avec et sans www, le temps des redirections, sans quoi les anciennes URL en HTTPS échouent avant d'atteindre la règle.
En PHP ou dans la logique applicative
Utile quand la correspondance dépend d'une donnée en base, par exemple un ancien identifiant produit à retrouver.
header('Location: https://exemple.fr/nouvelle-page/', true, 301);
exit;
Le troisième argument compte. Sans lui, PHP accompagne l'en-tête Location d'un statut 302, et votre déplacement définitif part en redirection temporaire. Gardez aussi le exit : sans lui, la suite du script s'exécute quand même.
Via un CMS
WordPress, Shopify, PrestaShop et consorts stockent les redirections en base, avec une interface. Pratique pour quelques centaines de règles. La redirection ne part alors qu'une fois le CMS chargé, là où une règle serveur ou CDN répond avant. Prenons un catalogue qui migre 40 000 URL : les règles massives se posent côté serveur ou côté CDN quand la plateforme le permet, et le plugin garde les ajustements au fil de l'eau.
Sans accès au serveur : la meta refresh
Sur une plateforme fermée, la meta refresh dépanne : <meta http-equiv="refresh" content="0; url=https://exemple.fr/nouvelle-page/"> dans le <head>. Avec un délai de 0 seconde, Google l'interprète comme une redirection permanente. Avec un délai, même court, il la lit comme temporaire : le classique « vous allez être redirigé dans 5 secondes » garde l'ancienne URL dans l'index.
La redirection JavaScript vient en dernier, parce que Google ne la voit que si le rendu de la page réussit. Les autres méthodes hors serveur sont détaillées dans le guide des redirections SEO et des codes 3xx.
301 ou 302 : le tableau qui tranche
Le choix se fait sur une question : l'ancienne URL a-t-elle vocation à revenir ? Si personne ne prAlgorithme historique de Google évaluant l'importance d'une page selon ses backlinks. Toujours utilisé en interne.évoit de revenir en arrière, c'est une 301. Et certaines situations ne demandent aucune redirection.
| Situation | Réponse | Ce que Google en fait |
|---|---|---|
| Refonte, changement de slugPartie de l'URL identifiant une page spécifique, généralement après le nom de domaine., migration de domaine | 301 | Retient la nouvelle URL, transfère les signaux |
| Consolidation de deux pages en doublon | 301 vers la page gardée | Signal fort que la cible devient canonique |
| Produit en rupture temporaire | 200, disponibilité OutOfStock |
La fiche reste indexable et reprend son rôle au retour du stock |
| Service indisponible quelques jours | 302Redirection temporaire ne transférant pas le jus SEO. À utiliser avec précaution. vers une page qui explique | Garde l'URL d'origine dans les résultats |
| Site coupé en urgence un à deux jours | 503 | Ralentit l'explorationProcessus par lequel les robots des moteurs de recherche parcourent et analysent les pages web., garde les URL indexées un temps |
| Page supprimée sans équivalent | 404Code HTTP indiquant qu'une page n'existe pas. Trop d'erreurs 404 nuisent au crawl budget. ou 410 | Retire l'URL de l'index |
La rupture de stock mérite un mot. Le réflexe de la 302 y est tenace, et il envoie ailleurs l'internaute qui cherchait justement ce produit. Google recommande de laisser la fiche en ligne et de marquer le produit en rupture, dans la page et dans les données structuréesCode ajouté au HTML pour aider les moteurs à comprendre le contenu et générer des rich snippets. (la valeur OutOfStock de availability). Le détail de ces données est dans le guide de la fiche produit SEO. La redirection se discute quand le produit sort du catalogue : vers son remplaçant, ou vers la catégorie si elle répond au même besoin.
Pour une maintenance, Google conseille un 503 avec une page d'erreur informative si le site doit être coupé un à deux jours. Au-delà, les URL finissent par sortir de l'index.
Les deux erreurs de code n'ont pas le même prix. Un 302 posé sur un déplacement définitif laisse en principe l'ancienne URL dans les résultats. La cible peut quand même être indexée si d'autres signaux de canonisation pointent vers elle. Vous dépendez alors de ces signaux.
Un 301 posé sur une situation temporaire coûte plus cher : Google remplace l'URL que vous vouliez garder, et les navigateurs qui ont mis la 301 en cache peuvent continuer de rediriger vos visiteurs après le retrait de la règle.

Le plan de redirection : choisir la destination URL par URL
Les refontes qui perdent du trafic ont rarement zéro redirection. Elles ont un mapping incomplet ou des destinations choisies à la va-vite. Un guide de l'agence Wegrowth (mis à jour en mai 2026) raconte une migration progressive où l'ancienne plateforme a été débranchée alors que la moitié des contenus seulement avait migré : le trafic a perdu 50 % le temps de reconstruire les pages manquantes depuis la Wayback Machine. Une fois l'essentiel reconstruit, la perte était retombée à 15 %, avec 20 % des contenus toujours manquants.
Le plan de redirection est la table qui associe chaque ancienne URL à sa réponse. Ses étapes complètes, de l'inventaire au fichier de règles, sont dans le guide du plan de redirection SEO étape par étape. Voici les deux moments où il se joue.
Recenser les URL, y compris celles que vous ne connaissez plus
Un crawl de la production ne suffit pas. Il donne les URL liées depuis le site, et rate celles qui rankent encore alors qu'elles sont orphelines depuis deux ans. Croisez cinq sources dans un seul fichier :
- Le crawl complet de la production avant bascule, en gardant les 200 indexables et en notant les canoniques.
- Les pages du rapport Performances de la Search ConsoleOutil gratuit Google pour surveiller et optimiser la présence d'un site dans les résultats de recherche. sur 16 mois, l'historique maximal qu'elle conserve. L'export de l'interface s'arrête à 1 000 lignes : au-delà, passez par l'API (50 000 lignes par jour, par type de recherche et par propriété) ou par l'export groupé vers BigQuery.
- L'export du rapport d'indexationProcessus par lequel Google ajoute une page à sa base de données pour qu'elle puisse apparaître dans les résultats. des pages, pour récupérer les URL connues de Google que votre crawl n'a pas vues. Ses listes d'exemples s'arrêtent à 1 000 lignes par statut : sur un gros site, complétez par les logs.
- Les logs serveurFichiers enregistrant toutes les requêtes reçues par un serveur, permettant d'analyser le comportement des bots. sur 3 à 6 mois, filtrés sur les hits Googlebot. C'est la seule source exhaustive des URL que Googlebot explore, y compris celles absentes partout ailleurs.
- L'export des pages qui reçoivent des backlinksLien provenant d'un site externe pointant vers votre site. Facteur de ranking majeur. : une URL sans trafic mais avec trois liens depuis un média mérite sa ligne.
Dédoublonnez ensuite en normalisant : slash final, majuscules, paramètres de tracking, versions http, httpsProtocole sécurisé de transfert de données. Facteur de ranking depuis 2014. et www ramenées à la forme canonique. Ce nettoyage évite des règles contradictoires et des chaînes.
L'arbre de décision, URL par URL
Chaque ligne du fichier reçoit une décision prise à la main.
Un contenu équivalent existe sur la nouvelle version ? Redirection permanente vers lui. C'est le cas facile, et c'est la majorité du volume.
Quand le contenu a été éclaté en plusieurs pages, visez celle qui répond à l'intention de la requête d'origine plutôt que la catégorie parente. Les requêtesTerme ou expression que les utilisateurs saisissent dans un moteur de recherche. Base de toute stratégie SEO. de l'export GSC pour cette URL désignent la bonne destination bien mieux que votre arborescence.
Deux pages fusionnées : la moins performante part vers celle que vous gardez. C'est le cas où la 301 rapporte le plus, puisque vous réunissez deux historiques de liens sur une page. Pour savoir si deux pages doivent vraiment fusionner, comparez les top 10 des requêtes qu'elles visent, comme l'explique le guide de la cannibalisation SEO, quand deux pages se disputent la même requête.
Contenu supprimé sans équivalent, la question devient : la catégorie parente répond-elle à l'intention de la requête qui amenait du trafic ? Oui, vous redirigez vers elle. Non, vous renvoyez une 404 ou une 410, que Google traite de la même façon : l'URL sort de l'index. Une redirection vers une page hors sujet risque au contraire d'être traitée en soft 404. Le choix entre 404, 410 et noindexDirective indiquant aux moteurs de ne pas indexer une page. est détaillé dans le guide pour désindexer une URL de Google.
Restent les URL sans impressionNombre de fois qu'une page apparaît dans les résultats de recherche, qu'elle soit cliquée ou non. sur 16 mois, sans lien externe et sans hit Googlebot dans les logs. Celles-là, vous ne les redirigez pas. Les tris ou paramètres de session qui remplissent ces trois conditions finissent en 404, et c'est très bien : des centaines de milliers de règles sans valeur alourdissent le fichier pour un gain nul.

Le fichier final tient en cinq colonnes : url_source, url_cible, code, motif, clics_16m. La dernière sert au tri de recette : vous vérifiez à la main les 200 premières lignes, celles qui pèsent dans votre trafic, et le reste passe en contrôle par échantillon. Une migration de plusieurs milliers d'URL se joue sur ce fichier, et c'est le cœur de notre accompagnement SEO de refonte et de migration.
Les regex, à manier avec un garde-fou
Une règle en expression régulière couvre mille URL d'un coup et introduit mille erreurs d'un coup. La contre-mesure tient en deux gestes : ancrez vos motifs avec ^ et $, et passez le fichier de règles sur votre liste complète d'URL en préproduction pour vérifier qu'aucune URL de destination ne matche elle-même une règle. Les boucles naissent là.
Tester vos redirections avant la mise en ligne
Une redirection non testée est une hypothèse. La ligne de commande donne la réponse en une seconde :
curl -sI https://exemple.fr/ancienne-page/ | grep -iE '^(HTTP/|location:)'
Vous attendez une ligne de statut en 301 (HTTP/1.1 301 ou HTTP/2 301 selon le serveur) et un location qui pointe vers l'URL finale, avec le bon protocole et le bon slash final. Ancrez bien le motif en début de ligne : sans le ^, un en-tête content-location: remonterait aussi. Un 302 à la place du 301 signale une règle mal écrite, un header() PHP sans code, ou une règle de plugin qui écrase celle que vous attendiez.
Pour détecter les chaînes, le paramètre qui compte est num_redirects :
curl -sLo /dev/null -w '%{num_redirects} sauts -> %{url_effective} (%{http_code})\n' \
https://exemple.fr/ancienne-page/
Visez un saut. Google recommande de rediriger directement vers la destination finale, et à défaut de rester à 3 sauts au plus, en tout cas sous 5 : chaque saut ajoute du temps de réponse, et tous les navigateurs n'acceptent pas les longues chaînes. Googlebot en suit 10. Au-delà, la Search Console classe l'URL en « Erreur liée à des redirections ».
Réécrivez le mapping pour que chaque ancienne URL pointe directement vers la destination finale, y compris les redirections héritées d'une migration précédente. Oui, il faut relire l'ancien fichier de règles avant d'ajouter le nouveau.

En volume, vous bouclez sur votre fichier de recette, puis vous gardez les lignes à plus d'un saut ou dont le code final n'est pas 200 :
while read url; do
printf '%s -> ' "$url"
curl -sLo /dev/null -w '%{num_redirects} %{url_effective} %{http_code}\n' "$url"
done < urls_a_tester.txt > resultat.txt
awk '$3 > 1 || $5 != 200' resultat.txt
Ce filtre laisse passer une ancienne URL qui répond encore en 200 sans rediriger. Pour une recette complète, comparez aussi url_effective à la colonne url_cible du plan. Sur un gros volume, Screaming Frog fait le même travail en mode liste, comme l'explique notre tutoriel Screaming Frog.
Encore deux contrôles. Rejouez les tests avec le user-agent de Googlebot (curl -A "Googlebot"), parce que certaines configurations (mur de consentement, règles par user-agent, cache CDNContent Delivery Network. Réseau de serveurs distribuant le contenu depuis le serveur le plus proche de l'utilisateur.) répondent différemment selon le client. Un WAF ou un CDN peut aussi bloquer ce faux Googlebot : un 403 à ce test ne dit rien de ce que reçoit le vrai. Testez aussi les ressources : les PDF, les images qui ramassent des liens, les flux RSS et les vieux sitemaps ont des URL qui vivent leur vie dans l'index et dans les backlinks.
Après la mise en production, suivez trois choses pendant plusieurs semaines. Dans les logs serveur, la part de hits Googlebot qui tombent sur du 301 doit décroître. Si elle stagne, cherchez d'abord les liens internesEnsemble des liens entre les pages d'un même site. Distribue le jus SEO et guide les utilisateurs. et les sitemaps qui pointent encore sur les anciennes adresses.
Les 404 de ces mêmes logs, à réinjecter dans le fichier de mapping, parce que c'est là que réapparaissent les URL oubliées. Le rapport d'indexation de la Search Console enfin, où le statut « Page avec redirection » est normal pour une ancienne URL : celui à surveiller est « Erreur liée à des redirections ».
Rediriger coûte quelque chose, en performance et en crawl
Chaque redirection ajoute un aller-retour réseau avant le premier octet utile. Ça se mesure. La documentation de Lighthouse le chiffre : ce trajet supplémentaire peut retarder le chargement de la ressource de plusieurs centaines de millisecondes. Sur la page d'atterrissage d'un internaute arrivé depuis un vieux lien, c'est autant de retard sur le LCP.
Côté exploration, Google écrit que les longues chaînes de redirection ont un effet négatif sur le crawl. Sur un catalogue exploré chaque jour, chaque requête dépensée sur une URL redirigée ne sert pas à découvrir un nouveau produit, un sujet détaillé dans notre article sur le budget de crawl. Servez vos redirections côté serveur ou côté CDN, et évitez le script applicatif qui charge un framework complet pour produire un en-tête de quelques octets.

Questions fréquentes
Combien de temps faut-il garder une redirection 301 en place ?
Au moins un an. C'est, selon Google, le délai qu'il lui faut pour transférer tous les signaux vers la nouvelle URL, liens des autres sites compris. Du point de vue des internautes, Google conseille même de les garder indéfiniment. Une règle qui reçoit encore du trafic ou des liens externes reste en place.
Faut-il utiliser une redirection 301 ou une balise canonique ?
Une redirection supprime l'accès à l'ancienne URL, la canonique la laisse accessible. Google range les deux parmi les signaux forts de canonisation et réserve la redirection permanente au cas où vous abandonnez une page en double. Gardez la balise canonical pour les URL qui doivent rester atteignables, comme les variantes avec paramètres de tracking. Le paramètre srsltid que Merchant CenterPlateforme Google pour gérer les flux produits et apparaître dans Google Shopping. ajoute aux URL en est l'exemple type : une redirection qui le retire coupe le suivi des conversionsAction souhaitée accomplie par un visiteur (achat, inscription, contact). Objectif ultime du SEO., la canonicalBalise indiquant la version principale d'une page en cas de contenu dupliqué ou similaire. suffit.
Une redirection 301 fait-elle perdre du référencement ?
Pas si la destination répond à la même requête que l'ancienne page. Google utilise la 301 comme un signal fort que la cible remplace la source et transfère les signaux en gardant la redirection au moins un an. Les pertes viennent d'URL oubliées dans le plan, de destinations hors sujet, de chaînes ou de règles retirées trop tôt.
Que faire des redirections lors d'un changement de nom de domaine ?
Redirigez chemin par chemin en 301, en conservant la structure d'URL quand elle ne change pas, puis déclarez le déplacement dans l'outil de changement d'adresse de la Search Console, pour chaque variante validée de l'ancien domaine. Gardez les redirections au moins un an, donc l'ancien domaine enregistré au moins aussi longtemps. Les étapes autour de la bascule sont dans la checklist de migration SEO.
Sources
- RFC 9110: HTTP Semantics, rfc-editor.org
- Redirections et recherche Google, Google Search Central
- Effet des codes d'état HTTP sur les robots d'exploration Google, Google Search Central
- Migrations de sites, Google Search Central
- When not to use mod_rewrite : httpd.apache.org/docs/2.4/rewrite/avoid.html
- RewriteRule Flags : httpd.apache.org/docs/2.4/rewrite/flags.html
- Module ngx_http_rewrite_module : nginx.org/en/docs/http/ngx_http_rewrite_module.html
- PHP: header : php.net/manual/fr/function.header.php
- Spécifier une URL canonique avec rel="canonical" et d'autres méthodes, Google Search Central
- Désactiver ou suspendre temporairement un site Web, Google Search Central
- Comment ajouter des données structurées spécifiques à un extrait produit, Google Search Central
- Réussir sa migration SEOSearch Engine Optimization. Ensemble des techniques visant à améliorer le positionnement d'un site web dans les résultats naturels des moteurs de recherche.Changement majeur d'un site (domaine, CMS, structure) nécessitant une stratégie pour préserver le SEO. grâce au plan de redirection : wegrowth.io/seo-referencement-naturel/plan-de-redirection
- [GA4] Rapport "Requêtes" - Ordinateur, Aide Google
- Rapport sur l'indexation des pages, Aide Google
- curl : curl.se/docs/manpage.html
- Avoid multiple page redirects : developer.chrome.com/docs/lighthouseOutil open-source Google auditant performance, accessibilité, SEO et bonnes pratiques d'une page./performance/redirects
- Gestion du budget d'exploration, Google Search Central
- mod_alias : httpd.apache.org/docs/2.4/mod/mod_alias.html
- Exporter des données, Aide Google
- Exporter les données de la Search Console à l'aide de l'API Search Console, Aide Google
- Lancer une nouvelle exportation groupée de données, Aide Google
- How nginx processes a request : nginx.org/en/docs/http/request_processing.html
- Apache mod_rewrite Technical Details : httpd.apache.org/docs/2.4/rewrite/tech.html
- Apache HTTPD / .htaccess, developer.wordpress.org

