En tant que référenceur, je suis régulièrement confronté à la mise en place de redirections 301, que ce soit pour une refonte, pour retrouver le jus d’un lien qui pointe vers une 404, ou pour gérer du contenu dupliqué. Le cas de figures étant relativement nombreux et hétéroclites, je fais ce petit récapitulatif pour essayer de synthétiser les cas de figures les plus courants en SEO et les besoins qui en découlent. Pour l’instant cet article ne s’applique que dans le cas d’un serveur Apache. Ces redirections sont à implémenter dans votre fichier .htaccess à la racine du site. Attention cependant à ce qu’elle n’entrent pas en conflit avec des règles existantes, auquel cas il est possible de faire les redirections via le fichier httpd.conf, qui se charge dès le démarrage du serveur et est pris en compte prioritairement sur le fichier .htaccess. Cela demande cependant un redémarrage du serveur.

Redirections de base indispensables au SEO

Ces redirections sont à mettre en place pour éviter le contenu dupliqué d’un site qui serait accessible avec et sans www, ou en http et https.

Rediriger un site sans www vers le même site avec www :

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.votre-site.com$
RewriteRule ^(.*) http://votre-site.com/$1 [QSA,L,R=301]

Cette redirection pose la condition que l’hôte demandé en HTTP commence (grâce au symbole « ^ ») bien par « www » et si c’est le cas, elle redirige vers la version sans www. Les termes entre crochet sont ce que l’on appelle des « drapeau » qui sont des instructions supplémentaires envoyées au serveur et qui assurent son bon fonctionnement. Un redirection supprime par défaut les arguments d’URL. QSA permet de les conserver. Par exemple, /site/456?id=99 va être redirigé vers /site.php?site=456&id=99. Sans QSA elle aurait été redirigé vers /site.php?site=456, sans arguments.

« L » signifie Last et indique au serveur que cette redirection doit être la dernière qu’il doit prendre en compte pour cette requête afin d’éviter les boucles de redirections.

« R=301 » indique au serveur le code de statut à renvoyer. Par défaut, si celui-ci n’est pas spécifié le serveur renvoie un code 302.

Vous pouvez poser plusieurs cas de figure au serveur avec plusieurs condition, où seules certaines peuvent être validées grâce au drapeau [OR] à placer en fin de ligne. Par exemple :

RewriteCond %{HTTP_HOST} ^www.votre-site1.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.votre-site2.com$

Options +FollowSymlinks :  Demande au serveur de bien suivre les liens symboliques

RewriteEngine on :  activation du module de redirections

Rediriger un site avec www vers le même site sans www :

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.votre-site.com$
RewriteRule ^(.*) http://votre-site.com/$1 [QSA,L,R=301]

Rediriger un site avec http vers le même site en https :

Entre deux version d’un site, http et https, Google à déclarer préférer la version https.
Du coup chiffrer le http avec du SSL ou du TLS est devenu important en référencement.

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Redirection simple d’un document vers un autre :

Redirect 301 /vieux/fichier.html http://votresite.com/nouveau/fichier.html

Rediriger un dossier vers un autre dossier :

RedirectMatch 301 /blog(.*) http://votresite.com/$1

Ici l’expression régulière (.*) stockera dans la variable  $1 ce qu’il y aura après « /blog » et le mettra en URI du nouveau domaine. Par exemple, votresite.com/blog/tapage sera redirigé vers votresite.com/tapage. Il est possible de multiplier les variables. Par exemple :

RedirectMatch 301 /marque/(.*)/produit/(.*)/couleur/(.*) http://votresite.com/$1/$2/$3

Ce qui donne :

RedirectMatch 301 /marque/toyota/produit/yaris/couleur/bleue http://votresite.com/toyota/yaris/bleue

redirection

 

 

Laissez un commentaire

>