网站收录

lastmod 写了却没反应:sitemap 时间戳与重新抓取的核对顺序

sitemap 里的 lastmod 常被当成催收录的开关,实际上它只是关于 URL 上次实质变更时间的声明。本文梳理它会影响什么、三类常见写法问题、什么算实质变更,以及更新时间戳后依然没重新抓取时该按什么顺序排查。

网站收录

lastmod 写了却没反应:sitemap 时间戳与重新抓取的核对顺序

不少人把 sitemap 里的 lastmod 当成一个“提醒搜索引擎来抓”的开关:改一下时间戳,就等着页面重新被收录。实际并不是这样。lastmod 只是对“这个 URL 上次实质变更时间”的一则声明,搜索引擎会参考它来安排抓取,但它既不是强信号,也不保证一定会产生抓取,更不会直接换来收录。

先分清 lastmod 会影响什么、不会影响什么

它可能影响的是:抓取调度时对“疑似已更新”URL 的优先级参考。在部分场景下,一个被信任的时间戳会让这个地址比同站其他长期未变的页面更早进入抓取队列。

它不会影响的是:

  • 不会让一个尚未被发现的 URL 被发现,那是 loc、内链和外链的事;
  • 不会让一个不符合索引条件的页面进入索引,robots、noindex、登录墙这些限制依然生效;
  • 不会缩短同一站点整体的抓取间隔,抓取预算不由单个字段决定。

三种常见的写法问题

每次生成都刷新时间戳

一些 CMS 生成的 sitemap,每次请求都会把 lastmod 写成当前时间。结果是所有 URL 的时间戳都是“刚刚”。搜索引擎很快会发现这个字段没有区分度,直接忽略。表面上你天天在“提醒”,实际上这个字段已经失效。

全站共用一个时间

首页改了一次,就把全站 lastmod 都改成今天。这和上一种情况本质相同:没有区分度,等于没写。真正变化的页面才应该改。

格式和时区不统一

lastmod 推荐使用 W3C Datetime 格式。可以只写日期,也可以写完整时间并带时区偏移。格式混用、写本地时间却不带时区、写出未来时间,都可能让解析结果不可靠。同一份 sitemap 里保持一致,比“看起来很精确”更重要。

什么算“实质变更”

通常可以算:

  • 正文内容有增删改,尤其是主体段落;
  • 标题、描述、主要结构化数据发生变化;
  • 价格、库存、状态等用户关心的关键字段更新。

通常不算:推荐位轮换、广告位变化、页脚年份自动更新、访问计数刷新。判断标准可以简单一点——如果这次改动值得用户在结果页看到不一样的版本,就算;如果只是模板层面的波动,就不算。

更新之后没反应,按这个顺序往下查

  1. 确认 sitemap 本身被有效抓取:日志里有没有对 sitemap 的请求,返回是不是 200,是否被 robots 挡住。
  2. 确认 sitemap 里的 loc 是规范 URL,并且与页面上的 canonical 指向一致。
  3. 确认页面本身能正常访问,返回 200,没有 noindex 或访问限制。
  4. 确认这次确实是实质变更,而不是只改了时间戳。
  5. 看该页面的历史抓取间隔:低优先级页面本来重抓就慢,不必按天期待。
  6. 检查是否存在另一个 URL 承担了规范角色,你更新的其实是重复页。

想让重要页面更早被看到,可以配合做什么

  • 在站内从权重更高、抓取更频繁的页面加真实链接;
  • 把重要内容放在独立的 sitemap 分片中,便于观察和定位;
  • 页面变化时,同步更新页面上可见的更新时间,让两者保持一致;
  • 如果搜索平台提供单个 URL 提交入口,可对重点页单独提交;
  • 持续看日志,确认抓取真的发生了,而不是只看时间戳。
lastmod 的正确用法是如实记录,不是频繁刷新。一个被信任的时间戳,胜过每天变化的假时间。

回到开头:收录是抓取、内容质量、规范信号和站点整体状态共同作用的结果,lastmod 只是其中很小的一项输入。把时间戳写对、写实、前后一致,剩下的交给稳定的内容更新和正常的站内结构,比反复调整一个字段更有效。