Dans le sitemap principal, la date lastmod des sitemaps sous-jacents est incorrecte :
Par exemple, voir https://meta.discourse.org/sitemap.xml
Les dates pour sitemap_2.xml à sitemap_5.xml sont toutes les mêmes : ‘2024-03-14T14:02:32Z’ - ce qui correspond exactement à ‘il y a 3 jours’.
Je crains qu’une optimisation ici ne complique énormément les choses pour très peu de bénéfices.
Réfléchissez bien…
Disons qu’il y a 6 blocs sur meta. Si un sujet du dernier bloc est abordé… le bloc entier devient invalide, vous devez retirer le sujet de là et le placer dans le bloc avant.
Optimiser ici est un peu inutile pour un site qui connaît une quelconque activité et les dates à l’intérieur du bloc sur les sujets réels sont correctes.
Il ne s’agit pas de déplacer des sujets dans différents fragments de sitemap. Les sujets peuvent rester dans le même fragment de sitemap où ils se trouvent déjà.
(Le mappage sujet-fragment de sitemap est de toute façon arbitraire car l’instruction select de la base de données avec limit n’a pas d’order défini.)
Le rapport de bug concerne le fait que la date lastmod de chaque fragment de sitemap doit représenter la date lastmod du sujet le plus récent que le fragment de sitemap contient.
La manière pour Google devrait être :
Charger sitemap.xml
→ Vérifier lastmod des fragments de sitemap et mettre en file d’attente les fragments de sitemap qui nécessitent une mise à jour
(date lastmod plus récente que la dernière fois téléchargée)
Charger les fragments de sitemap mis en file d’attente sitemap_[1-5].xml
→ Vérifier lastmod des URLs de sujets et mettre en file d’attente les URLs de sujets qui nécessitent une mise à jour
(date lastmod plus récente que la dernière fois téléchargée)
Charger les URLs de sujets mis en file d’attente.
Si dans sitemap.xml le lastmod des fragments de sitemap est incorrect :
→ Google ne met pas en file d’attente les fragments de sitemap modifiés (étape 1)
→ Google ne met pas à jour les fragments de sitemap modifiés en temps opportun (étape 2)
→ Google ne met pas à jour les sujets modifiés en temps opportun (étape 3)
Sujet le plus récent : https://meta.discourse.org/t/launcher-rebuild-app-error-bootstrap-failed-with-exit-code-125/299538
lastmod : 2024-03-19T09:17:46Z
Sujet le plus récent : https://meta.discourse.org/t/configure-direct-delivery-incoming-email-for-self-hosted-sites/49487
lastmod : 2024-03-18T18:16:26Z
Encore une fois, ce n’est pas strictement vrai… last_mod est censé être la dernière date de modification du sitemap, pas la date maximale des sujets.
Si un sujet a été retiré de la section du sitemap aujourd’hui et que la dernière modification dans le bloc remonte à une semaine… le bloc a changé aujourd’hui. Un sujet en a été retiré aujourd’hui.
Donc, la même logique aboutit à :
Si un sujet dans la section sitemap a changé aujourd’hui et que la dernière modification dans le bloc remonte à aujourd’hui… le bloc a changé aujourd’hui [note : pas il y a 3 jours]. Un sujet a changé aujourd’hui.
Pour votre exemple et le mien ci-dessus, l’implémentation actuelle dit :
Les blocs sitemap sitemap_[2-5].xml ont changé il y a 3 jours. C’est faux. Il devrait être indiqué ‘changé aujourd’hui’.
Inclut uniquement tous les sujets modifiés au cours des 3 derniers jours
Est renouvelé toutes les 1 heure (temps de cache interne de Rails de 1 heure)
A la bonne date lastmod dans sitemap.xml
sitemap_[1-5].xml :
Inclut réellement tous les sujets, ainsi que tous les sujets modifiés au cours des 3 derniers jours
Est renouvelé toutes les 24 heures (temps de cache interne de Rails de 24 heures)
sitemap_[2-5].xml ont une date lastmod incorrecte de 3.days.ago dans sitemap.xml
La date lastmod incorrecte pour sitemap_[2-5].xml n’a pas d’importance, car Google obtiendra toutes les modifications récentes de sujets via sitemap_recent.xml en temps voulu.