Un fichier XML écrit à la main, ça fait peur. On imagine une syntaxe capricieuse, une balise mal fermée, et Google qui vous ignore pendant des semaines. La vérité est plus banale : un sitemap manuel, c'est une vingtaine de lignes répétitives, et une seule règle à respecter religieusement. J'ai cassé trois sitemaps avant de comprendre laquelle.
Points clés à retenir
- Un sitemap XML se compose d'un jeu de balises obligatoires :
<urlset>,<url>et<loc>. Le reste est optionnel. - Les URL doivent être absolues (avec
https://) et le fichier encodé en UTF-8. - Un fichier est plafonné à 50 000 URLs et 50 Mo non compressés. Au-delà, on passe à un sitemap index.
- L'écriture à la main ne sert qu'aux petits sites ou aux cas particuliers — un CMS le fait mieux, plus vite.
- Le vrai travail commence après : déclaration dans robots.txt et suivi dans Google Search Console.
Anatomie d'un sitemap XML que vous écrivez vous-même
Un sitemap XML ressemble à ceci, dans sa version la plus dépouillée :
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://exemple.fr/</loc>
<lastmod>2026-05-14</lastmod>
</url>
<url>
<loc>https://exemple.fr/blog/</loc>
</url>
</urlset> Trois balises suffisent. Le reste, on l'ajoute ou non.
Les balises et leur ordre obligatoire
Le protocole Sitemap impose un ordre précis à l'intérieur de chaque <url>. Si vous inversez <priority> et <lastmod>, le fichier reste lisible pour un humain — mais un validateur strict le rejette.
- <loc> — obligatoire. L'URL absolue de la page.
- <lastmod> — la date de dernière modification, au format
AAAA-MM-JJ. Utile quand vous mettez à jour un vieil article. - <changefreq> —
always,hourly,daily,weekly,monthly,yearly,never. Google a expliqué depuis longtemps qu'il ignore cette valeur. Deux lignes pour rien. - <priority> — un nombre entre 0.0 et 1.0. Même topo : ignoré. Je continue à le mettre sur mes sites, mais je sais que c'est décoratif.
Si vous débutez, gardez uniquement <loc>. C'est le seul champ qui change vraiment quelque chose.
Les erreurs qui cassent tout
Quatre pièges, tous rencontrés en vrai :
- L'esperluette non échappée. Une URL avec
&doit s'écrire&. Sans ça, le parseur s'arrête net. - Des URL relatives.
/blog/au lieu dehttps://exemple.fr/blog/: le fichier est invalide. - Un encodage qui n'est pas UTF-8. Votre éditeur par défaut est probablement en UTF-8, mais vérifiez dans les options. Un accent mal encodé, une apostrophe typographique, et Google renvoie une erreur de traitement.
- Plus de 50 000 lignes
<url>ou 50 Mo. Au-delà, il faut découper.
Un point qu'on ne lit nulle part : la casse dans l'URL compte. /Blog/ et /blog/ sont deux pages différentes pour un serveur Linux. Je l'ai appris à mes dépens en déclarant un sitemap où la moitié des liens renvoyaient un 404.
Quand écrire un sitemap à la main a du sens (et quand c'est une perte de temps)
Posons la question franchement : dans 90 % des cas, vous ne devriez pas écrire votre sitemap à la main.
Un WordPress correctement configuré, un Shopify, un Wix, un Hugo, un Next.js — tous génèrent le fichier automatiquement. Les plugins de sitemap pour WordPress le font en trois clics, et mieux : ils gèrent les images, les catégories, les pages d'auteur. Réécrire ça manuellement serait absurde.
Alors quand est-ce utile ?
Trois cas où le manuel gagne
- Un site statique minuscule — cinq ou dix pages HTML posées à la main, sans build. Générer un sitemap via un outil externe serait plus long que de taper dix lignes.
- Un ajout chirurgical — votre CMS oublie systématiquement une page (une landing hors template, une page de remerciement). Vous éditez le fichier généré pour l'ajouter.
- Un contrôle total de
lastmod— vous voulez forcer une date précise pour signaler une mise à jour importante. Aucun outil ne vous laissera ce niveau de finesse.
Comment modifier un sitemap existant sans le casser
C'est la galère classique : un plugin régénère le fichier chaque nuit, et votre édition manuelle disparaît. Deux solutions propres :
Soit vous désactivez la régénération automatique et prenez la main sur le fichier — viable uniquement si votre site ne bouge plus beaucoup. Soit vous créez un second sitemap indépendant, dédié aux pages orphelines, et vous le déclarez à part. C'est l'approche que j'utilise désormais, et je n'ai plus jamais perdu une modification.
Sitemap index : la solution pour les gros sites
Un site avec 80 000 URLs ne rentre pas dans un seul fichier. La parade s'appelle le sitemap index — un fichier parent qui liste les autres.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://exemple.fr/sitemap-pages.xml</loc>
<lastmod>2026-05-14</lastmod>
</sitemap>
<sitemap>
<loc>https://exemple.fr/sitemap-articles.xml</loc>
</sitemap>
</sitemapindex> Notez la différence : la balise racine est <sitemapindex>, pas <urlset>, et l'élément enfant est <sitemap>, pas <url>. On retrouve souvent cette confusion dans les sitemaps mal générés.
| Critère | Sitemap unique | Sitemap index |
|---|---|---|
| Nombre d'URLs max | 50 000 | 50 000 par fichier enfant |
| Taille max | 50 Mo non compressés | 50 Mo par fichier enfant |
| Balise racine | <urlset> | <sitemapindex> |
| Cas d'usage | Petit ou moyen site | E-commerce, presse, annuaires |
Déclarer le sitemap et suivre son indexation
Un sitemap écrit ne sert à rien s'il reste dans un dossier. Deux chemins pour le signaler.
La ligne dans robots.txt
Ajoutez simplement, à la fin de votre fichier robots.txt :
Sitemap: https://exemple.fr/sitemap.xml Cette ligne indique à tous les crawlers — pas seulement Google — où trouver le fichier. Bing, Yandex et consorts la respectent aussi.
La soumission dans Google Search Console
Dans l'interface, section Sitemaps, vous collez l'URL du fichier et validez. Google vous confirme la lecture, ou vous renvoie une erreur. C'est ce retour qui vous sauve la vie.
Trois messages reviennent en boucle :
- Impossible de lire le sitemap — souvent une balise non fermée ou un encodage cassé.
- Erreur de traitement temporaire — le serveur a renvoyé un 5xx au moment du crawl. Rien de grave, attendez et resoumettez.
- Sitemap valide, 0 URL découverte — vos
<loc>pointent vers des pages en noindex ou bloquées par robots.txt. Vérifiez la cohérence.
Le détail que je répète à chaque fois : Search Console vous dit la vérité sur votre fichier. Peu importe ce que raconte votre éditeur de texte. Si Google dit erreur, il y a erreur.
Questions fréquentes
Comment faire un sitemap XML ?
Le plus simple : laisser votre CMS ou un générateur s'en charger — Google le recommande explicitement, et aucun format n'a sa préférence. Pour un site statique minuscule, écrivez-le à la main : ouvrez un fichier texte, collez le squelette <urlset> + <url> + <loc>, listez chaque URL absolue, enregistrez en .xml en UTF-8, puis validez. Un sitemap manuel est surtout utile quand vous gérez peu de pages ou que vous voulez contrôler précisément chaque entrée.
À quoi sert un fichier Sitemap XML ?
Il aide les moteurs de recherche à découvrir et à comprendre vos URLs. Concrètement, il leur indique quelles pages existent, quand elles ont été modifiées, et — dans le cas du XML — peut enrichir ces infos avec des données d'images, de vidéos, d'actualités ou de versions localisées. Attention : un sitemap n'est pas une garantie d'indexation. C'est un plan, pas un ordre. Google peut décider de ne pas indexer une page listée, pour des raisons de qualité ou de doublon.
Comment configurer un sitemap sur son site ?
Trois étapes, dans cet ordre. Un : produisez le fichier (généré par le CMS ou écrit à la main), à la racine du domaine. Deux : déclarez-le dans robots.txt avec la ligne Sitemap:. Trois : soumettez-le dans Google Search Console et surveillez les erreurs. Beaucoup oublient la deuxième étape — c'est pourtant celle qui touche tous les moteurs, pas seulement Google.
Comment obtenir le sitemap d'un site ?
Deux méthodes rapides. La première : tapez https://domaine.fr/sitemap.xml dans votre navigateur. S'il existe et est bien nommé, il s'affiche. Sinon, essayez /sitemap_index.xml, /sitemap-index.xml ou /sitemap1.xml — les noms varient selon les CMS. La deuxième : ouvrez le robots.txt du site (https://domaine.fr/robots.txt), et cherchez la ligne Sitemap:. Presque toujours, elle vous donne l'URL exacte.
Ce qui reste quand la technique est réglée
Un sitemap n'est pas un levier de référencement. C'est une porte d'entrée. Il ne fera pas ranker un mauvais contenu, il ne rattrapera pas une architecture cassée, il ne remplacera jamais des liens internes solides.
Ce qu'il fait, en revanche, il le fait bien : il supprime une friction. Vous ne laissez plus le hasard décider si Google connaît l'existence de vos pages.
Et parfois, la friction supprimée, ce qu'on découvre, c'est que le vrai problème était ailleurs. Combien de fois ai-je corrigé un sitemap impeccable — au caractère près — avant de comprendre que mes pages n'étaient tout simplement pas assez bonnes pour être indexées ? Le fichier n'a jamais été le problème. C'est peut-être ça, la vraie leçon de la configuration manuelle.