Les différents types de redirection
Par Victor Brito, le dimanche 11 janvier 2009, à 22h25 - Catégorie Redirections - Lien permanent
Il y a redirection lorsqu'ayant demandé à accéder à la page A, on atterrit sur une page B. Une redirection peut être mise en place pour diverses raisons (modification du nom d'un fichier, changement de nom de domaine ou de sous-domaine, traitement d'un script…) ; mais, il existe plusieurs types de redirection, dont les conséquences ne sont pas identiques en matière de référencement.
En effet, il y a plusieurs moyens et manières de rediriger A vers B, A et B pouvant être n'importe quel type de document accessible au moyen d'une URL. Une redirection peut s'effectuer de manière temporaire ou permanente, avec plusieurs moyens : en JavaScript, au moyen de l'élément meta et côté serveur.
Redirection en JavaScript
La redirection d'une URL A vers une URL B est codée en JavaScript comme suit :
window.location.replace ('http://exemple.fr');
Outre qu'elle pose des problèmes d'accessibilité (les utilisateurs chez qui JavaScript est désactivé ne sont pas redirigés et le bouton « Précédent » des navigateurs est inutilisable pour revenir à la page précédemment consultée), la redirection en JavaScript est un écueil pour le référencement, puisque les robots des moteurs de recherche ne lisent pas le JavaScript. Elle est donc à proscrire pour le référencement.
Redirection au moyen de l'élément meta
Un autre moyen de rediriger consiste à utiliser l'élément HTML meta, en détournant l'envoi de l'en-tête refresh de sa fonction initiale (rafraîchir la page actuellement consultée au bout d'un certain temps) pour qu'il n'y ait aucun délai avant rafraîchissement et que la page soit redirigée au lieu d'être rafraîchie. Ce qui donne le code suivant :
<meta http-equiv="refresh" content="0;http://exemple.fr" />
Cette technique, en plus de poser des problèmes d'accessibilité (le bouton « Précédent » des navigateurs est inutilisable pour revenir en arrière), a été abusivement employée pour créer des pages satellites, dont le but n'était que d'optimiser artificiellement le référencement du site concerné : les internautes étaient redirigés vers le site et son contenu, cependant que les robots des moteurs de recherche, ne pouvant suivre la redirection, analysaient la page, remplie de mots-clés sans réel contenu. Étant donné que les moteurs de recherche décèlent aisément ce type de page et n'hésitent plus à sanctionner les sites qui y recourent, ce type de redirection est à proscrire.
Redirection côté serveur
La manière la plus propre de rediriger une URL est de le faire côté serveur. C'est aussi la plus transparente, aussi bien en termes d'accessibilité que de référencement. En outre, la redirection côté serveur offre des possibilités de paramétrer le genre de redirection, ce que ne permettent pas les techniques présentées plus haut.
En effet, le protocole HTTP prévoit six types de redirection (pour plus de détails, vous pouvez consulter la RFC 2616). Nous ne nous en intéresserons ici qu'à deux : la redirection permanente (code HTTP : 301) et la redirection temporaire (code HTTP : 302).
Redirection 301
La redirection permanente (ou redirection 301) consiste à rediriger de manière permanente l'URL A vers l'URL B. Pour les robots des moteurs de recherche, cela signifie que A n'existe plus et est remplacée par B et que, par conséquent, il faudra supprimer A de l'index des moteurs de recherche (si elle était indexée) et indexer B à la place, en y reportant toutes les données liées au classement de A (liens retours, PageRank…).
Redirection 302
La redirection temporaire (ou redirection 302) consiste à rediriger, pour une durée limitée dans le temps, l'URL A vers l'URL B. Pour les robots des moteurs de recherche, cela signifie que A est temporairement indisponible, B s'affichant à sa place tant que A demeurera indisponible, et que, par conséquent, il ne faudra pas indexer B, mais continuer à indexer A ; par conséquent, B ne pourra pas bénéficier des données liées au classement de A (liens retours, PageRank…), puisqu'il ne sera jamais indexé dans cette condition.
Quel type de redirection choisir ?
Ainsi, une redirection mal choisie peut avoir de lourdes conséquences sur le référencement d'un site : les sites référencés sur un annuaire ne proposant que des redirections 302 ne bénéficieront d'aucun lien retour en provenance de ce dernier. Cela ne veut pas dire, pour autant, que la redirection 302 doit être proscrite systématiquement.
Une redirection 302 conviendra, par exemple, pour le traitement d'un script qui doit parcourir plusieurs fichiers, ou bien, dans le cadre d'un site en pleine refonte ou dont la nouveauté ne doit être révélée qu'au dernier moment, pour une page invitant les utilisateurs à patienter (bien entendu, dans des termes plus consistants qu'un laconique « Site en travaux »).
En revanche, une redirection 301 sera plus appropriée, voire recommandée, lorsqu'il s'agira d'une modification d'un nom de fichier, d'un changement de nom de domaine ou de sous-domaine, d'une migration d'un système d'URLs à un autre (par exemple, en cas de migration d'un CMS vers un autre). Autrement dit, la redirection 301 s'impose lorsqu'il s'agit d'éviter aux utilisateurs de tomber sur des erreurs 404 et qu'on ne souhaite pas anéantir tout un effort de référencement et de bon positionnement dans les moteurs de recherche.
Quel que soit le type de redirection choisi, la redirection côté serveur peut être mise en place de deux façons : soit au moyen d'un fichier .htaccess soit avec un script dans un langage de programmation côté serveur (comme PHP).
Exemples pour une redirection 302 :
- avec un
.htaccess:Redirect /page-a http://exemple.fr/page-b - en PHP :
<?php header ('Location: http://exemple.fr/page-b'); exit; ?>
Exemples pour une redirection 301 :
- avec un
.htaccess:RedirectPermanent /page-a http://exemple.fr/page-b - en PHP :
<?php header ('Status: 301 Redirect Permanent', false, 301); header ('Location: http://exemple.fr/page-b'); exit; ?>
Vérifier les redirections et le type de redirection retourné
Pour vérifier si une redirection mise en place (ou constatée) est de type 301 ou 302, vous pouvez utiliser l'outil d'analyse d'en-têtes HTTP disponible sur le site.


