la redirection 301 : comment faire ?

la redirection 301 : comment faire ?

Déplacer son site Internet tout en conservant son référencement seo est une opération assez simple dans le principe mais chaque personne ayant essayé, 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 consenti dans votre stratégie marketing digitale. Je me suis dis qu'il serait pertinent d'écrire une sorte de mémo pour ceux qui souhaitent faire des redirections 301 ou tout autre manipulation sur leur fichier htaccess ou ailleurs. Alors bookmarkez cet article, il peut servir plus d'une fois !

La redirection 301

Juste avant de préciser tous les modes de redirection précisons qu'il existe différentes redirections :

  • La redirection 301 ( ou redirection permanente ) indique au navigateur web et aux robots des moteurs de recherche que la page visitée a définitivement changée d’adresse. Cette redirection est à choisir la plus part du temps car il sera assez rare que vous souhaitiez changer d'URL pour vos pages tous les mois.
  • La redirection 302 ( ou redirection temporaire ) indique au navigateur web et aux robots des moteurs de recherche que la page visitée a temporairement changée d’adresse. Ce mode est a utiliser uniquement si vous ne voulez pas que les moteurs de recherche modifient leurs index. Cela peut être utile si vous modifier votre page pour une opération particulière ou pour une maintenance relativement longue.

 

Le fichier htaccess

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 :

  • comment il doit écrire les URL dans le cas de réécritures automatisées
  • et, c'est ce qui nous intéresse ici, où il doit renvoyé les demandes d'URL

C'est lui que nous allons manipuler ici.

fiche-pratique-seo

Redirection d'une ancienne adresse vers une nouvelle page

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 la page qui se trouvait à cette URL 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.

redirection-301.jpg

Redirection d'un repertoire complet

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 repertoire toujours au niveau du fichier .htaccess.

RedirectPermanent /produits-anciens http://www.exemple.net/produits-vintage

Redirection d'un repertoire vers un sous domaine

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 au niveau du domaine :

RedirectPermanent / http://www.exemple.net/ 

Redirection 301 en PHP 

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 simple 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 autre la partie <head> où doit se trouver notre morceaude 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();
} 

Encore ?

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 !

fiche-pratique-seo


L'antisèche

  • La redirection 301 = redirection permanente 
  • La redirection 302 = redirection temporaire

Rejoignez la discussion