Rédiger sitemap.xml à la main pour chaque nouvelle page est le genre de corvée qu'il vaut mieux automatiser en générant le fichier à partir d'une simple liste d'URL du site.
Quels champs comptent vraiment
La balise <loc> avec l'adresse absolue de la page est le seul champ obligatoire. <lastmod> mérite d'être renseigné avec précision, car Google s'en sert réellement pour prioriser une nouvelle exploration — contrairement à <priority> et <changefreq>, que le moteur affirme lui-même largement ignorer.
fr-FR et fr-CA : une langue, deux publics
Le français du Québec diffère du français de France sur du vocabulaire courant (« courriel » plutôt qu'« email », « fin de semaine » plutôt que « weekend »), ce qui justifie de déclarer hreflang="fr-FR" et hreflang="fr-CA" séparément et de relier les deux versions par des balises xhtml:link rel="alternate" dans le sitemap.
Deux encodages à ne pas confondre
Un accent comme le é dans « article » est un caractère UTF-8 parfaitement valide en XML et n'a pas besoin d'être échappé ; ce qui doit l'être, ce sont les caractères réservés à XML comme l'esperluette, écrite &. Confondre les deux — encoder un accent qui n'en a pas besoin, ou oublier d'échapper une esperluette — est une source fréquente de sitemap invalide.
À quoi ça sert
- Construire un sitemap.xml correct à partir d'une liste d'URL sans écrire de XML à la main.
- Éviter les erreurs de formatage qui font rejeter le fichier entier par le moteur de recherche.
- Régénérer le fichier après l'ajout de nouvelles pages sans retoucher le balisage à la main.
URL absolues et compatibilité entre moteurs
Chaque adresse du sitemap doit être absolue (protocole et domaine inclus), sinon le fichier n'a plus de sens pour un robot — c'est cette même exigence, commune au protocole sitemaps.org depuis son adoption conjointe par Google, Yahoo et Microsoft fin 2006, qui garantit qu'un seul fichier fonctionne identiquement pour tous les moteurs qui le lisent.