On parle de contenu dupliqué dès lors qu'un même contenu est accessible à plusieurs endroits sur le web. L'unité de base des documents étant la page, définie précisément par son URL, on parle de contenu dupliqué quand une même page est accessible à plusieurs URL (voir également cet article récent sur le sujet, en anglais). Dans la majorité des cas, le webmaster n'est même pas au courant qu'il génère du contenu dupliqué. Voici pourquoi je vous liste ici des erreurs bêtes à ne pas commettre :

Erreur n°1 : indexer son site avec et sans www

Avez-vous testé ce qui se passe si on ne tape pas www dans votre URL ? C'est-à-dire qu'on accède à votre site en tapant http://example.com au lieu de http://www.example.com. Si votre site reste accessible sans que l'on soit redirigé vers la version officielle (celle qui contient www dans l'URL), alors votre site risque d'être indexé 2 fois par les moteurs, et vous aurez des problèmes de contenus dupliqués. Le remède (déjà indiqué en octobre 2005) : éviter le duplicate content avec et sans www. Remarquez que j'aurais pu prendre l'exemple inverse, c'est-à-dire s'assurer que seul le site sans www est indexable, cela revient au même. N'oubliez pas d'ailleurs que Google permet aux webmasters d'indiquer eux-mêmes quelle est la version officielle de leur site (avec ou sans www), ce qu'on appelle l'URL canonique. Il suffit d'aller dans son compte Webmaster Central.

Erreur n°2 : avoir 2 URL pour sa page d'accueil

Presque tous les sites sont conçus avec un lien sur chaque page pour retourner à la page d'accueil (en général ce lien est situé sur le logo du site). Avez-vous vérifié que ce lien pointe bien vers l'URL précise de votre nom de domaine et non pas autre chose ? Dans mon cas ma page d'accueil est index.php mais tous mes liens pointent vers http://www.webrankinfo.com/ et pas vers http://www.webrankinfo.com/index.php, sinon il y a encore un problème de contenu dupliqué (et notamment une dilution du PageRank et des autres effets liés aux backlinks).

Vous aurez beau avoir fait attention à bien faire pointer tous vos liens internes vers la bonne URL, vous ne serez jamais à l'abri de liens erronés issus d'autres sites. Si vous voulez optimiser votre site à fond, il faut tester sur chaque page (importante) si l'URL demandée est bien l'URL officielle, et dans le cas contraire rediriger (en code 301) vers l'URL officielle. Pour faire ça en PHP il suffit de quelques lignes :

Je crée une fonction afin de l'utiliser un peu partout sur mon site :

function redirection_301_si_besoin($url_attendue)
{
  if ($_SERVER['REQUEST_URI'] != $url_attendue)
  {
    header("Status: 301 Moved Permanently", false, 301);
    header("Location: http://www.webrankinfo.com".$url_attendue);
    exit;
  } 
}

A vous de personnaliser ce bout de code avec votre nom de domaine. Dans mon exemple je l'enregistre dans fonctions.php.
Pour l'utiliser, il suffit de placer ceci tout en haut de votre page à vérifier (ici sur ma page d'accueil) :

<?php
include('fonctions.php');
redirection_301_si_besoin("/");
?>

Attention ce code doit absolument être au tout début de votre fichier, avant toute ligne HTML.

Bien entendu ceux qui ont accès au fichier .htaccess peuvent également l'utiliser pour régler ce problème.

Remarque : Ici je parle de la page d'accueil mais vous aurez compris que ça concerne en fait toutes les pages du site...

Erreur n°3 : avoir 2 URL pour la page 1 (pagination)

Imaginons que vous ayez un forum et que dans pour chaque discussion vous listiez les messages en limitant à 15 messages par page. Vous avez également un système de pagination pour voir les messages des pages 2 et suivantes. Ces pages-là ont certainement dans leur URL un paramètre qui indique le numéro de la page. Avez-vous vérifié que sur les pages 2 et suivantes le lien vers la page 1 pointe bien vers la même URL que la page par défaut de la discussion ? Exemple :

  • la page par défaut de la discussion est www.example.com/topic.php?t=456
  • la page 2 de la discussion est www.example.com/topic.php?t=456&p=2
  • le lien depuis la page 2 vers la page 1 doit pointer vers www.example.com/topic.php?t=456 et surtout pas vers www.example.com/topic.php?t=456&p=1

Erreur n°4 : avoir 2 types d'URL indexables (réécrites et classiques)

Imaginons que vous veniez de mettre en place la réécriture d'URL (URL Rewriting) sur votre forum. Pour reprendre l'exemple précédent, les URL de pages de discussion sont passées de www.example.com/topic.php?t=456 à www.example.com/topic-456.html. Avez-vous vérifiez que vous interdisez l'indexation des pages avec l'ancien format d'URL ? D'ailleurs la meilleure solution dans ce cas est même de rediriger de façon permanente (code 301) chaque page à l'ancien format vers la page équivalente avec le nouveau format. Pour ceux que ça intéresse, je présenterai le 30 mai à Paris la méthodologie de mise en place de l'URL Rewriting sous Apache et IIS, avec l'optimisation du référencement associée.

Erreur n°5 : avoir plusieurs noms de domaine indexés pour un même site

Sans doute avez-vous acheté plusieurs noms de domaine pour votre site (il y a plusieurs bonnes raisons de le faire : par prévention pour éviter que d'autres achètent des noms de domaine très proches du vôtre, par souci pratique pour les internautes qui tapent directement l'adresse en inversant .fr et .com par exemple, etc.). Peut-être avez-vous mis en place des redirections (permanentes, code 301) vers le nom de domaine officiel (si vous ne l'avez pas fait, vous savez ce qu'il vous reste à faire). Mais avez-vous regardé si ces noms de domaine secondaires sont indexés ? Il ne faut surtout pas que votre site soit indexé plusieurs fois, pour chaque nom de domaine. Si par hasard c'est le cas, c'est sans doute que vous n'avez pas mis en place les bonnes redirections, donc vérifiez que tous les domaines secondaires sont redirigés en 301 vers le domaine principal.

Erreur n°6 : ne pas toujours passer les variables dans les URL dans le même ordre

Si vous avez un site dynamique et que vous n'avez pas encore mis en place la réécriture d'URL, vous avez peut-être des URL qui contiennent plusieurs paramètres (variables) comme viewtopic.php?t=2534&postdays=0&postorder=asc&start=15. Le problème est que cette page est accessible également sans aucun problème aux URL suivantes : viewtopic.php?t=2534&postorder=asc&postdays=0&start=15 ou viewtopic.php?postdays=0&postorder=asc&start=15&t=2534 (entre autres possibilités... car il faut aussi penser aux cas où certains paramètres optionnels sont absents, par exemple ici postdays pourrait sans doute être supprimé).

Ceux qui utilisent la réécriture d'URL ont en général bien compris que dans le code, il faut centraliser la gestion de l'URL d'une page dans une fonction. Ainsi partout dans le code, pour générer un lien vers une page, on utilise la fonction qui formatte l'URL, et de cette façon les URL ont toujours le même format (paramètres passés dans le même ordre). Cette bonne pratique peut bien entendu être appliquée dans tous les cas, avec ou sans réécriture d'URL.

Si vous avez d'autres exemples d'erreurs classiques de contenus dupliqués, je me permettrais de les intégrer dans cet article pour le mettre à jour.