搜索抓取

Sitemap 的 lastmod 怎么写:别让蜘蛛对更新时间产生怀疑

lastmod 是 Sitemap 里最容易被忽略、也最容易被写坏的字段。它不直接决定收录,却会影响蜘蛛是否愿意重新抓取一个 URL。本文从格式、时区、批量更新时间、分片管理和日志观察几个角度,说明怎样把 lastmod 写得一致可信,避免因为时间戳混乱而让蜘蛛降低对整份地图的信任。

搜索抓取

Sitemap 的 lastmod 怎么写:别让蜘蛛对更新时间产生怀疑

Sitemap 里的 lastmod 经常被当成一个可填可不填的字段。实际上,它是蜘蛛判断某个 URL 是否值得重新抓取的重要参考。写对了,蜘蛛更愿意按地图回来看看;写乱了,整份 Sitemap 的可信度都会受影响。

lastmod 对蜘蛛意味着什么

Sitemap 主要承担两件事:让蜘蛛发现 URL,以及告诉蜘蛛这些 URL 大概发生了什么变化。lastmod 就是后者的时间标记。它不是一个强制指令,蜘蛛不会因为 lastmod 更新就立刻抓取,但它会和页面内容、内链变化、历史抓取记录一起,影响重新抓取的优先级。

如果一份 Sitemap 里的 lastmod 长期不可信,蜘蛛可能会降低对这份地图的参考权重,转而更多依赖站内链接和外部入口来发现变化。

三种常见写法,会让 lastmod 失去意义

  • 全站 URL 使用同一个时间戳,通常是每次生成 Sitemap 的时间。
  • 写了一个未来时间,比如下个月或明年。
  • 正文没有任何修改,但 lastmod 每天甚至每次请求都在变。

这三种情况都在传递同一个信号:这个时间戳和页面真实变化没有关系。蜘蛛见过几次之后,就不会再把 lastmod 当作有效线索。

可用的 lastmod 格式

推荐使用 W3C 日期时间格式,并带上时区,例如:2025-03-01T08:30:00+08:00。只写日期也可以,比如 2025-03-01,但精确到时间更利于表达同一天内的多次调整。不要使用自然语言时间,也不要用时间戳数字。

时区不是可选项。如果服务器在海外,生成时间又是另一套时区,很容易出现“页面显示昨天更新,Sitemap 写明天”的混乱。

怎么让 lastmod 和内容更新保持一致

  • 只在实际修改正文、标题、主要模块或结构化数据时更新。
  • 页面可见的更新时间,尽量和 lastmod 保持一致。
  • 列表页、聚合页可以用其中最新一条内容的时间,但不要每次抓取都变。
  • 不要为了“提醒蜘蛛”而人为刷新 lastmod。

如果站点使用 CMS,最好让系统自动记录内容最后修改时间,而不是在生成 Sitemap 时统一写当前时间。手工维护时,可以按栏目分批检查,避免一次性改全站。

Sitemap 分片时,lastmod 要分清两层

站点变大后,Sitemap 通常会拆成索引文件和多个分片。索引文件里的 lastmod 表示分片文件本身的更新时间,分片内每个 URL 的 lastmod 才表示页面更新时间。两者不要混在一起写。

分片文件如果只是重新生成、内容没变,索引里的 lastmod 也可以不频繁改动。频繁变动会让蜘蛛反复回来检查,却看不到实际变化,反而浪费抓取机会。

和内链、日志配合看

Sitemap 不是唯一的发现路径。重要页面更新后,如果内链位置、导航或列表页没有同步变化,蜘蛛仍然可能按旧节奏访问。可以把 lastmod 变化、内链调整和服务器日志放在一起观察:哪些 URL 的 lastmod 更新后蜘蛛较快回访,哪些长期没有动静。

日志里如果出现大量“只抓 Sitemap、不抓页面”的记录,通常说明地图里的 URL 质量或时间信号需要检查。此时先别急着加大提交频率,先把 lastmod 写准,把可抓取的页面整理清楚。

lastmod 的作用不是催促蜘蛛,而是减少它的判断成本。时间戳越接近真实变化,蜘蛛越容易把抓取机会用在值得的 URL 上。

Sitemap 可以定期提交,但 lastmod 不必跟着提交动作一起刷新。把更新时间记录准确,让地图和页面实际状态对得上,比频繁修改时间戳更有用。