站点地图里每条记录的 lastmod 都是生成时的当前时间,提交之后蜘蛛来的次数比之前还少,新文章迟迟进不了索引。乍看像缓存或者权限的锅,追下去往往不是。

curl -s https://example.com/sitemap.xml | grep lastmod
# 抽查几条,确认不是全部同一天

追下去是这么回事:每次生成都把整份文件的时间刷成最新,引擎发现声明的时间和内容实际修改对不上,就降低对这个字段的信任,改按自己的节奏判断更新。

「sitemap lastmod」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

具体做法是,lastmod 取文章真实的最后修改时间,不要用当前时间;内容没有改动就不要更新这个字段,保持原值不动;生成地图时保留历史值,不要整份文件一起刷新。

验收就看一点,lastmod 分布在不同日期,新文章的抓取间隔明显缩短,索引也跟上了。

作者 9823189