搜索抓取

Sitemap 的 lastmod 怎么填:时间戳与 URL 重新发现的节奏

Sitemap 里的 lastmod 常被当成催抓取的开关,实际上它只是内容变更的参考信号。本文说明什么改动值得更新时间戳、日期格式与时区上的常见错误、索引文件里 lastmod 的含义,以及怎样结合服务器日志检查 Sitemap 中的地址是否真的被访问。

搜索抓取

Sitemap 的 lastmod 怎么填:时间戳与 URL 重新发现的节奏

Sitemap 是 URL 发现的重要入口,而 lastmod 是其中最常被讨论、也最容易被误用的字段。不少站长把它当作催抓取的开关:只要时间戳更新得够勤,搜索蜘蛛就会来得更频繁。实际运行中,情况要复杂一些。

lastmod 到底在说什么

lastmod 表达的是这个 URL 对应的内容上次发生实质性变化的时间,属于发现与调度环节的参考信息,而不是抓取指令,也不构成任何收录或排名承诺。搜索蜘蛛看到较新的 lastmod,可能会把该地址放进待抓取队列里相对靠前的位置,但最终是否抓取、什么时候抓取,还要看服务器响应是否稳定、站点整体抓取节奏、页面重要程度等因素。

什么时候该更新,什么时候不该动

  • 正文内容有增删改,或者价格、库存、联系方式这类关键信息发生变化,应当更新。
  • 只改了页头导航、页脚版权年份、广告位或推荐位,通常不值得更新。
  • 浏览量、点赞数、实时评论这类每次访问都可能变化的数据,不建议触发 lastmod 变化。
  • 页面上自动生成的“更新时间”文本,如果没有实际内容变化,不要同步写进 lastmod。

判断标准其实很简单:如果这次改动会让一个已经读过该页面的用户觉得内容不一样了,就更新;如果只是页面外壳变了,就保持原样。

格式与时区上的常见错误

lastmod 推荐使用 W3C 日期时间格式,并带上时区,例如 2024-06-01T09:30:00+08:00。只写日期也可以,但精确到秒更容易被正确比较。

  • 不要写未来的时间。服务器时钟漂移或脚本错误会产生“明天更新”的记录,容易被判断为不可信。
  • 不要在每次生成 Sitemap 时,把全站 URL 的时间统一刷成当前时间。
  • 不要把时区写乱,同一份 Sitemap 里混用不同时区会影响判断顺序。
  • 不要给所有地址填同一个时间,那样等于没有提供任何区分度。

索引文件里的 lastmod 是另一回事

在 Sitemap 索引文件中,lastmod 指的是该分片文件的更新时间,而不是分片内每个 URL 的更新时间。分片内容没变就不要改它,否则只是在制造无意义的变更信号。如果分片按内容类型或栏目拆分,各片更新频率差异明显,反而更容易判断该动哪一片。

被发现不等于被抓取

Sitemap 负责把地址摆到搜索蜘蛛面前,lastmod 只是提供了一个“可能值得再看一眼”的提示。真正影响抓取效率的还是站点本身:内链能不能到达目标页、服务器响应是否稳定、页面是否返回正常状态码、有没有大量低质量或重复地址占用队列。如果这些基础条件不佳,再勤快地更新时间戳,作用也有限。

几个可以立刻检查的点

  1. 抓取一份线上 Sitemap,看有没有未来时间和全站统一时间。
  2. 抽样几个 URL,确认 lastmod 与页面上实际内容的更新时间是否一致。
  3. 检查已删除、已重定向的地址是否还留在 Sitemap 里。
  4. 确认 Sitemap 索引文件中的 lastmod 对应的是分片文件本身。
  5. 翻看服务器日志,看 Sitemap 中的地址是否真被访问过,尤其是那些长期不变的栏目。
lastmod 的价值不在于写得多新,而在于写得准。一份时间戳可信的 Sitemap,比一份天天刷新的 Sitemap 更有参考价值。