Article mis à jour le 27/06/2023 (fin du ping)
Sommaire :
Tout savoir sur les fichiers sitemaps
J’écris “fichier sitemap” pour ne pas confondre avec le plan de site, cette page web destinée aux internautes, leur permettant de se situer dans le site et de comprendre la logique de son arborescence (cette page HTML est rarement nécessaire)…
Définition
Un sitemap est un fichier listant des URL du site que l’on souhaite faire crawler (et généralement aussi indexer). Au format sitemaps.org, il doit être déclaré aux moteurs de recherche. Il aide à faire des analyses SEO avancées.
Une fois que les moteurs auront consulté le fichier, si tout se passe bien ils iront explorer (crawler) les URL listées. Et donc si tout se passe (encore) bien, ils devraient indexer les fameuses URL.
Si vous souhaitez vérifier vos sitemaps et découvrir plein de possibilités pour améliorer votre référencement grâce à un audit avancé de sitemaps, découvrez mon outil RM Sitemaps. Disponible dans ma plateforme SEO My Ranking Metrics, RM Sitemaps inclut plusieurs innovations et automatise la plupart du travail. Soyez plus efficace et découvrez en quelques clics des optimisations qui seraient passées inaperçues…
Le standard sitemaps.org
Sitemaps est un protocole proposé par les plus grands moteurs de recherche, permettant aux webmasters de lister les URL qui doivent être explorées en vue de leur indexation.
Historique :
- Tout a commencé avec la version Sitemaps 0.84 publiée en juin 2005 par Google
- En décembre 2006, les 2 autres moteurs leaders du moment (Microsoft avec Live Search rebaptisé Bing, et Yahoo) annoncent le support de Sitemaps 0.90 (voir le communiqué de presse). Le standard est né, décrit sur le site officiel sitemaps.org.
- En avril 2007, Ask annonce le support des sitemaps. C’est également depuis cette date qu’il est possible d’indiquer des URL de sitemaps dans le fichier robots.txt
Désormais, les moteurs de recherche suivants supportent le protocole sitemaps.org :
Nom du fichier sitemap
Vous pouvez choisir le nom que vous voulez pour le fichier sitemap, aucun nom n’est imposé.
D’ailleurs, vous pouvez créer autant de fichiers sitemaps que vous voulez (ou presque). Si vous en avez beaucoup, vous pouvez créer un fichier index de sitemaps qui se borne à lister les URL des fichiers sitemaps.
Mieux vaut choisir un nom de fichier difficile à deviner, pour éviter de donner des informations à vos concurrents (ils n’ont pas à savoir quelles pages vous souhaiter faire indexer en priorité). Arrêtez donc de le nommer sitemap.xml ou pire, de l’indiquer dans votre fichier robots.txt (allez directement dans Google Search Console).
Comment trouver le sitemap d’un site ?
Vous ne pouvez pas trouver le sitemap XML à coup sûr puisque l’URL précise du ou des sitemaps est totalement libre. Voici tout de même plusieurs solutions à tester :
- vérifier à la racine du site :
/sitemap.xml
- si le site est sur WordPress et qu’il utilise Yoast SEO :
/sitemap_index.xml
- regarder dans le fichier
/robots.txt
si le fichier sitemap est déclaré (il peut y en avoir plusieurs)
Qu’est-ce qu’un index de sitemaps ?
Si vous possédez plusieurs sitemaps, vous pouvez utiliser un fichier d’index de sitemaps pour les envoyer en une seule fois. Le format XML d’un fichier d’index de sitemaps est très similaire au format XML d’un fichier sitemap. Le fichier d’index de sitemaps utilise les balises XML suivantes :
sitemapindex
: balise parent placée au début et à la fin du fichier ;sitemap
: balise parent pour chaque sitemap répertorié dans le fichier (noeud enfant de sitemapindex) ;loc
: emplacement du sitemap (noeud enfant de sitemap) ;lastmod
: date de la dernière modification du sitemap (facultatif).
Attention : un fichier d’index de sitemaps ne peut pas répertorier d’autres fichiers d’index de sitemaps. Il doit répertorier des fichiers de sitemaps uniquement.
Pour en savoir plus sur la syntaxe, consultez la page dédiée au protocole Sitemap.
Voici un exemple d’index de sitemaps au format XML. Cet index répertorie 2 sitemaps :
<?xml version="1.0" encoding="UTF-8 ?>
<sitemapindex xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.example.com/sitemap-categories.xml.gz</loc>
<lastmod>2015-01-01T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.example.com/sitemap-produits.xml.gz</loc>
<lastmod>2015-01-01</lastmod>
</sitemap>
</sitemapindex>
Une fois que vous avez créé et enregistré votre fichier d’index, vous pouvez le déclarer à Search Console comme les autres fichiers sitemaps. Si vous déclarez le fichier index, il est inutile de déclarer les fichiers enfants listés dans ce fichier index (d’ailleurs si vous le faites, vous aurez des sitemaps en doublon ce qui ne pose pas de problème à part d’avoir des chiffres faussés dans Search Console).
Vous pouvez envoyer jusqu’à 500 fichiers d’index de sitemaps pour chaque site de votre compte.
Nombre maximum d’URL dans le sitemap
Quel est le nombre maximal de sitemaps et d’URL dans les sitemaps ?
Voici les limitations en termes de volume :
- un fichier peut lister jusqu’à 50.000 URL
- un index de sitemaps peut lister jusqu’à 50.000 fichiers sitemaps (mais pas de fichier index de sitemaps)
- vous pouvez envoyer jusqu’à 500 fichiers d’index de sitemaps pour chaque site
- une fois décompressé (car vous pouvez l’envoyer compressé), le fichier ne doit pas dépasser 50 Mo (52 428 800 octets). Pour information, cette limite de 50 Mo date de novembre 2016, avant c’était 10 Mo
Cette limitation à 1 250 000 000 000 URL devrait convenir à la plupart d’entre vous 😉
Et si vous déclarez des images dans votre sitemap : les URL des images comptent-elles pour la limite de 50.000 ? Non elles ne comptent pas, sauf bien entendu que ça augmente la taille du fichier et donc son poids (source : John Mueller de Google, sur Twitter).
Quel encodage pour le fichier ?
L’encodage du fichier doit être UTF-8 (attention à bien y penser pour les sitemaps TXT).
Faut-il des URL complètes ou relatives ?
Les URL doivent être complètes (absolues) et non pas relatives. En clair, elles doivent commencer par “http” (ou “https” si vous avez un site en HTTPS, j’en reparle plus bas).
Quels moteurs de recherche gèrent ce standard ?
Tous les principaux moteurs de recherche gèrent ces fichiers sitemaps.
A condition bien entendu de leur indiquer l’URL de votre fichier, car comme je l’ai dit, contrairement au fichier robots.txt dont le nom est fixé et l’emplacement imposé (à la racine du sous-domaine concerné), vous pouvez choisir le nom du fichier sitemap.
Faut-il un sitemap XML ou un simple fichier texte ?
Le fichier peut être au format texte (une ligne = une URL, extension .txt obligatoire) ou XML (standard sitemaps.org). Je n’ai jamais trouvé utile de s’embêter avec le format XML, le format texte va très bien, sauf dans les cas suivants :
- les index de sitemaps nécessitent d’être en XML
- les sitemaps pour les actualités
- pour lister des images ou des vidéos situées dans la page HTML
- pour fournir des informations destinées aux mobiles (l’URL pour mobile équivalente à l’URL desktop, détails ici)
- pour fournir des annotations de langues (quand vous gérez plusieurs et/ou pays)
Il n’est pas possible d’utiliser un sitemap pour indiquer l’URL canonique, mais le fait de déclarer des URL dans un sitemap laisse penser à Google qu’il s’agit d’une URL importante, comprenez “canonique”. Rappel : l’URL canonique se déclare dans la page HTML elle-même ou via l’entête HTTP X-Robots-Tag ; si besoin lisez mon tutoriel sur l’URL canonique.
A mon avis, le format XML ne s’impose pas si vous souhaitez seulement fournir un ou plusieurs des éléments ci-dessous :
lastmod
: aussi étonnant que ça puisse paraître, Google ne tient généralement pas compte de la date de dernière modification ! (source)changefreq
: saurez-vous réellement donner une valeur exacte pour la fréquence de changement du contenu de chacune de vos pages ? Si c’est pour mettre une approximation, laissez Google repérer tout seul à quelle fréquence vous mettez à jour vos pages ! Google ignore ce paramètre (source)priority
: à moins d’avoir un tout petit site (genre 30 pages maxi), je doute fortement que vous réussirez à trier toutes vos pages de façon stricte et intelligente. Ca ne sert à rien de donner la même priorité à tout un tas de pages ! Par ailleurs, John Mueller (de Google) a déclaré que ce paramètre n’est pas pris en compte par Google (source) !
Partagez l’info sur Twitter :
Google tient-il compte du paramètre priority dans les sitemaps ?
Non, Google ignore la valeur de la priorité (priority) que vous indiquez dans un sitemap (source), même si cela fait partie du protocole officiel. Google se base sans doute sur une combinaison de facteurs pour décider quelles URL crawler. Depuis 2020 au moins, Google utilise des méthodes prédictives (IA) pour savoir quelles URL crawler.
Google tient-il compte du paramètre changefreq dans les sitemaps ?
Non, Google ignore la valeur de la fréquence de changement (changefreq) que vous indiquez dans un sitemap (source), même si cela fait partie du protocole officiel. Google se base sans doute sur une combinaison de facteurs pour décider quelles URL crawler. Depuis 2020 au moins, Google utilise des méthodes prédictives (IA) pour savoir quelles URL crawler.
Comment créer un sitemap XML ou texte
Il y a 2 grandes façons de créer un sitemap :
- la meilleure façon : un script sur le serveur
- la moins bonne : un outil en ligne (crawler)
En résumé, le sitemap généré par un script sur votre serveur est plus facilement sûr (exhaustif) et à jour que celui généré par un crawler.
Passer par un crawler pour générer un sitemap qu’on fournit ensuite à Google n’a aucun sens : Google sait déjà très bien crawler votre site, mieux que l’outil utilisé pour générer votre sitemap…
Création de sitemap intégrée au site (script serveur)
Il y a 2 cas de figure :
- Si votre site est géré par un CMS, il y a de fortes chances que celui-ci intègre ou facilite la création de sitemap.
- Sinon, développez vous-même votre script. Cela nécessitera un travail une fois (avec un peu de maintenance à prévoir) mais ce sera très efficace.
Voici quelques pistes selon les principaux CMS…
Créer un sitemap pour un site sur WordPress
Il faut installer un plugin, les meilleurs pour ça sont :
Créer un sitemap pour un site sur Prestashop
Prestashop fournit “Google sitemap”, un module gratuit installé par défaut dans votre boutique. Installez-le puis configurez-le et terminez en cliquant sur Générer. Vous obtiendrez un index de sitemaps pour chaque langue.
Pour automatiser la génération du sitemap, récupérez l’URL de génération des sitemaps et incluez-la dans une tâche CRON.
Attention : depuis Prestashop 1.7 ce module a disparu… Vous pouvez le retrouver sur Github.
Vous pouvez aussi passer par un module complémentaire, il en existe des gratuits et des payants.
Comment faire un sitemap sur Joomla
Ici aussi il faut passer par une extension, dont vous trouverez une liste sur joomla.org.
Création de sitemap en ligne (sitemap generator)
Il existe une multitude d’outils en ligne permettant de générer automatiquement un sitemap. Citons par exemple XML Sitemap Generator qui fonctionne “sur le cloud” (online), gratuit mais limité à 2000 URL.
Je rappelle que c’est une très mauvaise solution, notamment car il faudra recommencer à crawler TOUT votre site dès que vous ferez le moindre ajout ou suppression de page…
Faut-il un plan de site automatique ?
Oui ! Je préfère insister : il faut absolument que la génération de votre sitemap soit automatique.
Donc non seulement il faut passer par un script (ou plugin, extension, etc.), mais il doit être actualisé automatiquement (par un CRON ou tout autre système adapté).
Peut-on envoyer un ping à Google pour un sitemap ?
Pendant des années il était possible d’envoyer un ping à Google pour le prévenir qu’un sitemap a été mis à jour. Google a annoncé en juin 2023 que le support de ce ping prendra fin au 1er janvier 2024.
Intérêt des sitemaps pour le SEO
Un fichier sitemap favorise-t-il le référencement ?
La réponse rapide est NON !
Il ne faut pas confondre indexation et positionnement. Mieux vaut travailler les liens internes que son fichier sitemap !
Dites-le sur Twitter :
En résumé : vous ne devriez PAS avoir besoin d’un fichier sitemap pour faire indexer vos pages. Sinon, ça veut dire que votre site est mal conçu : il manque de liens internes ou bien le nombre de niveaux dans l’arborescence est trop important.
Dit autrement : si certaines pages de votre site sont inaccessibles par le biais de liens (par exemple, la seule façon d’y accéder est de faire une recherche par formulaire), même si vous arrivez à les faire indexer avec le fichier sitemap, elles auront une très faible visibilité dans Google puisqu’elles n’ont pas de backlinks. Si vous êtes dans ce cas, il est bien plus difficile de déterminer si ces pages sont indexées grâce au sitemap ou grâce aux liens internes. C’est pourquoi je conseille souvent de démarrer SANS sitemap (pour valider la conception du site) et d’en ajouter ensuite si cela s’avère nécessaire (cf. mes explications ci-après).
Faut-il créer un fichier sitemap ?
Pour la plupart des sites je le recommande (voir les détails dans la suite du tuto). C’est d’autant plus important que votre site est gros ; à l’inverse, si votre site n’a que quelques pages, ce n’est vraiment pas une priorité.
Pour les gros sites qui génèrent chaque jour de nombreuses nouvelles pages, c’est très utile pour les faire découvrir rapidement à Google.
Quel est l’intérêt du sitemap pour le référencement ?
Le sitemap est utile en SEO :
- pour accélérer le crawl et donc l’indexation des nouvelles URL mises en ligne
- pour faire des analyses avancées et trouver des optimisations
- pour trouver des pages orphelines
- pour faciliter une refonte de site avec changement d’URL
- pour comprendre quelles pages Google accepte d’indexer
- pour évaluer les performances SEO selon les types de pages
- pour accélérer la désindexation de certaines URL
- etc.
Autre bonne raison de créer un sitemap et l’indiquer à Google : obtenir des informations plus fiables sur l’indexation de vos pages. C’est Google qui le dit officiellement (source)
Le Rapport de couverture de l’index fonctionne encore mieux pour les sites qui envoient des sitemaps.
Les sitemaps spécialisés : images, actualités, vidéos, mobile
Il existe d’autres cas où les sitemaps peuvent être utiles : il s’agit des contenus spécifiques pour lesquels un dérivé du format XML classique a été mis au point par Google. Il s’agit des images, des actualités, des vidéos et des contenus pour les mobiles.
Dans ces cas-là, le format XML est obligatoire, mais j’y reviens plus loin.
Dans la suite, je fournis d’autres conseils sur l’utilisation des fichiers sitemaps
Faites des sitemaps selon les types de pages !
Pour les gros sites qui ont besoin d’un fichier sitemap, vous pouvez en faire de 2 types :
- 1 listant les dernières pages créées (pour tenter de gagner en vitesse d’indexation)
- 1 par type de pages (pour essayer de mesurer le taux d’indexation par types de pages, par exemple fiches produits, catégories, articles éditoriaux, etc.)
Rappelons que pour avoir accès aux statistiques relatives à un fichier sitemap, il faut consulter votre compte Google Search Console.
Voici un exemple avec plusieurs fichiers sitemaps pour un site qui a plein de types de pages :
En général on met les sitemaps à la racine du sous-domaine concerné, mais vous pouvez vous organiser autrement. Vous pouvez faire référence dans un sitemap à des URL d’autres sous-domaines, mais il faudra que votre même compte Google Search Console soit propriétaire de ces autres sous-domaines.
Faites des sitemaps par langue et/ou par pays !
Si vous avez un site multilingue, c’est une bonne idée de séparer votre sitemap (ou vos sitemaps) en plusieurs : un par langue. Si vous avez plusieurs sitemaps (par types de pages), redécoupez par langues.
Si vous avez un site qui cible plusieurs pays, là aussi vous avez intérêt à les séparer.
Dans les 2 cas, l’idée est de faciliter l’étude du taux de pages indexées selon les types de pages, les langues et les pays.
Faut-il un sitemap spécifique sur un site en HTTPS ?
Si votre site est accessible pour certaines pages/rubriques en HTTP et en HTTPS pour d’autres, vous devez déclarer chaque version séparément dans Search Console (autant de fois que vous avez de sous-domaines).
Je vous conseille de déclarer votre fichier sitemap dans Search Console (et pas dans le fichier robots.txt), donc déclarez les fichiers sitemaps pour les URL en HTTPS dans les propriétés HTTPS, et ceux avec des URL en HTTP dans les propriétés HTTP.
Prenons l’exemple du site example.com qui a un blog HTTP en sous-domaine http://blog.example.com et le reste en HTTPS https://example.com. Il faut :
- déclarer ces 2 propriétés web dans Search Console
- si possible déclarer aussi les autres versions (HTTP/HTTPS) de ces mêmes sous-domaines
- prévoir le fichier robots.txt de chacune
- prévoir les sitemaps de chacune
Comment créer un fichier sitemap ?
Vous êtes nombreux à demander quels sont les meilleurs outils gratuits pour créer un sitemap. C’est simple : vous devez créer vous-même un script qui génère le ou les sitemap(s), ou bien utiliser un plugin de sitemap si jamais vous utilisez un CMS. Ce script ressemble fort à celui qui génère un flux RSS d’ailleurs. Vous pouvez faire autant de scripts (ou d’options) qu’il y a de types de pages sur votre site (si jamais vous suivez mon idée de créer un fichier sitemap par type de pages).
Evidemment, vous pouvez utiliser des scripts tout fait adaptés à votre CMS. Par exemple pour WordPress il y en a plein.
Avec cette solution, votre sitemap sera tout le temps à jour. Vous n’aurez jamais besoin de l’uploader quelque part (à part le déclarer à Google, cf. plus bas). Si besoin, gérez un cache afin de ne pas regénérer ce fichier à chaque fois qu’il est consulté par un crawler.
Voici les 3 meilleures raisons pour lesquelles vous ne devez jamais utiliser d’outil de génération de sitemap de type “crawler” (générateur de sitemap / sitemap generator) :
- pourquoi utiliser un outil de crawl plutôt que de faire confiance à Google dont c’est le métier ? Pensez-vous vraiment que l’outil que vous choisissez sera plus performant que le crawler de Google ? Et d’ailleurs, pourquoi vouloir faire le boulot de Google ?
- en faisant passer un crawler sur votre site, vous sollicitez votre serveur. Si l’outil que vous utilisez est mal conçu ou mal configuré, il risque de surcharger votre serveur en demandant trop de pages par seconde.
- cette solution n’est pas automatisée : vous devrez penser à lancer l’outil, exporter le fichier généré et l’uploader sur votre serveur. Alors qu’avec le script que vous aurez fait, le sitemap sera toujours à jour.
Par contre, si vous utilisez un outil de type crawler pour faire d’autres analyses sur votre site, autant en profiter pour exporter un site map, ça peut toujours vous servir.
Comment trier les URL dans un sitemap ?
Inutile de les trier, l’ordre n’a pas d’importance. Ce qui est important, c’est que vos sitemaps soient exhaustifs (que toutes les URL soient listées).
Google l’a confirmé encore en 2020 :
L’ordre des URL dans un sitemap est-il important pour le crawl de Googlebot ? Faut-il mettre les URL les plus récentes au début ?
Non, l’ordre dans un fichier sitemap n’a aucune importance. Nous lisons les fichiers pour obtenir les URL du sitemap, puis nous traitons la collection d’URL indépendamment. L’ordre ou le choix du fichier sitemap ne joue aucun rôle.
John Mueller (employé de Google), juin 2020, Twitter
Les sitemaps dans Google Search Console (GSC)
Comment déclarer un sitemap à Google ?
L’interface GSC vous permet de déclarer un nouveau sitemap et de consulter les statistiques associées.
Pour envoyer un nouveau sitemap :
- Vérifiez que vous êtes connecté à search console avec le bon compte Google (il doit disposer des bons droits d’accès)
- Sélectionnez la bonne propriété (votre site, incluant le sous-domaine et le protocole)
- Dans le menu, cliquez sur Sitemaps
- En haut de l’écran, indiquez l’URL du fichier sitemap puis cliquez sur le bouton “Envoyer”
Il sera alors immédiatement analysé par Google qui vous indiquera rapidement si le format du fichier est conforme ou pas.
Voici les explications en image :
Si vous utilisez un index de sitemaps, il suffit de le déclarer, inutile de déclarer chacun des sitemaps.
Compte-rendu des erreurs des sitemaps
Il n’y a plus directement de compte-rendu listant les erreurs de votre sitemap, comme avant dans Google Webmaster Tools ou dans la version précédente de Search Console.
Mais en fait vous avez encore plus de détails : il faut consulter le rapport “Couverture”. Celui-ci indique si Google a rencontré des problèmes avec le crawl ou l’indexation. L’astuce à comprendre est qu’il faut filtrer le rapport “Couverture” en sélectionnant le sitemap à analyser.
Il faudra ensuite attendre un peu (quelques heures à quelques jours) afin d’avoir des statistiques : Google indique combien il a trouvé d’URL dans votre fichier (c’est ce qui est bizarrement nommé “Date d’envoi”) et combien il a “décidé” d’en indexer (nommé “Dans l’index”).
Google n’indexe pas forcément toutes les URL présentes dans un fichier sitemap car :
Pour en savoir plus, lisez pourquoi toutes mes URL ne sont pas indexées par Google ?
Faut-il renvoyer son sitemap régulièrement ?
Non, en général ce n’est pas nécessaire, je suis sûr que vous trouverez d’autres choses à faire plus utiles pour votre référencement ! Google vient consulter votre sitemap régulièrement, sans qu’il soit nécessaire de l’uploader à nouveau. Consultez la page sommaire des sitemaps dans GSC et vous verrez la date de dernière consultation par Google pour chacun de vos sitemaps.
Evidemment, ceci ne fonctionne que si votre sitemap est dynamique (construction à la volée quand on le consulte) ou très souvent mis à jour (par un processus automatisé chez vous).
Pour obtenir encore plus d’aide
Vous avez plusieurs moyens :
Source de l’image d’entête : Shutterstock (sous license)