搜索抓取

Sitemap 的 lastmod 写不准,蜘蛛还会按它来抓吗

Sitemap 里的 lastmod 是站点向蜘蛛声明内容更新时间的一个信号,用得好能让重新抓取更及时,用不好则会被逐步忽略。本文讲清它的作用机制、常见的几种写坏方式、信任被消耗后抓取节奏会有什么变化,以及几条可以直接落地的写法建议。

搜索抓取

Sitemap 的 lastmod 写不准,蜘蛛还会按它来抓吗

lastmod 在抓取调度里扮演什么角色

Sitemap 里的 lastmod 不是给用户看的字段,它主要服务于蜘蛛的抓取调度。蜘蛛已经知道这个 URL 存在,但它不确定内容有没有变化。lastmod 相当于站点给出的一个声明:这个页面在某天某时更新过。当这个声明稳定可信时,蜘蛛会更愿意按它来安排重新抓取的时间——新近更新的页面排在前面,长期没动的页面靠后。

这里有个前提:可信。蜘蛛并不盲目采信这个字段,它会拿实际抓取结果去核对。如果声明与内容不符,字段的参考价值会被逐步调低,直到被直接忽略。

几种把 lastmod 写坏的方式

全站统一时间戳

每次生成 sitemap 时,把所有 URL 的 lastmod 都刷成当前时间。这在技术上最省事,但等于告诉蜘蛛“全站每一秒都在变”。当蜘蛛按这个时间去抓,却发现页面内容和上次一模一样,这个字段就失去了参考意义。

只改格式不改逻辑

格式要符合 W3C 日期规范,比如写成 2025-03-18,或者带上时区的完整写法。格式错误会让整个字段解析失败,等于压根没写。

内容改动与字段脱节

编辑改了正文,但 sitemap 是静态文件没重新生成;或者反过来,后台每次保存草稿都刷新时间。两种偏差都会让 lastmod 与实际情况对不上。

信任被消耗之后,抓取路径会怎么变

这不是立刻生效的惩罚,更像是逐渐失去一条快捷通道。表现通常有几层:

  • 蜘蛛对 sitemap 的抓取频率下降,访问间隔被拉长;
  • 调度重新回到依赖内链和外部链接,发现与重抓的节奏变慢;
  • 新发布的内容要等更久才被重新访问,因为少了一个明确的“更新信号”。

换个角度说,站点运营少了一个低成本的沟通渠道。蜘蛛还是会继续抓取站点,只是更依赖它自己摸索出来的路径。

写好 lastmod 的几条实操建议

  1. 只在内容实质变化时更新。改标题、改正文、改主要结构化数据算变化;只调整一个模块的位置不算。
  2. 时间精确到天通常就够。多数站点不需要精确到秒,过度精确反而容易暴露是程序批量生成的。
  3. 子地图各自维护。把 sitemap 拆成多份时,每份文件的 lastmod 按各自内部的最大时间取,不要全站一把刷。
  4. URL 消失时从 sitemap 移除。返回 404 或已经合并的 URL 留在里面,会持续消耗这条通道的可信度。
  5. 时间不要写到未来。服务器时区配置错误常造成这种结果,蜘蛛核对时会直接判为异常。

changefreq 和 priority 基本不必再花心思

这两个字段在主流搜索引擎的抓取调度中早已不参与计算,填了也不会被采纳。与其花时间给页面定优先级,不如把 lastmod 的准确性做扎实。真正的优先级,蜘蛛是综合内链位置、外链、访问情况等信号自己判断的。

怎么验证字段有没有被采信

一个比较直接的观察方法是看服务器日志里蜘蛛访问 sitemap 的规律:如果它大致按你声明的更新节奏来访,说明这条通道还在正常工作;如果每次都是固定间隔来一趟、不再参考 lastmod,说明这个字段的权重已经被降低了。同时也可以对照被重新抓取的 URL 分布,看新更新的内容是否比其他页面更快被再次访问。

把 lastmod 当成一份对蜘蛛的承诺:写下的时间,站点就应当能对应到一次真实的内容变化。

它不复杂,也不需要额外工具,只是需要后端或 CMS 在更新时认真回写一次时间戳。相比反复调整内链和外链,这件事的投入产出比往往被低估。