搜索抓取

Sitemap 里的 lastmod 和 priority:蜘蛛会不会当真

Sitemap 中的 lastmod、changefreq、priority 常被当作指令来填,但搜索引擎更多把它们视为提示。本文说明这三个字段实际被重视的程度、lastmod 怎么写才算可信、全站批量刷新会带来什么代价,以及怎样把它和日常抓取节奏配合起来。

搜索抓取

Sitemap 里的 lastmod 和 priority:蜘蛛会不会当真

Sitemap 是站点和蜘蛛沟通的主要渠道之一,但里面三个可选字段——lastmod、changefreq、priority——经常被当成“填什么就是什么”。实际并不是这样。搜索引擎把它们当作提示,而不是指令,而且对待三者的态度差别很大。搞清楚这一点,能省下不少维护精力,也能避免因为随手填写而给自己添麻烦。

三个字段里,只有 lastmod 有比较明确的作用

目前主流搜索引擎对这三个字段的态度大致是:lastmod 在可信的前提下,会参与重新抓取的安排;changefreq 基本不进入决策;priority 也不进入决策,因为它描述的是站内相对重要程度,而搜索引擎更依赖自己的链接结构、点击和内容信号来判断优先级。

这些字段的价值不在于“你写了什么”,而在于“你写的和实际情况是否长期一致”。

lastmod 怎么写才算可信

  • 只在正文或主要内容真实发生变化时更新,而不是页脚年份、推荐位轮播、访问计数这类每次渲染都可能不同的部分。
  • 使用 W3C Datetime 格式,例如 2025-03-04T09:20:00+08:00,尽量带上时区,减少解析歧义。
  • 避免一次性把全站 URL 的 lastmod 刷成同一秒,那等于宣称所有页面在同一时刻都改了,通常会被忽略。
  • 页面没变就不要动它。长期稳定、经得起核对的 lastmod,参考价值反而更高。

changefreq 和 priority 基本可以忽略

这两个字段出现在早期爬虫规范里,如今多数引擎已公开说明不使用它们。把频率写成 daily,不会让蜘蛛每天来一次;把 priority 写成 0.9,也不会让页面排得更靠前。如果维护成本高,删掉没有影响;如果 CMS 自动生成,保留着但不必花时间去调。

全站批量刷新 lastmod 的代价

发版、换模板、批量改样式之后,有些运营会用脚本把所有页面的 lastmod 改成当天。短期看像是“通知了蜘蛛”,但接下来发生的事情通常是:蜘蛛按这个时间回来访问,发现内容没有变化;重复几次之后,这个字段的参考价值下降,而真正更新的页面反而可能被排在后面。更稳妥的做法是让 lastmod 直接来自内容表里的最后修改时间,模板调整不触发它。

把 lastmod 和抓取节奏配合起来

  1. 内容发布或实质性修改时,只更新对应 URL 的 lastmod。
  2. Sitemap 分片的 URL 分组保持稳定,例如按栏目拆分,避免频繁整体重建。
  3. 通过服务器日志或搜索后台的抓取统计,确认新内容在合理时间内确实被访问过。
  4. 如果长时间没有抓取,先检查内链是否可达、页面是否返回正常状态码,而不是反复改 Sitemap 字段。

需要提醒的是,Sitemap 字段本身不能替代站点质量。它只是把“这里有个 URL、它大概什么时候变过”这个信息递出去,蜘蛛是否前来、抓多少,还取决于内容更新频率、服务器响应、内链可达性和整体站点状况。把 lastmod 填准确,剩下的精力放在让页面真正有变化、能被正常访问和被链接指向,通常更划算。