Redirections 301 : transférer l'autorité sans perte
Qu'est-ce qu'une redirection 301 ?
Une redirection 301 (Permanent Redirect) est un code de réponse HTTP qui indique au navigateur et au robot de crawl qu'une page a définitivement déménagé vers une nouvelle URL. Elle transfère l'autorité SEO (PageRank, backlinks, signaux d'indexation) de l'ancienne URL vers la nouvelle.
C'est l'outil essentiel lors d'une refonte de site, d'un changement d'URL, d'une suppression de page ou d'un passage de HTTP à HTTPS. Sans redirection 301, l'ancienne URL renvoie une 404 et toute l'autorité accumulée est perdue.
301, 302, 307, 308 : les différences
| Code | Nom | Semantique | Transfert d'autorité ? | Usage |
|---|---|---|---|---|
| 301 | Permanent Redirect | La page a définitivement déménagé | Oui (90-100 %) | Refonte, changement d'URL, suppression |
| 302 | Temporary Redirect | La page est temporairement ailleurs | Non (ou très partiel) | Maintenance, A/B test, campagne saisonnière |
| 307 | Temporary Redirect (strict) | Comme 302 mais préserve la méthode HTTP (POST reste POST) | Non | Formulaires, APIs en maintenance |
| 308 | Permanent Redirect (strict) | Comme 301 mais préserve la méthode HTTP | Oui (90-100 %) | Migration HTTP→HTTPS avec formulaires |
Règle simple : si le déménagement est définitif → 301. S'il est temporaire → 302. En cas de doute, 301 (on peut toujours annuler une 301, mais une 302 utilisée pour un déménagement définitif ne transfère pas l'autorité de façon fiable).
Quand utiliser une redirection 301
| Scénario | Exemple | Redirection |
|---|---|---|
| Changement d'URL (refonte) | /seo/fondamental/maillage.php → /seo-fondamental-maillage-interne | 301 |
| Suppression de page | Page obsolète → page la plus pertinente du site | 301 vers la page pertinente (pas vers la home) |
| Passage HTTP → HTTPS | http://yperline.net/... → https://yperline.net/... | 301 (ou 308) |
| Suppression du www | https://www.yperline.net/... → https://yperline.net/... | 301 |
| Suppression d'extension .php | /seo.php → /seo | 301 |
| Fusion de 2 pages | 2 pages sur le même sujet → 1 page | 301 de la page secondaire vers la page principale |
| Changement de domaine | ancien-domaine.fr → yperline.net | 301 sur toutes les URLs |
Les 6 règles d'or
| # | Règle | Pourquoi |
|---|---|---|
| 1 | Toujours en 301 (pas de 302 pour un déménagement définitif) | La 302 ne transfère pas l'autorité de façon fiable |
| 2 | Une seule redirection (pas de chaîne A → B → C) | Chaque hop dilue l'autorité et ralentit le crawl |
| 3 | Rediriger vers une page pertinente | Rediriger vers la home dilue l'autorité et déçoit l'utilisateur |
| 4 | Rediriger page par page (pas un wildcard global) | Un RewriteRule ^ .* / [R=301] qui envoie tout vers la home est une erreur majeure |
| 5 | Mettre à jour les liens internes après la redirection | Les liens internes vers l'ancienne URL fonctionnent (via la 301) mais ajoutent un hop inutile |
| 6 | Surveiller les backlinks vers l'ancienne URL | Les backlinks externes suivent la 301 automatiquement, mais vérifier dans Ahrefs/Majestic que le transfert a bien eu lieu |
Implémentation (Apache, Nginx, PHP)
Apache (.htaccess)
# Redirection simple : /ancienne-page → /nouvelle-page
Redirect 301 /ancienne-page https://yperline.net/nouvelle-page
# Redirection avec regex : toutes les URLs .php → sans .php
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/([^.]+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L]
# Redirection de domaine : www → non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# Redirection HTTP → HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Nginx
# Redirection simple
rewrite ^/ancienne-page$ https://yperline.net/nouvelle-page permanent;
# Redirection .php → sans .php
if ($request_uri ~* ^/([^/]+)\.php$) {
return 301 https://yperline.net/$1;
}
# Redirection www → non-www
server {
listen 443 ssl;
server_name www.yperline.net;
return 301 https://yperline.net$request_uri;
}
PHP (dernier recours)
<\?php
// À placer en haut du fichier, avant toute sortie HTML
header("Location: https://yperline.net/nouvelle-page", true, 301);
exit;
Préférence : faire les redirections au niveau du serveur (Apache/Nginx) plutôt qu'en PHP. C'est plus rapide (pas de traitement PHP) et plus fiable (pas de dépendance au code applicatif).
Les chaînes de redirection : le piège n°1
Une chaîne de redirection est une suite de 2+ redirections avant d'atteindre la page finale. Exemple :
http://www.yperline.net/seo.php
→ 301 → https://www.yperline.net/seo.php (www → non-www)
→ 301 → https://yperline.net/seo.php (suppression .php)
→ 200 → page finale
Chaque hop dans la chaîne :
- Ajoute 100-300 ms de latence (round-trip HTTP).
- Dilue légèrement l'autorité (estimé à 5-15 % par hop, bien que les études récentes suggèrent que la perte est minime).
- Consomme du crawl budget (le robot doit suivre chaque hop).
- Peut créer des boucles infinies si la configuration est erronée (508 Loop Detected).
Comment les détecter
- Screaming Frog (gratuit ≤ 500 URLs) : mode « Crawl » → onglet « Response Codes » → filtrer sur « Redirect Chain ».
- curl :
curl -I -L http://www.yperline.net/seo.php→ afficher tous les hops. - Google Search Console → « Améliorations » → « Redirections » : liste des chaînes détectées.
Comment les corriger
La règle : une seule redirection entre l'URL initiale et l'URL finale. Si l'utilisateur tape http://www.yperline.net/seo.php, la réponse doit être un seul 301 vers https://yperline.net/seo, pas 3 hops successifs.
Dans le .htaccess, l'ordre des règles est crucial : faire la redirection « tout-en-un » (protocole + www + extension) en une seule règle si possible, ou accepter un maximum de 2 hops (protocole + www d'un côté, extension de l'autre).
Redirections et GEO : ce que les bots IA font
Les bots IA (GPTBot, PerplexityBot, ClaudeBot) suivent les redirections 301 de la même manière que Googlebot. Cependant, leur crawl budget étant beaucoup plus limité, chaque hop supplémentaire a un impact proportionnellement plus fort :
- Un bot IA avec un budget de 10 pages qui suit 3 hops pour atteindre une page « consomme » 3 visites au lieu de 1. Sur 10 pages de budget, c'est 30 % perdu en redirections.
- Les IA n'indexent pas l'URL intermédiaire : si
/seo.phpredirige vers/seo, c'est/seoqui est indexé. L'URL/seo.phpn'existe pas pour l'IA. - Les citations IA pointent vers l'URL finale : si votre page est citée par Perplexity, le lien pointera vers
/seo, pas vers/seo.php.
Recommandation : minimiser les hops. Idéalement, une seule redirection entre l'URL « sale » (http, www, .php) et l'URL propre (https, non-www, sans extension).
Vérifier ses redirections
- curl :
curl -I https://yperline.net/seo.php→ doit renvoyerHTTP/2 301+location: https://yperline.net/seo. - curl -I https://yperline.net/seo → doit renvoyer
HTTP/2 200(pas de redirection supplémentaire). - Screaming Frog : crawl complet → vérifier l'onglet « Redirect Chains » (doit être vide). Vérifier l'onglet « 404 » (doit être vide ou minime).
- Google Search Console → « Indexation » → « Pages » : vérifier qu'il n'y a pas de « Page détectée via une redirection » en masse.
- Test des URLs anciennes : si vous avez fait une refonte, tester 10-20 URLs anciennes pour vérifier qu'elles redirigent bien vers la bonne page (pas vers la home par défaut).
Checklist redirections
| # | Point de contrôle | Statut |
|---|---|---|
| 1 | HTTP → HTTPS en 301 (pas de contenu accessible en HTTP) | ☐ |
| 2 | www → non-www en 301 | ☐ |
| 3 | URLs .php → URLs propres en 301 | ☐ |
| 4 | Pas de chaîne de redirection > 1 hop (Screaming Frog) | ☐ |
| 5 | Pas de boucle de redirection (508) | ☐ |
| 6 | Chaque URL supprimée a une 301 vers une page pertinente | ☐ |
| 7 | Pas de wildcard qui envoie tout vers la home | ☐ |
| 8 | Liens internes mis à jour (pas de lien vers une URL qui fait un 301) | ☐ |
| 9 | Sitemap XML contient les URLs finales (pas les URLs redirigées) | ☐ |
| 10 | GSC : pas d'alerte « Redirection » dans les améliorations | ☐ |
Pour le contexte plus large, voir notre page SEO technique. Pour le crawl budget (impact des chaînes), voir Crawl budget. Pour la vue d'ensemble, voir le guide complet du SEO.
Nettoyez vos redirections en 15 minutes
Audit SEO gratuit : nous crawlons votre site, détectons les chaînes de redirection, les 404 et les 301 inutiles. Vous repartez avec la liste exacte des corrections à faire dans le .htaccess.
Demander mon audit gratuit