Un développeur m'a envoyé la semaine dernière un sitemap de 42 000 URL. Il l'avait généré avec une extension gratuite, l'avait soumis tel quel dans la Search Console, puis s'étonnait que Google n'ait indexé que 900 pages. Le problème ne venait pas du contenu, ni du maillage. Le problème, c'est que 38 000 de ces URL renvoyaient une balise lastmod identique, fixée au jour de la génération du fichier. Google a lu ce signal comme du bruit et a rangé l'ensemble dans la catégorie « on verra plus tard ».
Voilà, en une scène, l'essentiel de ce qui sépare un sitemap qui aide d'un sitemap qui nuit. La structure XML n'est pas un détail technique : c'est le seul endroit où vous parlez directement au robot d'exploration, sans intermédiaire, sans contenu à interpréter.
Points clés à retenir
- Un sitemap XML respecte le protocole sitemaps.org : UTF-8, balises fermées, URL absolues.
lastmoddoit refléter une modification réelle, pas la date de génération du fichier.changefreqetprioritysont ignorés par Google depuis des années. Je les garde quand même, mais je ne compte plus dessus.- La limite technique est de 50 000 URL et 50 Mo par fichier, au-delà il faut un index de sitemaps.
- Un sitemap déclaré ne garantit jamais l'indexation. C'est un plan, pas un ordre.
- La validation passe par la Search Console et par un simple parseur XML — deux minutes qui évitent des semaines de silence.
Comment créer un plan de site XML qui respecte les normes SEO : la structure réelle
Oubliez les interfaces graphiques une minute. Un sitemap, c'est du texte. Vous pouvez l'écrire à la main, et tant que le fichier est valide, Google s'en fiche de savoir si vous l'avez tapé dans un éditeur ou généré par un plugin payant.
Le squelette minimal ressemble à ça :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://exemple.fr/article-guide</loc>
<lastmod>2026-03-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset> Quatre balises, un espace de noms, un encodage. C'est tout. Les problèmes commencent quand on remplit ces balises n'importe comment.
La balise <loc> et ses pièges
Chaque <loc> doit contenir une URL absolue, complète, avec le protocole. J'ai vu des sitemaps avec des chemins relatifs (/blog/article) parce que le script de génération avait été écrit à la va-vite. Résultat : fichier rejeté en bloc, à la première ligne invalide.
Autre piège plus sournois : les caractères spéciaux. Une esperluette dans une URL doit être échappée en &, sinon le parseur XML plante. Je me suis fait avoir sur un site e-commerce où une catégorie contenait un « & » dans son slug. Le sitemap était invalide depuis huit mois et personne ne l'avait remarqué, parce que son auteur regardait les statistiques de la Search Console sans jamais ouvrir l'onglet « Sitemaps ».
Pourquoi lastmod est la seule balise qui compte vraiment
Franchement, parmi les quatre balises optionnelles, une seule pèse encore dans la balance. lastmod. Google s'en sert pour décider s'il doit revenir explorer une page ou passer son tour. C'est un signal de fraîcheur, et il est mensonger si vous le remplissez à la légère.
Le test est simple : si vous régénérez le fichier aujourd'hui et que 40 000 pages se retrouvent datées du jour, vous avez fabriqué un faux signal massif. Google le détecte, et il finit par ignorer vos dates pour de bon. Je préfère un sitemap avec des lastmod hétérogènes, échelonnés sur des mois, qu'un fichier « tout frais » généré automatiquement chaque nuit.
Faut-il encore mettre changefreq et priority ?
Question qu'on me pose à chaque audit. Réponse courte : non, Google les ignore. John Mueller l'a répété publiquement plusieurs fois, et ça fait des années que c'est le cas. Ils sont restés dans le protocole parce que d'autres moteurs, et surtout des outils tiers, continuent de les lire.
Ce que je fais dans la pratique : je les garde pour les sites dont je sais que d'autres crawlers les utilisent (certains agrégateurs d'actus, de vieux moteurs d'entreprise), et je les retire du reste. Mais je ne passe jamais trente minutes à réfléchir au priority d'une page. Le temps investi là-dessus n'a jamais rapporté un seul clic, sur aucun des projets que j'ai suivis.
Grosses structures : index de sitemaps et fichiers spécialisés
Dès qu'un site dépasse quelques milliers d'URL, la question change de nature. Un seul fichier ne suffit plus, et il faut le découper intelligemment plutôt que par paquets de 50 000.
L'index de sitemaps en pratique
Un index, c'est un fichier qui pointe vers d'autres fichiers. Sa structure :
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://exemple.fr/sitemap-articles.xml</loc>
<lastmod>2026-03-14</lastmod>
</sitemap>
<sitemap>
<loc>https://exemple.fr/sitemap-produits.xml</loc>
</sitemap>
</sitemapindex> Mon découpage habituel : un fichier pour les pages statiques, un pour le blog, un pour les catégories, un pour les fiches produits, un pour les images. Séparer par type plutôt que par volume. La raison est simple : quand une section du site bugue et génère des URL en boucle, vous n'avez qu'un fichier à désactiver dans la Search Console, au lieu de couper tout le plan du site.
Images, vidéos, actualités
Trois sitemaps spécialisés qui ne se confondent pas avec le sitemap général :
- Sitemap d'images : extension
image:imageà l'intérieur d'une balise<url>, avecimage:locobligatoire. - Sitemap vidéo : plus exigeant, demande la page de lecture, la vignette, la durée, et le contenu doit être hébergé chez vous ou sur un lecteur que Google sait crawler.
- Sitemap Google News : réservé aux sites d'actualité, avec des règles strictes sur les articles des 48 dernières heures.
- hreflang : pas une extension de sitemap au sens strict, mais Google accepte les annotations
xhtml:linkdans un sitemap pour les sites multilingues. Je préfère les balises dans le<head>, plus simples à maintenir.
Un point qui m'a coûté cher une fois : croire qu'un sitemap d'images suffisait à faire apparaître des visuels dans la recherche. Non. Le sitemap aide Google à trouver l'image ; il ne décide pas de son classement, ni de son affichage. C'est le contexte autour de l'image qui fait le travail.
Validation, envoi et diagnostic
Deux étapes, deux minutes chacune. Et une troisième qu'on oublie tout le temps.
- Validez le fichier dans un parseur XML. Si le fichier s'ouvre et se referme correctement, vous êtes bon. Sinon il vous montre la ligne fautive.
- Déclarez le sitemap dans la Search Console, section « Sitemaps ». Attendez quelques heures avant de tirer des conclusions.
- Vérifiez la déclaration dans le robots.txt. Une ligne
Sitemap: https://exemple.fr/sitemap.xmlsuffit. - Suivez le nombre d'URL « découvertes » versus « indexées » sur plusieurs semaines. L'écart parle plus que n'importe quelle théorie.
Le diagnostic, c'est là que tout se joue. Si la Search Console vous dit « 12 000 URL découvertes, 300 indexées », le problème n'est presque jamais le sitemap. Le sitemap a fait son travail : il a montré les pages. Ce qui bloque, c'est la qualité, la duplication, une balise canonique mal placée ou un contenu trop proche d'une autre page. Le sitemap est un livreur, pas un avocat.
Les erreurs de validation que je vois le plus souvent
| Erreur | Symptôme | Correction |
|---|---|---|
| URL non absolue | Fichier rejeté ligne 2 | Ajouter le protocole et le domaine |
| Caractère « & » non échappé | Parseur en échec | Remplacer par & |
| Mauvais encodage | Accents illisibles | Forcer UTF-8 en tête de fichier |
| URL en 404 dans le sitemap | Couverture en baisse | Filtrer les codes de réponse avant génération |
lastmod identique partout | Dates ignorées par le robot | Utiliser la vraie date de modification |
Comment faire remonter son site auprès de Google
Le sitemap fait partie de la mécanique, mais il ne la résume pas. Trois leviers comptent plus que lui :
La vitesse d'exploration. Un sitemap propre et léger aide Google à parcourir le site régulièrement. Une fois que les visites du robot s'espacent, la remontée d'un contenu nouveau prend des semaines au lieu de quelques jours.
Le maillage interne. J'ai un exemple précis : un article enterré à quatre clics de la page d'accueil, absent de tout menu, n'a jamais décollé malgré un sitemap impeccable et un contenu solide. Un lien depuis une page forte, et il est sorti en dix jours. Le lien bat le sitemap.
La qualité perçue. Une page utile, distincte, qui répond mieux que la concurrence n'a besoin d'aucun artifice pour être indexée. Le sitemap accélère le processus, il ne le remplace pas.
Générer automatiquement, sans se tirer une balle dans le pied
Tous les CMS sérieux génèrent leur sitemap. WordPress avec une extension dédiée, Shopify en natif, les frameworks modernes via une bibliothèque. Le piège n'est pas là.
Le piège, c'est la sur-génération. Une extension mal configurée va inclure les pages de tags, les résultats de recherche interne, les URL de pagination vides, les profils utilisateurs, les brouillons. J'ai vu un sitemap WordPress contenir 18 000 URL pour un site de 200 pages réelles. Neuf fois le volume utile, du bruit qui noie les vraies pages.
Ma règle : je liste d'abord les types de contenu que je veux indexer. Le reste, hors sitemap. Et je vérifie après chaque mise à jour majeure du CMS, parce que les extensions ont une fâcheuse tendance à ajouter des types de contenu sans prévenir.
Ce qu'un sitemap ne fera jamais pour vous
Il ne fera pas indexer une page que vous avez vous-même bloquée dans le robots.txt. Il ne réparera pas un contenu dupliqué. Il ne compensera pas un site lent. Il ne vous dispensera pas de réfléchir à ce que vous voulez montrer à Google.
Ce fichier reste pourtant la seule déclaration directe, sans filtre, que vous adressez à un moteur de recherche. C'est un endroit rare : tout y est vérifiable, tout y est mécanique, et une erreur s'y corrige en cinq minutes. Peu d'aspects du référencement offrent cette clarté.
Il y a quelques années, je remplissais mes sitemaps à la main en pensant que le soin apporté se verrait. Ce n'était pas faux, mais pas pour la raison que je croyais : ce qui se voit, ce n'est pas le soin, c'est la cohérence. Un fichier qui dit la vérité sur un site sera lu ainsi pendant des années. Un fichier qui ment une fois sera ignoré — et vous ne saurez pas quand il a cessé d'être écouté.