Quantcast
Channel: référencement – Grummfy's project
Viewing all articles
Browse latest Browse all 2

URL rewriting et SEO : duplication de contenu

$
0
0

Cet article présente rapidement l’URL rewriting et ce qu’est SEO pour arriver au cœur du sujet, à savoir, la problématique de la réécriture d’URL : la duplication de contenu. Pourquoi la duplication de contenu est gênante et surtout comment l’éviter sont expliqué dans la suite!

Mise en bouche

L’URL rewriting ou réécriture d’URL1 permet de réécrire de manière plus ou moins dynamique des URL (par exemple transformer http://www.example.com/ en http://example.com/ avec une redirection ou encore http://example.com/contact/moi/par/formulaire en http://example.com/contact.php).

SEO ou Search Engine Optimization consiste à optimiser le référencement d’un site.

Exemple

Afin de débuter, il convient de donner un exemple fonctionnel. Reprenons donc un fichier .htaccess de base :
<IfModule mod_rewrite.c>
RewriteEngine on
#si votre fichier se trouve dans /chemin vers votre répertoire de base de votre serveur/test/
RewriteBase /test/
#
#On élimine les fichiers et répertoires qui existent déjà de la réécriture
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#réécrit l'url
RewriteRule ^(.+)$ index.php?path=$1 [QSA,L]
</IfModule>

Je suppose que vous tester votre script localement, que vous êtes dans le dossier test et que le fichier php est index.php (qui suit).

';
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_SERVER['REDIRECT_QUERY_STRING']);
var_dump($_SERVER['REDIRECT_URL']);
var_dump($_SERVER['REQUEST_URI']);
var_dump($_SERVER['SCRIPT_NAME']);
var_dump($_SERVER['PHP_SELF']);
var_dump($_SERVER['QUERY_STRING']);
var_dump($_REQUEST);
echo ' pre>';
#
# EOF

Si vous testez le script, essayez d’y accéder par http://localhost/test/ceci-est_un-test?toto=tata puis par http://127.0.0.1/ceci-est_un-test?toto=tata . Dans le deuxième cas, une redirection 301 (fichier bouger de manière permanente) est effectuée. Concernant, l’explication en détail de la réécriture d’URL je vous renvoi vers votre moteur de recherche favoris.

Double accès

Maintenant, un problème se pose. En effet, votre site est accessible par plusieurs URL différentes pour un même contenu, les moteurs de recherche interpréteront cela comme du duplicata de contenu 2! Pour résoudre ce problème, il faut simplement faire en sorte que seule une seule et unique adresse soit accessible.

Premièrement, vérifier que l’on provient du bon domaine (par exemple : n’autoriser que example.com et non pas www.example.com ou uniquement localhost et non pas 127.0.0.1), le fichier .htaccess devient :

<IfModule mod_rewrite.c>
RewriteEngine on
#si votre fichier se trouve dans /chemin vers votre répertoire de base de votre serveur/test/
RewriteBase /test/
#
#test si on est bien sur le domaine localhost et non 127.0.0.1 ou autre chose
RewriteCond %{HTTP_HOST} !^localhost
#QSA pour transmettre le query string
#L pour dire de sortir de la boucle de réécriture
#R pour rediriger avec le code HTTP 301
RewriteRule ^(.*) http://localhost/test/$1 [QSA,L,R=301]
#
#On élimine les fichiers et répertoires qui existent déjà de la réécriture
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#réécrit l'url
RewriteRule ^(.+)$ index.php?path=$1 [QSA,L]
</IfModule>

Ensuite, il faut dire aux moteurs de recherche de ne pas indexer les URL du genre index.php?mesparametres. Pour cela, on créé ou modifie le fichier robots.txt3 :
User-agent: *
Disallow: /test/index.php
Allow: /test/

Maintenant, si vous testez le script, que cela soit par http://localhost/test/ceci-est_un-test?toto=tata ou par http://127.0.0.1/ceci-est_un-test?toto=tata seul localhost est accessible, l’autre effectue une redirection HTTP 301.

Le mot de la fin

Dans le cadre de la réécriture d’URL, il faut se méfier des possibilités d’inversion de paramètre. En effet, avec ZF par exemple, une URL telle que http://example.com/test/controller/action/param1/var1/param2/var2 est équivalente à http://example.com/test/controller/action/param2/var2/param1/var1 mais les moteurs de recherche marqueront le contenu comme dupliqué. Dans ce cas-là, ce n’est plus du côté d’apache qu’il faut regarder mais bien du côté du moteur de votre site …

  1. On devrait dire URI selon la RFC 3986 mais TLMSF
  2. au pire vous serez blacklinker, au mieux votre référencement en pâtira
  3. Pour rappel, ce fichier se place à la base de votre URL, soit pour que dans notre exemple (http://www.example.com/test/) le fichier soit accessible via http://www.example.com/robots.txt

Viewing all articles
Browse latest Browse all 2

Latest Images





Latest Images