Comment surveiller les changements de sitemap automatiquement
Pour surveiller les changements de sitemap, enregistrez à intervalle fixe une copie de la liste des URL du sitemap et comparez chaque copie à la précédente. Les différences qui méritent une action sont les URL qui apparaissent, les URL qui disparaissent et les dates lastmod qui bougent en masse.
Le sitemap est le seul fichier où un CMS liste, en clair, les pages qu'il estime devoir exister. Quand une migration ou un changement d'extension fait disparaître une section, le sitemap le reflète le jour même, alors que les positions peuvent mettre des semaines à montrer quoi que ce soit. La plupart des équipes le vérifient au lancement et ne l'ouvrent plus jamais.
Lire un diff de sitemap
Chaque type de changement a une explication anodine fréquente et une panne qu'il faut écarter.
| Changement | Souvent anodin parce que | À écarter |
|---|---|---|
| URL ajoutées | De nouveaux articles ou produits ont été publiés | Archives de tags, paramètres de filtres, pages de fichiers joints ou URL de préproduction générées |
| URL supprimées | Du contenu a été volontairement supprimé ou fusionné | Pages dépubliées par erreur, passées en noindex ou perdues lors d'une migration |
lastmod modifié sur quelques URL |
Ces pages ont été modifiées | En général rien |
lastmod modifié sur toutes les URL |
C'est rarement une vraie modification | Un déploiement ou une reconstruction du cache qui réécrit les dates |
Les URL supprimées méritent la plus grande attention. Google garde une page dans l'index un certain temps après sa sortie du sitemap, et le trafic ne vous préviendra donc pas. Les ajouts comptent surtout en e-commerce, où une mise à jour qui active des pages d'attributs ou de filtres peut ajouter du jour au lendemain un gros lot d'URL sans contenu.
Les changements de lastmod en masse sont moins urgents, mais méritent tout de même d'être corrigés. La documentation de Google sur les sitemaps indique que Google n'utilise lastmod que si la valeur est exacte de façon constante et vérifiable : un sitemap qui appose la date du jour sur tout apprend à Google à ignorer ce champ. La bonne façon d'écrire le fichier est traitée dans les bonnes pratiques de sitemap XML.
Un diff manuel à lancer dès aujourd'hui
Pour un sitemap simple, sans index :
curl -s https://example.com/sitemap.xml \
| grep -o '<loc>[^<]*' | cut -c6- | sort > aujourdhui.txt
comm -3 hier.txt aujourdhui.txt
comm -3 affiche dans la première colonne les URL présentes seulement dans le fichier d'hier et, dans la seconde, en retrait, celles présentes seulement dans le fichier du jour. C'est plus lisible que la sortie de diff.
La plupart des vrais sites servent plutôt un index de sitemaps. Yoast sert /sitemap_index.xml, qui pointe vers post-sitemap.xml, page-sitemap.xml et d'autres fichiers du même genre. WordPress sans extension SEO sert /wp-sitemap.xml. Le /sitemap.xml de Shopify est un index de sitemaps enfants pour les produits, les collections, les pages et les blogs. Lancez la commande ci-dessus sur l'un d'eux et vous obtiendrez une liste de sitemaps enfants, pas de pages. Une petite boucle règle le problème :
curl -s https://example.com/sitemap_index.xml \
| grep -o '<loc>[^<]*' | cut -c6- \
| while read child; do
curl -s "$child" | grep -o '<loc>[^<]*' | cut -c6-
done | sort -u > aujourdhui.txt
Deux réserves. Les sitemaps compressés (.xml.gz) exigent un gunzip -c dans l'enchaînement de commandes, et une balise <loc> encadrée par une section CDATA ou répartie sur plusieurs lignes échappera à grep : si vous gardez le script sur la durée, un vrai parseur XML est plus sûr. Si vous ne savez pas où se trouve le sitemap d'un site, la ligne Sitemap: de son robots.txt l'indique généralement.
Là où le script ne suffit plus
La planification est le premier point faible. Une tâche cron sur un ordinateur portable s'arrête quand on rabat l'écran, et un script par site client, c'est une chose de plus que personne n'entretient.
La Search Console ne comble pas ce vide. Son rapport « Sitemaps » affiche l'état de chaque fichier envoyé (« Opération effectuée », « Comporte des erreurs » ou « Impossible de récupérer ») et le nombre de pages découvertes, mais il ne liste pas les URL disparues et n'envoie aucune notification quand ce nombre baisse. Filtrer le rapport « Indexation des pages » par sitemap montre l'état d'indexation des URL d'un fichier, ce qui aide au diagnostic une fois que vous savez déjà que quelque chose ne va pas.
Dernière lacune : une liste d'URL ne dit rien des pages elles-mêmes. /tarifs/ peut toujours figurer dans le sitemap alors que le même déploiement a supprimé son title ou ajouté un noindex.
Automatiser la surveillance des changements de sitemap avec Deltio
Deltio vérifie chaque jour le sitemap de chaque site et le compare au contrôle précédent. Quand des URL sont ajoutées ou supprimées, il envoie pour ce site une alerte Slack et e-mail qui liste les URL concernées, et pas seulement un solde. Au cours du même cycle, il vérifie sur les pages les changements de noindex, de canonical, de title, de meta description et de H1 : un changement de sitemap et une régression au niveau des pages issus de la même mise en production arrivent donc ensemble. Il se combine avec les alertes de changement SEO et, plus largement, avec la surveillance des changements sur les sites clients.
Un cycle quotidien a un angle mort : un sitemap qui casse puis se rétablit en quelques heures peut passer inaperçu. Pour la plupart des sites, ce compromis est acceptable, et un jour de lancement, vous pouvez faire tourner le script ci-dessus en parallèle. L'essai gratuit de 14 jours vous donne deux semaines de diffs sur le site client qui vous inquiète le plus.
Questions fréquentes
- Faut-il renvoyer le sitemap dans la Search Console à chaque changement ?
- Non. Google récupère à nouveau les sitemaps qu'il connaît déjà selon son propre calendrier. Renvoyer le fichier dans le rapport Sitemaps peut déclencher une récupération après un changement important, mais ce n'est pas obligatoire. Google a abandonné en 2023 l'ancien point de terminaison de ping des sitemaps : les scripts qui l'appellent encore ne servent à rien.
- Les pages en noindex doivent-elles figurer dans le sitemap ?
- Non. Un sitemap doit lister des URL canoniques et indexables. Une URL en noindex dans le sitemap envoie un signal contradictoire, et elle apparaîtra comme exclue si vous filtrez le rapport Indexation des pages sur ce sitemap. Si une URL est en noindex volontairement, retirez-la du fichier.
- À quelle fréquence vérifier un sitemap ?
- Un contrôle quotidien convient à la plupart des sites d'entreprise et e-commerce. Les sites qui publient plusieurs fois par jour, comme les médias d'actualité, génèrent tellement d'ajouts que l'information utile se trouve dans les suppressions : c'est à celles-ci qu'il vaut mieux prêter attention en priorité.
- Peut-on surveiller le sitemap d'un concurrent ?
- Les sitemaps sont des fichiers publics, donc le même script fonctionne sur n'importe quel site. Cherchez la ligne Sitemap dans le robots.txt du site pour trouver le fichier. C'est un moyen raisonnable de savoir quand un concurrent lance une nouvelle section ou un lot de fiches produits.
- Combien coûte la surveillance de sitemap avec Deltio ?
- Elle est incluse dans toutes les offres. Starter coûte 29 € par mois, ou 24 € par mois en facturation annuelle, pour 50 sites et 5 000 URL maximum. Professional coûte 59 € par mois (49 € en annuel) pour 200 sites maximum, et Enterprise 139 € par mois (116 € en annuel) pour 500 sites maximum. Chaque offre comprend un essai gratuit de 14 jours.