Na sitemap principal, a data lastmod das sitemaps subjacentes está incorreta:
Por exemplo, veja https://meta.discourse.org/sitemap.xml
As datas para sitemap_2.xml a sitemap_5.xml são todas as mesmas ‘2024-03-14T14:02:32Z’ - que é exatamente ‘3 dias atrás’.
Estou preocupado que uma otimização aqui complique enormemente as coisas para um benefício muito pequeno.
Pense bem…
Digamos que existam 6 blocos de metadados. Se um tópico do último bloco for tocado… o bloco inteiro se torna inválido, você tem que remover o tópico de lá e colocá-lo no bloco da frente.
Otimizar aqui é um pouco inútil para um site que tem qualquer tipo de atividade e as datas dentro do bloco nos tópicos reais estão boas.
Não se trata de mover tópicos para diferentes sitemap-chunks. Os tópicos podem permanecer no mesmo sitemap-chunk onde já estão.
(O mapeamento tópico-para-sitemap-chunk é arbitrário de qualquer maneira, pois a instrução select do banco de dados com limit não tem order definido.)
O relatório de bug é sobre que a data lastmod de cada sitemap-chunk deve representar a data lastmod do tópico mais recente que o sitemap-chunk contém.
O caminho para o Google deve ser:
Carregar sitemap.xml
→ Verificar lastmod dos sitemap-chunks e enfileirar sitemap-chunks que precisam de atualização
(data lastmod é mais recente que a última vez que foi baixado)
Carregar sitemap-chunks enfileirados sitemap_[1-5].xml
→ Verificar lastmod dos URLs dos tópicos e enfileirar URLs dos tópicos que precisam de atualização
(data lastmod é mais recente que a última vez que foi baixado)
Carregar URLs dos tópicos enfileirados.
Se em sitemap.xml o lastmod dos sitemap-chunks estiver incorreto:
→ O Google não enfileira sitemap-chunks alterados (passo 1)
→ O Google não atualiza sitemap-chunks alterados em tempo hábil (passo 2)
→ O Google não atualiza tópicos alterados em tempo hábil (passo 3)
Portanto, a mesma lógica resulta em:
Se um tópico na seção do sitemap mudou hoje e a última modificação no chunk foi hoje… o chunk mudou hoje [nota: não há 3 dias atrás]. Um tópico nele mudou hoje.
Para o seu e o meu exemplo acima, a implementação atual diz:
sitemap-chunks sitemap_[2-5].xml mudou há 3 dias. Isso está errado. Deveria dizer ‘mudou hoje’.
Inclui apenas todos os tópicos alterados dos últimos 3 dias
É renovado a cada 1 hora (tempo de cache interno do Rails de 1 hora)
Tem a data lastmod correta em sitemap.xml
sitemap_[1-5].xml:
Realmente inclui todos e quaisquer tópicos, e também inclui todos os tópicos alterados dos últimos 3 dias
É renovado a cada 24 horas (tempo de cache interno do Rails de 24 horas)
sitemap_[2-5].xml têm a data lastmod incorreta de 3.days.ago em sitemap.xml
A data lastmod incorreta para sitemap_[2-5].xml não importa, pois o Google obterá todas as alterações recentes de tópicos através de sitemap_recent.xml em tempo hábil.