Créer un Sitemap Google pour votre site

Un Google Sitemap est un élément primordial au succès de votre référencement : il sert à indiquer à Google quelles pages il doit indexer. Ça permet d’accélèrer le processus d’indexation de nouvelles pages, et ça permet également d’inclure tout votre contenu pertinent dans l’index de Google.

À la base (vous l’aurez deviné, je l’espère!), un Sitemap c’est un plan de votre site. Une arborescence de vos pages, dans laquelle l’importance qu’ont certaines pages de plus ou de moins sur les autres pages du même site est explicitement indiquée.

Bien sûr, ce n’est pas obligatoire; ce n’est qu’une aide pour Google (ainsi que pour vous, par le même fait). Vous ne pouvez pas espérer que toutes les pages que vous inclurez dans votre Sitemap seront indexées dans Google, car bien que vous lui montrez le chemin, Google n’est pas idiot, il n’indexera de toutes manières que les pages qu’il aura jugées pertinentes.

Laissez tomber les pages de contact et d’aide, focussez votre référencement sur votre contenu réel. Encore faut-il qu’il les trouve ces superbes pages qui feront grimper votre trafic : le Sitemap Google est là pour ça.

Selon la nature de votre site (un site statique ou un site dynamique), la façon de fabriquer votre Sitemap peut varier : de là le but de cet article.

En tout temps, je vous conseille de vous reférer à la documentation Google sur ce sujet.

Créer un Sitemap statique

Par statique, j’entends un Sitemap que vous devez écrire vous même, et qui ne changera pas automatiquement. C’est ce qu’on utilise normalement pour des sites qui possèdent uniquement des contenus statiques en pages HTML.

Pour faire ça, inutile de perdre votre temps à en écrire un vous même, vous pouvez utiliser un outil de création automatique de Sitemap. Vous pouvez également l’utiliser pour un site dynamique qui n’utilise pas la réécriture d’URL, mais il vous faudra le regénérer une fois de temps en temps – un truc que vous allez oublier de faire.

Créer un Sitemap dynamique

Un Sitemap dynamique se mettra automatiquement à jour sur votre site Web, ce qui est très pratique si vous mettez régulièrement à jour votre contenu. La méthode proposée ici utilise la réécriture d’URL pour simplifier le tout.

Dans le premier temps, créez un fichier .htaccess placé à la racine, ou modifiez celui que vous avez peut-être déjà :


Options +FollowSymlinks
RewriteEngine on

# Lien pour le Sitemap
RewriteRule ^sitemap\.xml$ /sitemap.php [L,NC]

Ainsi, sitemap.php va nous permettre de générer dynamiquement et simplement le contenu du fichier XML (le sitemap). Chaque fois que Google cherche à ouvrir la page sitemap.xml, sitemap.php est sollicité et crée une mise à jour du « fichier » XML.

Créez donc un fichier intitulé sitemap.php. Dans l’exemple suivant, on récupère les articles d’un blog imaginaire.

Voici la structure de la table qui sert dans l’exemple :


CREATE TABLE IF NOT EXISTS `blog` (
`id` MEDIUMINT(9) NOT NULL COMMENT ‘ID de l »article’,
`texte` TEXT NOT NULL COMMENT ‘Texte de l »article’,
`DATE` DATE NOT NULL)
ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=’Articles de blog’;

Voici pour le fichier sitemap.php :

// Connexion MySQL
$host = « localhost »; // généralement, c’est localhost
$user = « NOM_D_UTILISATEUR »;
$pass = « MOT_DE_PASSE »;
$bdd = « NOM_DE_LA_BD »;

@mysql_connect($host,$user,$pass) or die(« Echec de connexion au serveur: « .mysql_error());
@mysql_select_db(« $bdd ») or die(« Echec de sélection de la base: « .mysql_error());

// Spécifier le type de document, soit un document XML
header(« Content-Type: text/xml »);

// Requête MySQL pour aller chercher les articles du blog
$requete = « SELECT id, date FROM blog ORDER BY date DESC »;
$resultat = mysql_query($requete);

// Écriture du fichier XML
// l’entête :
$sm =  »;
$sm .= ‘xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »
xsi:schemaLocation= »http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd »>’;

// Articles du blog
while ($blog=mysql_fetch_array($resultat,MYSQL_ASSOC)) {
$sm .= ‘‘;
$sm .= ‘http://votresite.com/blog?id=’.$blog['id'].’‘; // en suposant que vos pages dynamiques fonctionnent ainsi
$sm .= ‘‘.$blog['date'].’‘;
$sm .= ‘monthly‘;
$sm .= ‘ 0.7‘;
$sm .= ‘
‘;
}

$sm .=  »;

echo $sm;

Comme vous pouvez le deviner, chaque item du sitemap obéit à ce schéma :






<loc> L’emplacement exact de votre page. N’oubliez pas d’inclure le domaine (http://www.domaine.com).
<lastmod> Quand est-ce que votre page a été modifiée pour la dernière fois (ou quand a t-elle été créée). Cette donnée est préalablement stockée dans vos tables par vos scripts de blog. Vous devez fournir cette données sous un format valide W3C.
<changefreq> À quelle fréquence cette page risque t-elle d’être mise à jour? (always, hourly, daily, weekly, monthly, yearly, never). Ceci constitue un indice pour Google, la fréquence d’exploration de Google peut ne pas respecter votre commande. Et il ne sert à rien de mettre always si vous ne modifiez jamais un article une fois qu’il est publié.
<priority>

Cette donnée est un indice hiérarchique, indiquant si cette page est plus importante que d’autres, sur votre site. Cette comparaison ne s’applique pas aux autres sites. Il est inutile de mettre 1 partout, vous vous nuirez. Donnez une priorité plus haute aux pages qui vous semblent plus importantes et qui changent plus souvent

Normalement, en accédant la page sitemap.xml sur votre site, vous devriez voir votre Sitemap en format XML. Vérifiez s’il est valide, puis vous pourrez le soumettre à Google.

Bien sûr, il est possible d’améliorer ce script de plusieurs façons. Par exemple, vous pouvez stocker dans vos tables de données, dans une colonne priority, la priorité à donner à chacune des pages. Même chose pour le changefreq.

Évidemment, on se prend moins la tête avec les CMS!

Créer un Sitemap dynamique pour Joomla!

Pour ce qui est d’un sitemap pour Joomla!, vous avez à votre disposition deux composants : xMap et Joomap, les deux disponible en versions J!1.0x et J!1.5x.

Je n’ai pas essayé Joomap, mais xMap fonctionne très bien. Il existe des extensions pour la plupart des composants connus (Sobi2, Adsmanager, Community Builder, …), ce qui est indispensable. Il s’agit des deux plus connus, mais il existe d’autres composants.

Créer un Sitemap dynamique pour Drupal

Installez le module XML Sitemap pour Drupal, disponible pour Drupal 5.x.

Créer un sitemap dynamique pour WordPress

Téléchargez le plugin de Arne Brachhold, qui fonctionne très bien pour créer un Sitemap pour WordPress. Si le référencement vous intéresse, je vous invite à lire mon article au sujet du référencement sur WordPress.

Ce message est également disponible en : Anglais

5 réflexions au sujet de « Créer un Sitemap Google pour votre site »

  1. Michel

    Bravo pour ce tuto.
    existe-t-il un soft qui fait ça automatiquement quand on lui donne l’adresse du site en question?
    cordialement

  2. maxime

    Bonjour et bravo pour ce tuto :)

    Je viens d’essayer d’installer ce script mais j’ai une erreur lorsque je lance le fichier sitemap.php

    Erreur d’analyse XML : mal formé
    Emplacement : http://www.mondomaine.fr/sitemap.php
    Numéro de ligne 1, Colonne 10 :

    J’ai pas trop l’habitue du xml et je ne comprends pas ce que j’ai fait de mal…
    Merci d’avance pour vos lumières :)

    Maxime

  3. Ping : Créer facilement son plan du site | Le Blog de Bleu

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>