生成的 sitemap.xml 越来越大,打开要几十秒,提交后提示文件过大,里面很大一部分地址一直没被抓过,索引数量也上不去。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

# sitemapindex 只列子地图地址
<sitemapindex>
  <sitemap><loc>https://example.com/s1.xml</loc></sitemap>
</sitemapindex>

单个站点地图最多五万条地址,未压缩也不能超过五十兆,超了整份文件都会被判无效;正确做法是拆成多个子地图,再用索引文件把它们串起来。这一点先确认清楚,后面就不用反复试。

碰到「sitemap 索引上限」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,按内容类型或者月份切成多个子地图;写一个 sitemapindex 文件,把全部子地图地址都列进去;确认每个子文件的条数和体积都没有超标。

改完照着核一遍,索引文件能被正常读取,子地图逐个显示已发现地址数。

作者 9823189