搜索抓取

Sitemap 的 lastmod 怎么写:别让更新时间误导 URL 发现

Sitemap 的 lastmod 常被当成催促搜索蜘蛛回访的信号,但写法不当会带来无效抓取。本文说明时间格式、哪些改动值得更新时间、批量更新为何消耗抓取配额,以及 lastmod 与内链、URL 发现入口如何配合,并给出一份核对顺序。

搜索抓取

Sitemap 的 lastmod 怎么写:别让更新时间误导 URL 发现

Sitemap 里的 lastmod 看起来只是一个小字段,但它经常被当成“告诉搜索蜘蛛这页变了”的信号。写法随意,轻则没有效果,重则让蜘蛛反复回访一批并没有变化的页面,占用本可以留给新 URL 的抓取配额。

lastmod 在 URL 发现里扮演什么角色

搜索蜘蛛读取 Sitemap 时,会拿到 URL 列表和一批元数据,lastmod 是其中之一。它帮助蜘蛛判断哪些地址可能值得优先安排回访,但它只是提示,不是命令。最终是否抓取、多久回访,还取决于站点整体权重、抓取配额、服务器响应速度、内链入口数量等因素。把 lastmod 当成“强制重抓按钮”会失望。

时间格式:先保证能被正确解析

  • 使用 W3C Datetime 格式,例如 2025-03-182025-03-18T09:30:00+08:00
  • 不要写“最近更新”“昨天”这类自然语言,也不要写不完整的时间。
  • 带时间时补上时区偏移,避免服务器时区与声明时区不一致造成误判。
  • 整份文件里不要所有 URL 共用同一个时间戳,这会让这个字段失去区分度。

哪些改动值得更新 lastmod

判断标准很简单:访客看到的内容是否发生了变化。

  • 正文有增删改,或关键数据如价格、库存、状态发生变动。
  • 结构化数据、标题、摘要等影响搜索呈现的部分被调整。
  • 页面模板改动确实改变了正文区域的呈现或可读内容。

以下情况通常不必更新:单纯重新部署、刷新 CDN、修改与正文无关的样式、调整广告位或统计代码。把每次构建都当成内容更新,会让 lastmod 逐渐失效。

批量更新带来的问题

不少站点在构建时自动把当前时间写入全站 URL 的 lastmod。结果是每次发布文章,几千个没有变化的页面都显示“刚刚更新”。蜘蛛发现大量“新变化”,可能增加回访,但这些页面没有新内容可抓,抓取配额被消耗,新页面反而排队更久。更稳妥的做法是用内容哈希、数据库更新时间或人工维护字段,只对真正变化的 URL 更新时间。

lastmod 不能替代内链和发现入口

Sitemap 是 URL 发现的一条通道,内链依然是主要路径。一个新 URL 即便在 Sitemap 里带着最新 lastmod,如果站内没有任何链接指向它,蜘蛛未必会很快走到。更常见的组合是:新页面进入栏目列表、相关推荐或上一级页面,同时更新 Sitemap。两条通道同时存在,发现效率更稳。

核对与维护顺序

  1. 检查 Sitemap 中 lastmod 的格式是否统一、可解析。
  2. 抽查若干 URL,对比页面实际修改时间与声明时间是否一致。
  3. 确认没有全站共用一个时间戳。
  4. 检查新 URL 是否有站内链接入口,而不是只躺在 Sitemap 里。
  5. 观察服务器日志中这些 URL 的回访情况,判断更新是否带来合理抓取,而不是无效重复。
lastmod 是内容变更记录,不是催促抓取的工具。真实、稳定、克制地写,比频繁刷新更有参考价值。

把 lastmod 纳入发布流程:内容编辑确认变更,程序按实际修改时间写入。这样既减少无效回访,也让 Sitemap 在 URL 发现中保持可信度。