Sitemap XML et robots.txt : comment les faire travailler ensemble
Un sitemap et un fichier robots.txt servent des fonctions opposées. Le sitemap dit « voici le contenu que je veux que vous trouviez ». Le robots.txt dit « voici le contenu que je veux que vous ignoriez ». Ensemble, ils forment une politique de crawl complète : une liste d'inclusion et une liste d'exclusion qui guident chaque robot visitant le site.
En pratique, la plupart des sites WordPress traitent ces deux fichiers comme s'ils étaient sans rapport. Le plugin SEO génère un sitemap. Le robots.txt est soit le défaut WordPress, soit un fichier modifié manuellement. Personne ne vérifie s'ils s'accordent. Et quand ils se contredisent, les conséquences sont silencieuses : budget de crawl gaspillé, indexation retardée et signaux contradictoires que les moteurs de recherche résolvent à leurs propres conditions — pas aux nôtres.
Le contrat fondamental
La relation entre sitemap et robots.txt devrait suivre une règle simple : aucune URL ne devrait apparaitre à la fois dans le sitemap et dans la liste Disallow du robots.txt.
Si une URL est dans le sitemap, on dit aux robots « cette page est importante, veuillez la crawler et l'indexer ». Si cette même URL correspond à une règle Disallow dans le robots.txt, on dit aux robots « n'accédez pas à cette page ». Ces deux instructions sont contradictoires. Quand un robot rencontre ce conflit, il doit décider quel signal prioriser.
La documentation de Google précise que le robots.txt prend le dessus : si une URL est interdite, Google ne la crawlera pas, peu importe qu'elle apparaisse dans le sitemap. L'entrée du sitemap est ignorée. La page peut encore apparaitre dans les résultats de recherche comme un listing URL uniquement (sans extrait) si d'autres sites y font des liens, mais Google ne récupèrera jamais le contenu.
Les conflits courants sous WordPress
WordPress et son écosystème de plugins créent plusieurs conflits sitemap-robots courants :
Les archives d'étiquettes et de catégories. Certains plugins SEO incluent les pages d'étiquettes et les archives de catégories dans le sitemap par défaut. Si on a ajouté Disallow: /tag/ ou Disallow: /category/ dans le robots.txt (une recommandation courante pour la gestion du contenu mince), ces URL sont simultanément invitées et bloquées.
Les archives d'auteurs. Sur les sites à auteur unique, l'archive d'auteur duplique le listing principal du blogue. Certaines configurations incluent les archives d'auteurs dans le sitemap tout en les bloquant dans le robots.txt.
Le contenu paginé. Les pages d'archives paginées (/page/2/, /page/3/) apparaissent parfois dans les sitemaps générés par les plugins, même quand le robots.txt bloque le patron /page/.
Les pages filtrées de WooCommerce. Les URL de filtres par attributs de produits peuvent générer des milliers d'entrées de sitemap tout en étant bloquées par les règles robots.txt ciblant les paramètres de requête ou les chemins de navigation à facettes.
Chacun de ces conflits envoie un signal mixte. Le robot voit l'URL dans le sitemap, tente de la récupérer, lit le Disallow du robots.txt, et abandonne la requête. La tentative de crawl compte quand même dans le budget de crawl, mais aucun travail utile n'est accompli.
La directive Sitemap dans le robots.txt
La ligne Sitemap: dans le robots.txt n'est pas techniquement une règle robots.txt. C'est une extension supportée par Google, Bing et la plupart des autres grands robots. Son but est d'indiquer aux robots où se trouve le sitemap, indépendamment de toute règle Disallow.
Cette directive compte plus que la plupart des propriétaires de sites ne le réalisent, pour deux raisons.
Premièrement, elle fournit un chemin de découverte garanti. Search Console et Bing Webmaster Tools acceptent aussi les soumissions de sitemaps, mais la directive robots.txt fonctionne pour tout robot — incluant les robots IA et les services d'archivage — sans qu'ils aient besoin de consulter un outil propriétaire.
Deuxièmement, c'est le seul signal positif dans le robots.txt. Toutes les autres règles du fichier restreignent l'accès. La directive Sitemap: est la seule ligne qui dirige activement les robots vers du contenu qu'on veut qu'ils trouvent. L'omettre est une occasion manquée.
Liste de vérification d'alignement
Pour s'assurer que le sitemap et le robots.txt travaillent ensemble plutôt que l'un contre l'autre, vérifier ces points :
Chaque URL dans le sitemap est accessible au crawl. Passer le sitemap dans un outil de crawl ou utiliser un outil d'audit SEO pour vérifier chaque URL contre le robots.txt. Toute URL qui retourne « bloquée par robots.txt » est un conflit à résoudre.
Aucune URL interdite n'apparait dans le sitemap. Le plugin SEO devrait exclure les URL qui correspondent aux patrons Disallow du robots.txt. S'il ne le fait pas automatiquement, le configurer manuellement ou passer à un plugin qui gère correctement l'interaction.
La directive Sitemap pointe vers la bonne URL. Si le plugin SEO utilise un index de sitemaps (comme /sitemap_index.xml), la ligne Sitemap: du robots.txt devrait pointer vers l'index, pas vers les sitemaps enfants individuels.
Les URL du sitemap utilisent le domaine canonique. Si le site redirige de http vers https ou de www vers non-www, le sitemap devrait utiliser l'URL canonique finale. Un décalage entre l'URL du sitemap et l'URL canonique crée des chaines de redirection inutiles pour les robots.
Les valeurs de priorité et de fréquence sont significatives. Un sitemap où chaque page a une priorité de 0.5 et un changefreq de weekly ne fournit aucune information utile. Utiliser les valeurs de priorité pour refléter l'importance réelle des pages et le changefreq pour refléter les patrons de mise à jour réels. Si on ne peut pas maintenir des valeurs exactes, les omettre entièrement — un signal absent est meilleur qu'un signal inexact.
La dimension IA
Les robots IA qui respectent le robots.txt bénéficient aussi d'un sitemap bien structuré, même si la plupart des robots IA ne traitent pas les sitemaps de la même façon que les moteurs de recherche. Le fichier llms.txt émergent sert un objectif similaire pour les systèmes IA : il les dirige vers du contenu pertinent et autorisé, tout comme un sitemap dirige les moteurs de recherche vers les pages importantes.
Better Robots.txt génère les deux fichiers de manière coordonnée : les règles robots.txt et la directive sitemap sont produites à partir de la même configuration, réduisant le risque de contradictions entre ce qu'on bloque et ce qu'on promeut.
L'objectif est une politique de crawl unique et cohérente où la liste d'inclusion et la liste d'exclusion ne se chevauchent jamais.