La complexité de la redirection web réside dans le fait de manipuler votre site internet tout en conservant un bon référencement SEO et en n’impactant pas l’expérience utilisateur.
Même les experts du SEO savent qu'il y a toujours une poussière dans l'engrenage à un moment ou un autre qui peut mettre en péril tous les efforts consentis dans votre stratégie marketing digital. Je me suis dit qu'il serait pertinent d'écrire une sorte de mémo pour ceux qui souhaitent faire une redirection 301 ou tout autre manipulation sur leur fichier htaccess ou ailleurs. Alors bookmarkez cet article, il peut servir plus d'une fois !
Il est très probable qu’une page de votre site internet soit accessible via plusieurs URLs. Le risque de laisser plusieurs URLs différentes renvoyer vers une même page et de créer du contenu dupliqué est que cela impacte négativement votre référencement naturel. Dans ce cas, il convient de mettre en place une redirection de ces différentes URLs vers une URL commune renvoyant vers cette même page.
Vous avez changé votre activité ou votre nom de domaine ne vous convient plus ? Il faudra alors rediriger vos visiteurs vers le nouveau nom de domaine de votre site web à l’aide de redirections web.
Si vous trouvez que vos URLs sont trop longues ou qu’elles ne comportent pas le mot clé principal de la page, vous pouvez décider de modifier ces URLs. Il est important de comprendre que des modifications d’URLs sans redirection peuvent toucher votre site internet car les liens hypertextes associés vont désormais générer une erreur 404 (page introuvable).
Juste avant de préciser tous les modes de redirection précisons qu'il existe différentes redirections :
Il existe bien d’autres types de redirection (Balise meta refresh, Javascript ou html, Plugin Wordpress, etc.) mais je vous conseille de privilégier la redirection 301 qui est bien plus efficace en terme de référencement naturel puisqu’elle a l’avantage de transmettre le Pagerank (algorithme utilisé par Google pour noter la popularité des pages Web et les classer).
Le fichier .htaccess est ce genre de fichier qu'il faut connaitre pour le trouver, je m'explique. Ce fichier est caché, il sera donc nécessaire de faire une petite manipulation pour le dénicher à la racine de votre site (ou de certains de vos fichiers). De plus vous remarquerez qu'il n'a pas de nom, ce qui n'est pas courant. Pourtant il s'ouvre très bien et s'édite avec un éditeur de texte le plus basique qu'il soit.
A quoi sert-il ? C'est lui qui explique aux robots des moteurs de recherche et aux navigateurs :
C'est lui que nous allons manipuler ici.
C'est la base de la redirection, elle est très utile et répondra à de nombreux cas.
RedirectPermanent /repertoire/page-1 http://www.exemple.net/page-2
En bref, je dis au moteur de recherche que l’ancien site qui se trouvait à cette URL a été redirigé et se trouve à un autre endroit. Dans la majorité des cas, cette page initiale n'existe plus ou a été refondue sous le nouveau site et son URL a pu être modifiée pour être optimisée. Théoriquement avec cette méthode vous êtes bons pour faire toutes vos redirections mais si vous avez plus de 20 pages à rediriger cela devient assez lourd ... Même si avec un coup de main d'excel cela peut aller très vite pour générer les lignes de redirections. C'est alors que d'autres méthodes prennent le relai.
Vous avez vos 200 pages de la catégorie "produits anciens" à rediriger vers la nouvelle catégorie "produits vintage", c'est facile avec la redirection de répertoire toujours au niveau du fichier .htaccess.
RedirectPermanent /produits-anciens http://www.exemple.net/produits-vintage
Cette fois-ci vous avez décidé de passer en sous-domaine la totalité de votre répertoire. Cela peut se produire dans le cas où vous avez décidé de faire un site spécifiquement pour votre catégorie de produits vintage si on reprend notre exemple. Mais cela peut être un morceau ou la totalité du site que vous voulez basculer sous un sous-domaine ...
RewriteCond %{REQUEST_URI} ^/produits-vintage/(.*)
RewriteRule $ http://vintage.exemple.net/%1 [L,R=301]
Dans le cas d'un changement vers un nouveau domaine :
RedirectPermanent / http://www.exemple.net/
Il peut être pertinent de faire des redirections en PHP dans certains cas même si, selon moi, idéalement c'est à éviter. Dans le cas d'articles de blog qui passeraient tous sous un nom de domaine cela peut être l'unique solution. Imaginez que vos articles soit structurés ainsi : http://www.exemple.net/titre-article-1 et que vous souhaitez utiliser un sous domaine blog.exemple.net pour des raisons aussi simples qu'avoir un template différent pour le blog que pour le reste du site.
Prenons l'exemple de Wordpress qui est un CMS que j'affectionne particulièrement. Dans le cas des blogs, un article (ou post) est de type "single", pour exercer en PHP la redirection 301 vers le sous-domaine uniquement pour les articles du blog on ajoutera ce code dans le fichier header.php qui pilote entre autres la partie <head> où doit se trouver notre morceau de code.
if(is_single()) { global $post; // nous utilisons la variable globale qui permet d'agir sur un article $slug = $post->post_name; // on va chercher la valeur du nom de l'article header("Status: 301 Moved Permanently", false, 301); // on définit notre redirection 301 header("Location: http://blog.exemple.net/".$slug); // on indique la redirection et on génère à la volée la nouvelle URL à partir de celle de l'ancien article exit(); }
Je vous propose de m'indiquer les redirections que j'ai oubliées et je les rajouterai au fur et à mesure, l'idée est que ce mémo devienne de plus en plus exhaustif. J'ai volontairement vulgarisé les méthodes, si vous voulez que j'apporte des précisions, n'hésitez pas à demander !