PRATIQUE XML 
Mettre en place un sitemap pour faciliter l'indexation
 
Soutenu par Google, Yahoo! et Microsoft, le protocole sitemaps cherche à simplifier le travail des moteurs de recherche en leur fournissant un fichier normé indiquant les pages à indexer. (13/12/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Proposé par Google parmi ses Webmaster Tools, le format Sitemap Protocol a été depuis adopté par deux autres moteurs de recherche majeurs, Yahoo! et MSN. Il est ainsi devenu un standard de fait pour les moteurs afin de recenser les pages Web en vue d'améliorer leur indexation - ou du moins, faciliter le travail de découverte des robots.

Un sitemap suivant ce protocole se présente sous la forme d'un document XML (codé en UTF-8) relativement simple. Voici un exemple de sitemap avec plusieurs URL :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  3.    <url>
  4.       <loc>http://www.journaldunet.com/developpeur/</loc>
  5.       <lastmod>2006-12-12</lastmod>
  6.       <changefreq>weekly</changefreq>
  7.       <priority>1.0</priority>
  8.    </url>
  9.    <url>
  10.       <loc>http://www.journaldunet.com/developpeur/ fil/tous_itws.shtml</loc>
  11.       <changefreq>weekly</changefreq>
  12.       <priority>0.7</priority>
  13.    </url>
  14. </urlset>
Le seules balises obligatoires sont urlset, qui doit ouvrir et fermer le fichier, url pour chaque entrée, et loc pour chaque URL. Trois autres balises sont optionnelles : lastmod pour indiquer la dernière modification, changefreq pour donner une évaluation de la fréquence de mise à jour, et priority pour préciser l'importance de l'URL face à l'ensemble du site (valeurs de 0.0 à 1.0, par défaut 0.5).

changefreq peut prendre sept valeurs : yearly, monthly, weekly, daily, hourly, always et never, les deux dernières étant respectivement réservées aux pages dynamiques qui changent de contenu à chaque chargement, et aux pages d'archive figées. Les autres valeurs sont purement indicatives, et ne seront pas forcément respectées à la lettre par les robots.

Comme pour tout document XML, les caractères spéciaux doivent être remplacés par leurs entités correspondantes (lire notre article sur le sujet).

Un fichier sitemap ne doit pas contenir plus de 50 000 URLs, ni dépasser les 10 Mo - il est possible de zipper le fichier pour gagner de la place. De fait, il est possible de disposer de plusieurs fichiers sitemap pour un site, et pour les recenser, il existe un format Sitemap Index - dont le fichier ne doit pas contenir plus de 1000 fichiers sitemap ni dépasser les 10 Mo. Sa syntaxe est proche de celle du fichier sitemap :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  3.    <sitemap>
  4.       <loc>http://www.journaldunet.com/developpeur/ sitemap-principal.xml</loc>
  5.       <lastmod>2006-12-12</lastmod>
  6.    </sitemap>
  7.    <sitemap>
  8.       <loc>http://www.journaldunet.com/developpeur/ sitemap-secondaire.xml</loc>
  9.    </sitemap>
  10. </sitemapindex>
Une seule balise optionnelle au sitemapindex : lastmod.

Le nom du fichier étant libre (bien que sitemap.xml soit recommandé), les robots ne peuvent savoir à l'avance où trouver votre sitemap ou sitemapindex : il faudra le leur indiquer.

Côté Google, cela se passe dans les Webmaster Tools, et il faut disposer d'un compte Google/Gmail : ajoutez votre site, validez-le, et indiquez l'URL du fichier sitemap.
Chez Yahoo, c'est plus direct : allez sur la page de soumission de lien, et entrez l'URL de votre sitemap dans le second champ, nommé Submit Site Feed.
MSN Search, enfin, semble encore être en phase de tests pour cette implémentation... Pas de page visible.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page