Comment éviter le contenu dupliqué avec « domain.tld » et « www.domain.tld »

Les moteurs de recherche (du moins, Google) considère les sous-domaines comme des sites à part entière. C’est un point très important à connaître.

Parfois, les deux adresses principales d’un site, par exemple « www.programmation-web.net » et « programmation-web.net » sont configurées pour pointer sur le même site web. Le problème est que celle-ci peuvent se retrouver référencées par les moteurs de recherche. Le risque est d’avoir du contenu considéré comme dupliqué. Le poids du référencement pourrait alors être divisé.

Afin de palier à cela, il suffit de choisir quel nom de domaine vous souhaitez officiellement utiliser pour votre site web et de rediriger l’autre vers ce dernier. Pour mon site, j’ai choisi d’utiliser directement la racine du domaine, à savoir programmation-web.net. Toutefois, un visiteur pourrait rapporter sur un forum, ou encore son blog, l’adresse suivante : www.programmation-web.net qui redirige aussi sur ce site.

Nous allons donc rediriger le sous domaine vers l’adresse racine. Pour ce faire, j’utilise simplement le mod_rewrite d’Apache. Vous devrez donc adapter selon votre environnement. Allons-y.

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.programmation-web.net$
RewriteRule (.*) https://programmation-web.net$1 [NC,L,QSA,R=301]

# si vous préférez garder www.programmation-web.net
RewriteCond %{HTTP_HOST} ^programmation-web.net$
RewriteRule (.*) http://www.programmation-web.net$1 [NC,L,QSA,R=301]

Avec ces règles, toutes les requêtes effectuées via « www.programmation-web.net » seront redirigées vers « programmation-web.net ». Nous gardons en plus de cela la ressource demandée (ce qu’il y a derrière l’adresse), afin que cela soit totalement transparent pour le visiteur ainsi que les robots.

Il est très recommandé de mettre une redirection permanente (R=301) afin d’indiquer que l’adresse redirigée n’est pas à utiliser.

Vous pouvez utiliser la même technique pour le changement d’adresse d’un site web.

RewriteCond %{HTTP_HOST} ^www.ancien-site.net$
RewriteRule (.*) http://www.nouveau-site.fr$1 [NC,L,QSA,R=301]

Voilà, rapide et efficace.

Comment gérer simplement la mise en cache navigateur ?

MaJ 17/03/2011 : pour ceux qui ont déjà lu l’article, j’ai déplacé le numéro de version (avant, mis comme un répertoire) dans le nom du fichier. C’est plus propre pour les URLs relatives des fichiers CSS.

Les fichiers ressources, dits statiques, sont des fichiers dont le contenu ne change pratiquement jamais. C’est le cas des fichiers CSS, JavaScript, images, etc.

Donc, il peut s’avérer utile, voir indispensable, de les stocker en cache. Cela permet à la fois :

  • de préserver la bande passante.
  • et de limiter les requêtes inutiles. Ce qui accélère l’affichage des pages et surtout libère le serveur. Ce dernier peut s’occuper de chose plus importante.

Le fonctionnement courant est l’échange d’entêtes Last-Modified/If-Modified-Since ou encore ETag/If-None-Match. Mais nous verrons une autre solution que j’utilise.
Lire la suite