changefreq 和 priority 还有用吗

工具相关 ·

在 sitemap 的字段里,changefreq 和 priority 是最容易被过度投入的两个。很多人会花时间研究「文章页该填 weekly 还是 monthly」「priority 填 0.8 还是 0.9 更好」,但这两个字段在今天的主流搜索引擎里基本已经不参与排名和抓取决策。了解它们的现状,能帮你把精力放在真正有影响的地方。

两个字段的本意

先看它们原本要解决的问题。

changefreq 表示页面的更新频率,可选值有 always、hourly、daily、weekly、monthly、yearly、never 七个。设计意图是告诉爬虫「这个页面多久变一次」,让爬虫按这个节奏来抓。

priority 表示页面在本站内的相对重要程度,取值 0.0 到 1.0。设计意图是让站长标注哪些页面更重要,爬虫可以优先抓取和更新这些页面。

两者的共同思路都是「让站长提供抓取调度的线索」。这个思路在搜索引擎抓取能力有限的年代是有价值的,但后来情况变了。

为什么被忽略

第一个原因是站长的标注普遍不准确。

实践中,绝大多数站点的 changefreq 和 priority 是模板里写死的——所有文章页统一填 weekly,所有栏目页统一填 0.8。这种「批量标注」不携带任何区分信息,对爬虫没有参考价值。

第二个原因是搜索引擎有更好的数据来源。

判断一个页面是否需要重新抓取,搜索引擎可以看:页面的实际更新历史(它自己记录的)、页面在搜索结果里的点击和展现数据、页面的外部链接变化、以及站点整体的更新节奏。这些信号比站长手填的字段更可靠,因为它不依赖站长的主观判断。

所以主流搜索引擎逐渐把这两个字段降级为「参考信息」甚至完全忽略。Google 明确表示不使用 priority,也不使用 changefreq。Bing 的态度类似。

那还要不要填

既然被忽略,为什么工具里还提供这两个字段?有两个现实原因。

一是格式规范性。sitemap 的 schema 里定义了这些字段,一些站点审计工具、SEO 分析平台会读取它们做统计报告。如果字段缺失,这些工具可能会提示「不完整」。

二是兼容性。部分较小的搜索引擎、站内检索系统、或者企业内部的爬虫仍可能使用这些字段。填上不会有坏处。

所以务实的态度是:填,但不必纠结数值。按实际情况大致填一下即可——首页 daily,栏目页 weekly,内容页 monthly,关于我们这类页面 yearly。priority 按目录层级递减,根目录高、深层页低。

重要的是格式必须合法。changefreq 只能取那七个固定值之一,写错会导致整条记录被解析器拒绝或者忽略。priority 必须是 0.0 到 1.0 之间的小数,写 80 或 high 都是无效的。

真正有影响的是 lastmod

如果要在 sitemap 字段里选一个值得投入的,答案是 lastmod。

它之所以重要,是因为它提供的信息是可验证的。搜索引擎抓取页面后,可以比较内容和上次是否一致,从而判断站长的 lastmod 是否可信。如果可信,这个字段就能真正帮助优化抓取调度。

所以正确做法是让 lastmod 反映真实的修改时间,而不是每次生成 sitemap 都填当天。这一点前面已经详细讨论过。

一个更简洁的选择

对于中小型站点,一个省事且规范的配置是:只输出 loc 和 lastmod。

loc 是必需的,没有它 sitemap 无法工作。lastmod 提供有价值的更新信号。省略两个已被忽略的字段,文件更短、生成更快、也不需要维护那些模板里写死的数值。

如果站点规模较大、或者有审计工具要求字段完整,那就把两个字段填上,但用模板统一给个合理值就够了,不需要逐页定制。

检查清单

  • changefreq 与 priority 的设计意图是提供抓取调度线索
  • 主流搜索引擎已基本忽略这两个字段,Google 明确不使用
  • 被忽略的原因包括站长批量标注不准确、搜索引擎有更好的判断依据
  • 保留它们主要是为了格式规范性与部分工具的兼容性
  • 填的时候按实际情况给个大致值即可,但格式必须合法
  • 真正值得投入的是 lastmod,因为它提供的信息可被搜索引擎验证
阅读 9