Les redirections sont un élément essentiel et usuel dans la vie d'un site web. Que cela soit dans le cadre d'un changement isolé d'URL ou pour une migration plus massive, elles font partie de l'arsenal du gestionnaire de site et également du référenceur. Or, Google a changé sa façon de prendre en compte ces redirections 30x (301, 302 et autres) et le passage de PageRank que cela induit. Il était donc important de faire un point global et exhaustif à ce sujet.
En février dernier, John Mueller de Google a créé pas mal de remous dans le Landernau du SEO avec un simple commentaire sur Google+ : « c'est faux de dire que les redirections 302 ne transmettent pas de linkj Pagerank. C'est un mythe ».
Fig.1. Tweet de John Mueller.
Depuis, cette information a été confirmée à plusieurs reprises, ainsi que d'autres à propos des redirections. Google a clairement changé sa façon de les prendre en compte, et un certain nombre de recommandations traditionnelles concernant les « redirects » sont clairement obsolètes, parfois depuis des années.
Il était donc intéressant de faire le point à date sur la façon dont Google prend en compte les redirections. Mais commençons par quelques rappels techniques à leur sujet...
Les différents type de redirections
Une redirection consiste à renvoyer une requête d'un navigateur depuis une URL A vers une URL B. Certaines redirections sont actionnées par un code renvoyé par le serveur web : il s'agit des redirections « 30x », appelées ainsi car le serveur renvoie un code http de type 301, 302 etc.
D'autres sont gérées côté navigateur uniquement : il s'agit des redirections en Javascript, ou de type meta refresh.
Suivant le protocole utilisé (HTTP 1.0, ou HTTP 1.1), il existe différents types de redirection côté serveur.
301 Moved Permanently (http 1.0 et 1.1)
Il s'agit d'une redirection permanente. Le code 301 indique que la nouvelle URL est l'adresse définitive de la ressource.
302 Found (http 1.0), 302 Moved Temporarily (http 1.1)
La redirection 302 est une redirection temporaire. Le code indique que l'URL vers laquelle la requête du navigateur est renvoyée risque de changer à nouveau, ainsi que la ressource associée.
303 See Other (http 1.1)
Le code 303 a été créé pour des redirections pour lesquelles la méthode GET est imposée pour la deuxième requête de redirection. En fait, le code 303 correspond à l'ancien comportement des 302 sur de nombreux navigateurs. Les codes 303 et 307 (voir plus loin) permettent de gérer de manière précise le comportement attendu des redirections temporaires.
304 Not Modified
Ce code correspond à une redirection vers une page en cache. Il permet de gérer des requêtes dites « conditionnelles », en indiquant au navigateur si le fichier a été modifié depuis la dernière requête effectuée. Si ce n'est pas le cas, le navigateur recharge la copie de la ressource qu'il a téléchargée la dernière fois.
Notons que les requêtes conditionnelles sont utilisées par les bots des moteurs de recherche pour économiser de la bande passante, et que paramétrer son serveur web pour les gérer à bon escient est vivement recommandé pour faciliter l'exploration de son site, surtout s'il comporte beaucoup d'URL ou si vos serveurs sont régulièrement surchargés.
307 Temporary Redirect et 308 Permanent Redirect (http 1.1)
Ces codes correspondent au comportement des 302 et des 301 respectivement, mais avec une contrainte technique : la méthode (POST ou GET) utilisée lors de la requête initiale reste obligatoirement inchangée lors de la seconde requête.
Notons qu'il existe deux autres codes : 305, rarement utilisé pour des raisons de sécurité, et le code 306, obsolète.
Les redirections Javascript
Ces redirections sont déclenchées par un script Javascript qui déclenche l'appel d'une URL B depuis une URL A dans le navigateur.
Les redirections « meta refresh »
L'emploi d'une balise meta « refresh » dans le navigateur produit une redirection automatique vers une page B après que la page A soit restée affichée après un certain délai (qui peut être fixé à zéro, dans ce cas la redirection est immédiate et ressemble à un comportement de type 301/302).
Comment tester le type de redirection utilisé ?
Les codes http renvoyés sont visibles dans l'en-tête http du document. Pour les voir, il faut donc utiliser un plugin ou un outil permettant de lire les en-têtes http.
Fig.2. Le plugin « Live http header » est l'un des plus utilisés pour analyser les comportements de redirection, notamment en cas de redirections en cascade. Notons que des crawlers comme Screaming Frog
peuvent également aider à détecter la présence de telles redirections.
Mais lire l'en-tête http peut s'avérer insuffisant en cas de redirections en cascade (l'URL A redirige vers l'URL B qui redirige vers une URL C etc…). Dans ce cas, on ne verra que la première redirection, et il faut un outil capable de suivre des redirections multiples pour analyser ces redirects mutiples.
Les redirections et le PageRank
Aujourd'hui la situation est claire : selon Google, tous les types de redirection de type 30x transmettent du PageRank. Ce point a été confirmé à plusieurs reprises par John Mueller en 2016, ainsi que par Gary Illyes au début de l'été.
Fig.3. Le tweet de Gary Illyes.
Les 301 transmettent autant de PageRank qu'un lien normal
On sait depuis une déclaration de Matt Cutts datant de 2013, que chez Google, les redirections transmettent autant de PageRank qu'un lien normal (https://youtu.be/Filv4pP-1nw) : « The amount of PageRank that dissipates through a 301 is currently identical to the amount of PageRank that dissipates through a link. »
Par conséquent, si on veut créer un lien de l'URL A vers l'URL C, on peut faire directement un lien pointant de A vers C, ou indifféremment, vers un lien de A vers B redirigé vers C, ou une redirection de A vers B et un lien de B vers C. Dans les 3 cas, le PageRank transmis sera le même.
En 2010, Matt Cutts disait quelque chose de différent dans une interview réalisée par Eric Enge : il y avait bien une « perte » supplémentaire due à l'emploi d'une redirection plutôt que d'un lien direct pour relier une page A à la page C. Au début des années 2000, on expliquait ce phénomène par le mécanisme décrit ci-après.
La disparition du « coefficient d'atténuation » pour les redirections a donc eu lieu quelque part après 2010 et avant 2013. La conséquence est que l'impact des migrations est devenu un peu moins sensible après ce changement.
Fig.4. Voici comment était comprise la transmission du PageRank via les redirections jusqu'en 2013 : la formule du PageRank contient un coefficient d'atténuation (« dampening factor ») qui fait que seule une partie du PageRank de la page A est transmise à la page B. Ce coefficient était donné comme proche de 85% dans la formule dévoilée dans l'article initial des fondateurs de Google.
Fig.5. Dans le cas d'une redirections 301, les calculs étaient faits comme s'il existait un lien entre l'URL A et l'URL redirigée : l'url B. Ce fonctionnement a été plus ou moins confirmé par Matt Cutts en 2010. Par contre, on ne savait pas si le coefficient d'atténuation était le même (ce qui est plausible).
Fig.6. Si l'on en croit Google, les 301 sont « neutres » actuellement dans la transmission du PR :100% du PR est transmis, tout se passe comme si il y avait un lien direct entre l'URL A et l'URL C.
Les 302 « durables » sont assimilées à des 301 pour indexer les « bonnes » URL.
Google a constaté que les webmasters renvoyaient souvent des codes 302 (redirection « temporaire ») là où une 301 était plus appropriée. En fait, lorsqu'une redirection de type 302 se révèle « permanente », Google prend acte de la situation au bout de quelques jours et se comporte comme s'il avait à faire à une 301. Ce comportement modifie la façon dont Google indexe les URL redirigées en 302.
Dans un premier temps, tant que la redirection est considérée comme temporaire, Google indexe l'ancienne URL, et pas la nouvelle. Dans un second temps, Google décidera de substituer l'URL cible à l'ancienne dans l'index.
Ce comportement a été confirmé par John Mueller dans un hangout datant du 16 octobre 2015.
Les 302 transmettent aussi du PageRank
On trouve souvent dans la littérature sur le SEO une affirmation selon laquelle les redirections 302 ne transmettent pas de PageRank. Mais en fait c'est faux. Comme toutes les redirections, les 302 transmettent du PageRank. Ce point a été confirmé à plusieurs reprises par les porte-parole de Google depuis oct 2015. Notamment dans cette déclaration de John Mueller.
Fig.7. Un exemple tiré du site Moz.com reprenant le « mythe »
dénoncé par John Mueller : les 302 ne transmettent pas de PageRank.
Redirections et bonnes pratiques
En règle générale, il est recommandé d'utiliser des redirections 301 (ou 308)
Les redirections qui sont les mieux prises en compte par les moteurs de recherche sont les redirections permanentes (de type 301 ou 308). La nouvelle URL est indexée dès qu'elle est découverte. On cherchera donc autant que possible à utiliser une redirection 301 si on souhaite renvoyer un internaute (ou un bot) qui appelle l'URL A vers l'URL B.
Si on utilise une 302, il faut que la redirection soit TRES temporaire
Les 302 diffèrent l'indexation de la page cible, ce qui est parfois gênant. Donc il faut réserver l'utilisation des 302 à des cas de redirection très temporaires (moins de quelques heures). Au-delà, il faut utiliser un code 301. A contrario, une redirection « permanente » ne veut pas dire « jusqu'à la fin des temps ». Si la redirection doit disparaître au bout de quelques jours, ou pointer vers une nouvelle URL, il sera toujours possible de mettre à jour la redirection 301.
Les redirections ne font plus perdre de PageRank, mais rediriger des URL n'est pas sans conséquences
Si beaucoup de SEO sont (encore aujourd'hui) incrédules quand on leur dit que les redirections ne font plus perdre de PageRank, c'est que beaucoup ont observé des chutes de visibilité notables lors des processus de migration de sites. Les redirections sont effectivement en cause, mais pas à cause du PageRank. Les moteurs associent des « signaux » aux URL, et ce sont ces signaux qui servent à calculer le score de pertinence pris en compte dans les classements. Quand on redirige les anciennes URL vers de nouvelles, il faut du temps pour que le changement soit détecté, et totalement pris en compte par Google. Et si les URL cibles sont vraiment nouvelles, certains signaux liés aux anciennes URL sont transmis par les redirections (notamment les critères off-page), mais d'autres prennent du temps à se calculer. Le résultat est que les nouvelles URL peuvent moins bien se positionner que les anciennes pendant quelque temps.
Une exception notable : les redirections entre version mobile et desktop des sites doivent être effectuées via des 302 pour des raisons techniques
Les réglages par défaut des systèmes de cache et des reverse proxy peuvent provoquer des comportements inattendus en cas de redirection automatique en 301 des URL mobile en m. vers des URL desktop en www (ou l'inverse). Il est donc recommandé de renvoyer un code 302 ou 307 pour ces cas.
Fig.8. Pour rediriger un internaute utilisant un smartphone d'une URL desktop vers l'URL mobile,
(ou réciproquement), une redirection 302 est conseillée.
Ne pas abuser des redirections en cascade
Les redirections en cascade (l'URL A redirige vers l'URL B qui redirige vers l'URL C) sont parfaitement interprétées par Google. Mais tant que le nombre de redirections successives ne dépasse pas deux ou trois. Au-delà, la dégradation des performances devient trop importante et l'exploration des URL aléatoires. Idéalement, on remplacera les redirections en cascade par une seule redirection (A redirige vers C).
Dans tous les cas, il faut évidemment éviter les redirections en boucle (l'URL A redirige vers B qui redirige… vers A).
Trop de redirections internes envoient un mauvais signal
Si l'appel d'une URL montrée sur votre site déclenche une redirection dans 80% des cas, l'exploration du site par un bot de moteur de recherche devient plus lente, et sa structure plus difficile à comprendre. Plus généralement, une telle situation envoie un signal de mauvaise qualité technique du site. Il est donc recommandé d'éviter de montrer de manière trop massive des URL sur le site qui diffèrent des « vraies » URL valides, y compris si les URL sont redirigées en 301.
Fig.9. La video de Matt Cutts répondant à la question « est-ce qu'il y'a une limite
au nombre de redirections 301 que je peux faire sur un site ? ».
Source :
https://www.youtube.com/watch?v=r1lVPrYoBkA.
L'utilisation de la balise meta-refresh est déconseillée, sauf si aucune autre solution technique n'est disponible
Google interprète correctement les balises meta-refresh. Mais déconseille fortement leur usage dans le cas d'une migration de site.
Plus généralement, l'emploi de cette méthode n'est pas très efficace d'un point de vue performances et peut générer des effets de bord inattendus pour les navigateurs, y compris et surtout pour les bots des moteurs de recherche. Dans tous les cas, on leur préférera des redirections 30x.
Les redirections Javascript peuvent être contraires au guidelines de Google
Les redirections Javascript sont très simples et très souples à utiliser, mais il faut les utiliser à bon escient car certaines implémentations sont déconseillées d'un point de vue SEO.
Tout d'abord, elles peuvent être assimilées à des tentatives de redirections trompeuses (« sneaky redirects »). Toutes les redirections Javascript ne sont pas forcément « trompeuses », mais il faut prendre en compte le risque d'une assimilation à ces méthodes qui violent les guidelines de Google (et d'autres moteurs).
On trouvera à cette adresse une description de ce que Google considère comme des redirections trompeuses.
Par ailleurs, la découverte des URL cibles de ces redirections par les bots des moteurs de recherche peut s'avérer aléatoire, voire impossible. Et même Google, qui gère mieux l'exécution du Javascript que d'autres moteurs, peut ne pas comprendre exactement comment prendre en compte ce type de lien. Et quand bien même les URL cibles seraient découvertes, la transmission du linkjuice par ce type de redirection n'est pas assurée. Bref, l'emploi de ce type de redirection n'est vraiment pas « optimal » pour le SEO.
Par ailleurs, elles souffrent d'un défaut majeur : elles ne fonctionnent
pas pour les bots ou les navigateurs qui ne supportent pas le Javascript !
Conclusion : une prise en compte qui a évolué, mais des recommandations qui restent les mêmes
Malgré la confusion assez généralisée qui règne dans le petit monde du SEO autour des redirections, la communication de Google sur le sujet est devenue plus claire au fil du temps. Certes, elles ne sont plus prises en compte par Google exactement comme par le passé : et cette évolution est somme toute assez logique. Mais rappelons que tous les moteurs de recherche ne fonctionnent pas forcément comme Google. Et que les recommandations à propos des redirections sont d'abord des recommandations dictées par des considérations et des bonnes pratiques techniques.
Conclusion : si maintenant toutes les 30x transmettent bien du PageRank, rien n'a vraiment changé dans les bonnes pratiques à respecter. Le moteur est juste devenu un peu plus capable de calculer correctement via les redirections les bons indicateurs de popularité pour des sites dont les URL changent… Et c'est une très bonne nouvelle (même si elle date d'il y a 3 ans).
Liens utiles
Plugin web developer
https://addons.mozilla.org/en-US/firefox/ addon/web-developer/
https://chrome.google.com/webstore/detail/ web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm
Plugin live http header
https://addons.mozilla.org/en-US/firefox/ addon/live-http-headers/
https://chrome.google.com/webstore/detail/ live-http-headers/iaiioopjkcekapmldfgbebdclcnpgnlo
Phlippe Yonnet
Directeur Général de l'agence Search-Foresight, groupe My Media (http://www.search-foresight.com)