Rechercher dans les publications Rechercher:

Imprimer cet article

Rechercher dans les publications Auteur : Zapman
Site Web :
RankSpirit

Zapman est un collectif formé de : Luc Deborde Marc Tévenin



Articles de l'auteur :
Les redirections
Les liens sont le "sang du Web"
Le PageRank sert-il encore à quelque chose ?
Google ToolBar
Les redirections

Les redirections

Comment ça marche, à quoi ça sert

15 mars 2006, par Zapman

On appelle "redirection" le basculement automatique d’une page vers une autre. Les techniques permettant d’obtenir ce résultats sont nombreuses et sont utilisables dans différents cas bien distincts.

Auteur de l’article : Zapman/RankSpirit

Utilisation des redirections

Plusieurs raisons peuvent vous amener à vouloir utiliser une redirection :

Changer les noms ou adresses de pages
- vous souhaitez changer le nom ou l’adresse de l’une de vos pages sans perdre les liens existant vers l’ancien nom/adresse de page. Vous allez donc organiser une redirection de l’ancienne adresse vers la nouvelle. Les internautes qui saisissent, par exemple, l’ancienne adresse de page dans leur navigateur, atterrissent automatiquement sur votre nouvelle page, sans avoir nécessairement détecté le stratagème. De la même façon, le "PageRank" dont bénéficiait votre ancienne page, est transféré sur le nouvelle. Ce problème peut concerner l’ensemble de votre site si vous avez changé de nom de domaine.
- vous souhaitez simplifier vos noms de pages. Certains systèmes de gestion de sites dynamiques fabriquent des URLs à rallonge qui ne sont pas très "présentables" du style : "http://www.example.com?theme1&l...". Cette complexité peut être entièrement masquée aux yeux des utilisateurs à l’aide des redirections. Le procédé consiste simplement à utiliser une page fictive nommée "chapitre1fr.htm" et à rediriger "chapitre1fr.htm" vers " ?theme1&lang=fr&user=any&chapitre1". Vous pourrez dès lors présenter aux utilisateurs l’adresse "http://www.example.com/chapitre1fr.htm" qui fonctionnera parfaitement. Précisons toutefois qu’il ne s’agit pas là de redirection à proprement parlé, mais plutôt de ce que l’on nomme l’"URL rewriting", ou "réécriture d’URL".

Faire des statistiques
- vous souhaitez garder une trace du téléchargement de certains fichiers. Au lien de faire pointer votre bouton "Télécharger" directement sur le fichier, vous le faites pointer vers une page intermédiaire qui redirige l’internaute vers le fichier. Cette page intermédiaire comportera un marqueur qui alimentera vos statistiques en signalant le téléchargement à votre base de données. Ce système est très couramment utilisé par les sites proposant des téléchargements. Il se traduit par l’affichage d’une fenêtre (il s’agit de la fenêtre intermédiaire) comportant un texte tel que "Si le téléchargement n’a pas démarré automatiquement dans 5 secondes, cliquez sur ce bouton".
- vous souhaitez faire des statistiques concernant vos liens sortants. Au lien de faire pointer vos liens directement sur les sites visés, vous les faites pointer vers des pages intermédiaires qui redirige l’internaute vers ces sites. Cette page intermédiaire comportera un marqueur qui signalera l’action à votre base de données. Ce procédé est utilisé par plusieurs systèmes d’annuaire et porte le nom de "lien mou". Il présente toutefois plusieurs inconvénients et devrait toujours être remplacé par l’utilisation de "Onclick".

Etre malhonnête
- vous souhaitez faire une redirection sauvage, c’est à dire "voler" le pagerank d’un site. Désolé pour vous, il est trop tard ! Les redirections permettaient, il y a encore peu de temps, de profiter d’une faille du système Google et de récupérer le PageRank d’une page en faisant une simple redirection sur elle. Si une saine curiosité vous pousse à comprendre les ressorts de cette mécanique, lisez ces explications sur les redirections sauvages et celles-ci sur l’URL canonique. Retenez avant tout que cette forme d’utilisation de la redirection 302 est désormais sévèrement punie par Google.
- vous souhaitez présenter un contenu différent aux moteurs de recherche et aux visiteurs humains (cloaking). Certains redirections (javascript, par exemple) sont prises en compte par les navigateurs mais ne sont pas gérées par les robots des moteurs de recherche. Cela permet donc de rediriger les visiteurs humains vers une page qui leur est destinée, tandis que les robots continuent de ne voir que la page d’origine. Le site allemand de BMW a été pénalisé par Google pour avoir utilisé cette technique. Vous prendriez d’énormes risques en l’utilisant.

Principes techniques de la redirection

Il existe deux voies principales pour effectuer des redirections :

Au niveau du serveur (à l’aide d’un "header" en Php, ASP ou Cold Fusion ou à l’aide du fichier ".htaccess").

C’est la façon la plus "propre" et la plus radicale de procéder. Cette solution est celle que vous devriez choisir pour les changements de noms ou d’adresses de pages. Elle est également utilisée pour certains types de redirections sauvages. Lorsque vous utilisez le fichier ".htaccess", vous demandez à votre serveur de "traduire" certaines URLs et, donc, de les transformer avant même de tenter d’accéder aux pages correspondantes, ce qui représente un gain de temps pour vos visiteurs. Le fichier ".htaccess" est par ailleurs le seul moyen satisfaisant de faire de l’"URL rewriting" (simplifier les URLs trop complexes, par exemple). Les redirections effectuées au niveau du serveur sont parfois appelées "Redirections HTTP". Elles sont invisibles pour l’internaute non avisé, mais il est bon de savoir que le serveur signale malgré tout au navigateur (ou au robot) qu’une redirection a eu lieu. Juste avant d’envoyer la page visée par la redirection, le serveur envoie un code indiquant de quelle sorte de redirection il s’agit.

Au niveau du navigateur de l’internaute (méthode "Meta Refresh" ou redirection Javascript/Flash/DHTML,etc.)

Une première page se charge dans le navigateur du visiteur, puis le force à basculer, après une durée variable, vers la page définitive ou vers le fichier à télécharger. Cette solution peut être intéressante pour gérer vos statistiques de téléchargement. Par contre, si la cible visée par la redirection est une URL, cette méthode présente de graves inconvénients :
- Les moteurs sont incapables de suivre les redirections programmées en Javascript ou Flash. Il est donc possible que Google interprète la situation comme une sorte de cloaking.
- Ce type de liens "mous" pénalisent les sites visés dans la mesure où ils ne récupèrent pas le "PageRank" que vos liens devraient leur apporter. Ils pénalisent également votre propre site qui ne bénéficie plus de la pertinence apportée par les liens sortants.
- Le bouton "Page précédente" du navigateur devient inopérant, ce qui peut déstabiliser les internautes novices et agacer les autres.
- Certains navigateurs n’exécutent pas l’instruction "Meta Refresh" et certains internautes désactivent l’exécution du code Javascript. Quant au code Flash, il n’est pas exécutable sur toutes les machines. Les résultats de ce type d’indirection sont donc incertains. Pour toutes ces raisons, nous vous conseillons fermement d’utiliser le "OnClick" dont nous parlons plus haut, plutôt que de faire une redirection simple.

Certaines redirections sauvages étaient autrefois réalisées à l’aide de la méthode "Meta Refresh" mais ce procédé ne fonctionne plus.

Si vous souhaitez connaître la type de redirection qui a été mise en place sur une page particulière vous pouvez utiliser ce test de redirection.

Les différentes sortes de redirection

Le fichier .htaccess, le Php, l’Asp et Cold Fusion permettent de préciser aux navigateurs ou aux robots visitant la page, la raison pour laquelle la redirection a été mise en place.

Si ces nuances importent peu pour les navigateurs (et donc pour les internautes), elles sont, par contre, très importantes pour les robots. Voici à quoi elles correspondent :

- 301 Moved Permanently : Document déplacé de façon permanente

L’adresse d’origine doit être totalement remplacée par l’adresse cible. La page conserve son "PageRank" et sa place dans les résultats des moteurs de recherche (sauf si son contenu a changé).

- 302 Found : Document déplacé de façon temporaire

L’adresse d’origine n’est pas accessible pour le moment, mais elle le redeviendra peut-être. Rien n’indique aux robots laquelle des deux adresses ils doivent conserver dans leurs index. Ce code 302 a été détourné de multiple façon pour leurrer les robots et sent désormais le souffre. Son utilisation est dangereuse en terme de référencement dans le cas ou la page comportant la redirection et la page cible n’appartiennent pas au même domaine.

- 303 See Other : Document remplacé par un autre de façon temporaire

La page d’origine doit être remplacée par la page cible, mais la page d’origine doit rester dans l’index. Ce code est peu utilisé.

- 307 Temporary Redirect : Document déplacé de façon temporaire

Ce code produit le même résultat que le code 302. Il a été créé en raison d’une ambiguïté : la plupart des robots traitent la redirection 302 comme s’il s’agissait d’une redirection 303. Le code 307 signifie donc sans ambiguïté que le document a été déplacé et non pas remplacé.

Les définitions ci-dessus correspondent à une théorie. Dans la pratique, le code 302 est compris comme "Document déplacé ou remplacé de façon temporaire" et le code 303 n’est pas utilisé.

Pour plus de détail, consultez Status Code Definitions de W3.org

Exemples de redirections

Assez de blabla, voyons comment cela se passe dans la pratique :

Utilisation du fichier .htaccess Pour créer un fichier ".htaccess", il suffit de commencer par créer un fichier .txt dans lequel vous allez saisir les instructions concernant la redirection. Par exemple : RedirectPermanent anciennepage.html http://www.example.com/nouvellepage.html Notez que la nouvelle adresse s’exprime dans tous les cas en absolu (l’adresse doit être entière). Une fois votre fichier enregistré, vous devrez le renommer ".htaccess" et le copier dans le dossier contenant "anciennepage.htm" (ou à la racine de votre site si anciennepage.htm se trouve à la racine de votre site). Attention toutefois aux points suivants :
- Le transfert de votre fichier sur votre FTP doit impérativement se faire en mode ASCII.
- Si votre fichier ".htaccess" comporte une erreur, toutes les pages du dossier dans lequel vous l’aurez copié deviendront inaccessibles (vous obtiendrez une erreur 500 à chaque fois). Supprimez alors ce fichier à l’aide de votre client FTP et refaites un essai.
- Tous les serveurs ne permettent pas l’utilisation du fichier ".htaccess". Pour pouvoir bénéficier de ses fonctionnalités, il faut que votre serveur soit un serveur Apache (ce qui est généralement le cas) tournant sous Unix ou Linux (ce qui est généralement le cas) et il faut que votre fournisseur d’accès n’ait pas désactivé le module "mod_Alias" (ce qui est, hélas, le cas de plusieurs fournisseurs d’accès gratuits).
- Pour déplacer l’ensemble d’un site, on peut utiliser une syntaxe telle que RedirectPermanent / http://www.nouveaudomaine.com/

Commandes et signification :
- RedirectPermanent ou Redirect Permanent ou Redirect 301 : redirection 301
- Redirect ou RedirectTemp ou Redirect temporary ou — Redirect 302 : redirection 302
- Redirect Seeother ou Redirect 303 : redirection 303
- Redirect Gone ou Redirect 410 : erreur 410 (la page n’existe plus et n’a pas de remplaçante) Vous pouvez utiliser Redirect avec d’autres arguments numériques, par exemple : Redirect 307 pour un redirection 307

Le fichier ".htaccess" permet également de gérer ce qu’on appelle l’"URL rewriting". Cela n’est possible que si le module "mod_rewrite" de votre serveur Apache est activé (ce module est l’un des composants d’Apache, au même titre que "mod-Alias" ou Php, par exemple). Exemple :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^anciennepage.html$ nouvellepage.php [L]

Avec cette syntaxe, le visiteur ou le robot seront redirigés vers nouvellepage.htm de façon tout à fait transparente. Aucun code de redirection ne sera envoyé et les robots ne prendront pas de dispositions particulières pour mettre à jour leurs index. Si vous souhaitez signaler la redirection pour obtenir le même résultat qu’avec la commande "RedirectPermanent", vous pouvez remplacer la dernière ligne par : RewriteRule ^anciennepage.html$ nouvellepage.php [R=301,L]

La syntaxe des instructions du fichier ".htaccess" permet de nombreuses subtilités. Pour plus de détails, consultez :
- Le mode_rewrite d’Apache
- Le fichier .htaccess
- Redirections avec le serveur Lycos Multimania
- La réécriture d’URL récursive

Utilisation d’un "header" HTML La redirection est gérée par balise META http-equiv="Refresh". Elle donne l’ordre au navigateur de rediriger l’internaute vers une URL spécifiée au bout d’un certain nombre de secondes. Ce code doit être placé dans la page située à l’ancienne adresse :

<html> <head>
<meta http-equiv="Refresh" content="0;URL=http://www.example.com/nouvellepage.htm">
</head> <body>
Cette page a été déplacée à l'adresse suivante : http://www.example.com/nouvellepage.htm
</body> </html>

Le chiffre 0 peut être remplacé par le nombre de secondes d’attente avant la redirection (la page comportant la redirection reste affichée pendant l’attente). Si ce chiffre est supérieur ou égal à 3, Google considérera qu’il a affaire à 2 pages bien distinctes et il indexera séparément la page comportant la redirection et la page cible. Si ce chiffre est inférieur à 3, Google considérera que la page comportant la redirection ne mérite pas d’être indexée et il traitera la redirection de la même façon qu’une redirection de type 302 (avec les risques de pénalisations correspondants !) Mais cette interprétation est propre à Google et n’est pas forcément partagée par les robots des autres moteurs. Il n’est hélas pas possible de préciser explicitement le type de redirection souhaitée lorsque l’on utilise cette méthode. Il faut également signaler que certains navigateurs n’interprètent pas la balise META Refresh et que cette redirection ne fonctionnera donc pas toujours.

Utilisation d’un "header" Php Le code suivant doit être placé en tête de la page située à l’ancienne adresse :

<?php
/* Redirection vers une page appartenant au même dossier que la page actuelle */
function redirect($page) {
$host = $_SERVER['HTTP_HOST']; /* On récupère le nom du site */
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); /* On récupère le nom du dossier */
$url = 'http://'.$host.$uri.'/'.$page; /* On ajoute le nom de la page cible */
header( "Status: 301 Moved Permanently", false, 301); /* le deuxième paramètre 301 est indispensable pour certains serveurs */
header('Location: '.$url);
echo '<a href="'.$url.'">Cliquez ici pour vous rediriger vers '.$url.'</a>';
exit;
}
redirect('nouvellepage.php');
?>

Attention : ce code doit être placé en tête de page. Un simple espace ou un retour chariot placé avant le <?php entraînera une erreur. La ligne echo permet de gérer les navigateurs qui ne supporte pas les redirections http. Pour plus de précisions, lire le Header PHP. Et voici un exemple beaucoup plus simple de redirection Php :

<?php
header("Location: http://www.example.com/nouvellepage.htm");
?>

Utilisation d’un code ASP Le code suivant doit être placé en tête de la page située à l’ancienne adresse. Le résultat obtenu est le même qu’avec un code Php

<%@ Language=VBScript %>
<% response.status = "301 moved permanently"
response.addheader "location", "http://www.example.com/nouvellepage.htm"
response.end %>

Utilisation d’un code Cold Fusion Le code suivant doit être placé en tête de la page située à l’ancienne adresse. Le résultat obtenu est le même qu’avec un code Php

<CFHEADER statuscode="301" statustext="Moved Permanently">
<CFHEADER name="Location" value="http://www.example.com/nouvellepage.htm">

Utilisation d’un code Javascript Comme nous l’indiquons plus haut, cette méthode est fortement déconseillée. Voici tout de même un code exemple qui doit être placé dans la page située à l’ancienne adresse :

<html> <head>
<script language="javascript" type="text/javascript">
<!-- window.location.replace( "http://www.example.com/nouvellepage.htm"); -->
</script> </head> <body>
Cette page a été déplacée à l'adresse suivante :
http://www.example.com/nouvellepage.htm
</body> </html>

Cette méthode ne fonctionnera pas pour les internautes qui ont désactivé l’exécution du Javascript. Rappelons qu’elle ne sera pas prise en compte par les robots. La page comportant la redirection restera donc indexée. Si aucun autre lien que ce lien Javascript ne pointe vers la page cible, celle-ci risque de n’être jamais indexée par les robots.

Limites et dangers des redirections

Le "Duplicate Content" Si, en raison d’une redirection mal gérée, les robots trouvent deux pages, à deux adresses différentes, qui comportent le même contenu (on s’accorde en général à penser qu’il faut veiller à avoir moins de 70% de concordance), ils considèrent qu’il n’y a pas lieu de les indexer toutes les deux. Selon les robots ou les circonstances, il peut arriver que : l’une des deux pages ne soit pas indexée (sans qu’il soit forcément possible de savoir d’avance laquelle sera choisie) la popularité (le "PageRank" dans le cas de Google) soit divisé en deux pour chacune des pages

Ce cas de figure, nommé "duplicate content" ne peut théoriquement pas se produire lors de l’utilisation de RedirectPermanent avec le fichier ".htaccess" ou lors de l’utilisation des redirections Php, Asp et Cold Fusion, mais il peut se produire avec RewriteEngine, la balise META "Refresh" et en cas de mauvaise compréhension et utilisation des redirections Javascript.

Les "Backlinks" Tant que votre système de redirection est en place, il importe peu que les sites qui parlent de vous fassent référence à vos anciennes ou à vos nouvelles adresses. Les moteurs reporteront tout le bénéfice de ces "backlinks" sur vos nouvelles adresses et les internautes parviendront dans tous les cas à vous retrouver. Si, par contre, vous êtes contraint de supprimer - à moyen ou à long terme - un système de redirection, vous devrez au préalable contacter tous les webmasters des sites qui parlent de vous pour leur demander de réactualiser leurs liens. Sans cette démarche, vous perdrez une partie de votre référencement le jour ou votre système de redirection ne sera plus opérationnel.

Conclusions

Les redirections ne doivent pas être traitées à la légère, surtout lors des premières fois que vous vous livrez à cet exercice. Nous espérons que cette page vous permettra de jongler avec vos URLs en toute sérénité

A lire aussi :
- Le mode rewrite d’Apache : PhpFacile
- Codes http et significations : : WebmasterHub
- Les redirections sauvages : WebRankInfo
- La redirection : Php France
- Indexation et redirection : Blog de Serge Rapaille


Source de cet article : RankSpirit : les aspects techniques d’un site Web


Commentez cet article sur le forum Webmaster-hub