lastmod 只是提示,不是重新抓取的开关
Sitemap 里的 lastmod 是告诉搜索蜘蛛“这个 URL 上次有实质变化的时间”。它不会直接触发抓取,也不会让 URL 立刻出现在搜索结果里。搜索蜘蛛是否重新访问,还要看站点整体质量、链接变化、服务器响应和抓取队列的调度。把 lastmod 写准,作用是在蜘蛛下次评估更新时,有一个相对可信的参考点。
常见误用:时间戳刷得太随意
三种做法会削弱 lastmod 的参考价值:
- 每次生成 sitemap 就把全站 lastmod 改成当前时间。蜘蛛对比几次抓取记录后,会发现这个值没有区分度,慢慢就不再参考。
- 写未来时间。时间戳比服务器当前时间还晚,容易被认为是数据异常。
- 模板微调也更新 lastmod。页脚版权、广告位、推荐模块的变化,和正文内容无关,却让 lastmod 频繁跳动。
lastmod 的价值在于“少而准”,不是“新而密”。全站统一刷新,等于没有提供任何信息。
哪些页面值得维护 lastmod
不是所有 URL 都需要精细的 lastmod。可以按类型区分:
- 内容页:正文、价格、库存、规格有实际改动时更新。只改了页面标题或摘要,如果对用户可见,也可以更新。
- 新发布 URL:第一次进 sitemap 时带上准确的发布或首次上线时间,方便发现。
- 列表页和聚合页:当新增了重要条目、调整了排序逻辑时可以更新;如果只是分页参数变化,不必每次刷新。
- 纯工具页、登录页:长期不变的页面,可以保留原始创建时间,不必反复改。
与其它抓取信号配合
lastmod 单独使用效果有限,通常和内链、抓取日志、HTTP 缓存一起看:
- 内链入口:更新的页面如果有站内链接指向,蜘蛛在抓取邻近页面时更容易顺带发现变化。只改 sitemap 不补内链,更新信号会弱一些。
- HTTP 缓存头:如果服务器返回很长的 max-age,蜘蛛在缓存过期前可能不会重新请求,lastmod 也就很难被读到。
- 304 条件请求:当蜘蛛带 If-Modified-Since 来访时,如果内容确实没变,返回 304 是合理的;如果内容变了却仍返回 304,会造成更新被忽略。
- 日志核对:在抓取日志里搜索带 lastmod 的 URL,观察更新标记之后是否有新的抓取请求,能判断这个信号是否真的被参考。
核对顺序
如果怀疑 lastmod 没有起作用,可以按下面的顺序排查:
- 确认 sitemap 文件本身是最新的,没有被 CDN 或服务器缓存旧版本。
- 检查 lastmod 的格式是否符合要求,通常用 W3C 日期时间格式,带时区更稳妥。
- 看被抓取的 URL 是否在 sitemap 中持续存在,而不是时有时无。
- 对照服务器日志,看蜘蛛上次抓取时间和 lastmod 的先后关系。
- 如果内容确实更新但长期没有重新抓取,优先检查内链和入口页是否也同步更新,而不是反复改 lastmod。
最后提醒一句:lastmod 是站点给蜘蛛的一个参考,不是抓取开关。保持更新记录真实、稳定,比频繁刷时间戳更有意义。