Ajax HTML 5 Création site CMS Comment Design Logiciels Programmation RSS SQL Scriptol Scripts Mobiles
Forum
Scripts
Thumbnail Maker
Bioloide
FTP Synchronizer
Link Checker
Site Update
Lecteur RSS
Techniques Web
Approche Ajax
Essentiel Web design
Bases SEO
JavaScript
Scriptol
Description
Exemples
Applications

Rel=canonical générique en PHP

Depuis le 15 décembre 2009, Google reconnaît la directive rel=canonical entre deux domaines différents pour résoudre les problèmes de contenu en double sur des domaines différents pour un même auteur. La balise canonical indique quelle est l'URL qui doit être indexée quand plusieurs URL aboutissant sur une même page ou un même contenu déplacé sur une nouvelle page.

Il est possible que ce changement qui résoud le problème d'une petite fraction des webmasters, en cause plus encore pour la majorité d'entre eux.
Car si Google est capable en général de savoir quand un site copie le contenu d'un autre site sans autorisation, il n'est pas pour autant infaillible.
Et au jeu du canonical, les utilisateurs de Wordpress par exemple, seront avantagé puisque la balise est incluse par défaut, tandis que les sites statiques ou utilisant d'autres CMS peuvent se trouver perdant.

Pour rétablir l'équilibre, il convient d'ajouter la balise dans toutes vos pages Web, et pour éviter un travail d'édition fastidieux, quelques lignes de PHP à ajouter dans votre modèle de page, peut le faire automatiquement...

Le problème du duplicate content

Le contenu dupliqué survient malencontreusement et non pas forcément délibéremment lorsqu'une page Web devient accessible aux robots des moteurs de recherche par deux URL différentes.
C'est le cas surtout avec les CMS qui peuvent accéder aux pages selon différentes options, comme le détaille l'article du blog de Google:

Accès par la page d'accueil:

http://www.scriptol.com/mypage.php?node=mykey 

Accès par la page de catégorie:

http://www.scriptol.com/mypage.php?node=mykey&category=mycat

Accès avec un identifieur de session:

http://www.scriptol.com/mypage.php?node=mykey&sessionid=1234

Accès par un numéro:

http://www.scriptol.com/?1234

URL customisée pour le référencement:

http://www.scriptol.com/key1-key2-key3

Les inconvénients sont multiples. D'une part le PageRank provenant des backlinks sera réparti entre les différentes URLs, d'autre part le robot de Google devra choisir une URL unique pour son index, et ce n'est pas forcément celle que le webmaster voudrait mettre en avant!

Pour résoudre ce problème, Google, Yahoo et Live Search proposent une nouvelle meta tag à insérer dans la section HEAD de la page.

<link rel="canonical" href="http://www.scriptol.com/key1-key2-key3" />

Ce peut être le webmaster qui l'insérera, ou le CMS qui se chargera de générer automatiquement cette meta tag... dans une prochaine version.

Source Google Webmaster Central. La même annonce est faite sur le blog de Yahoo et celui de Microsoft.

La balise canonical

Elle se place dans la section <head> et à la forme <link rel="canonical" href="url de la page" />

Par exemple, le lien sur cette page est:

<link rel="canonical" href="http://www.scriptol.fr/scripts/canonical.php" /> 

Il peut être produit automatiquement en PHP avec ce code:

<link rel="canonical" href="http://www.scriptol.fr<?php echo $_SERVER['PHP_SELF']; ?>" />

En remplaçant http://www.scriptol.fr par le domaine de votre site.

Un code générique

Si votre serveur n'est pas configuré pour reconnaître la variable PHP_SELF, vous pouvez aussi essayer ce code, plus long:

<link rel="canonical" href="http://www.scriptol.fr
<?php echo substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT'])); ?>" />

Ainsi le même code pourra être utilisé et placé automatiquement sur toutes vos pages.

En fait, il est possible de rendre le domaine générique aussi avec la variable $_SERVER['HTTP_HOST'], mais si on peut accéder au site avec ou sans www, cela doit être évité.

© 2009-2011 Scriptol.fr