搜索抓取

Sitemap 里的 lastmod 与优先级:哪些字段真的影响蜘蛛重抓

Sitemap 常被当成提交 URL 的清单,但蜘蛛对其中字段的采纳程度并不一致。lastmod 相对有用,前提是准确;priority 和 changefreq 基本可忽略。本文说明如何维护 Sitemap 字段、避免常见误用,并把它放回辅助发现通道的位置。

搜索抓取

Sitemap 里的 lastmod 与优先级:哪些字段真的影响蜘蛛重抓

Sitemap 是站点向搜索引擎提交 URL 的常用方式,但它更像一份“参考清单”,而不是抓取指令。蜘蛛会读,也会从中挑 URL 进入队列,但不会因为某个字段写了什么就改变抓取规则。很多站点把精力花在 priority 和 changefreq 上,结果收效甚微,反而忽略了 lastmod 这种更实际的字段。

lastmod 是 Sitemap 里最值得认真对待的字段

lastmod 表示页面内容的最后修改时间。对蜘蛛来说,它是一个判断“是否需要重新抓取”的辅助信号。如果这个时间准确,并且和页面实际更新时间一致,蜘蛛在调度重抓时会更有依据。尤其是更新频繁的列表页、文章页,准确的 lastmod 能帮助蜘蛛把抓取预算花在真正变化过的 URL 上。

问题在于,很多站点的 lastmod 是自动生成的:只要页面被构建一次,时间就变一次。蜘蛛对比几次抓取记录后,发现这个时间一直在变但正文没变,就会降低对这个字段的信任。更糟的是,当所有 URL 的 lastmod 都是同一时刻,这个字段基本等于没有。

比较稳妥的做法是:只有正文、标题、结构化数据等实质内容变化时才更新 lastmod;模板调整、广告位变化、推荐位轮换不要触发更新。时间格式用 W3C Datetime,带上时区,避免蜘蛛解析歧义。

priority 和 changefreq 的现实情况

这两个字段曾经被寄予厚望,但现在主流搜索引擎基本不把它们作为抓取调度的依据。priority 是一个相对值,不是绝对权重,蜘蛛不会因为写 1.0 就优先抓取。changefreq 只是站点对更新频率的自我描述,蜘蛛更相信自己实际观察到的更新规律。

所以,与其花时间给每个页面分配 priority,不如检查这些 URL 是否都能通过内链到达、是否返回 200、是否被 robots.txt 误拦。把这些基础问题处理好,比调整字段数值更有意义。

把 Sitemap 当成“提交更多 URL 就能抓更多”的工具,往往会导致低价值 URL 堆积,反而分散抓取注意力。

维护 Sitemap 的几个实用原则

  • 只放可索引的规范 URL:返回 200 状态、没有 noindex、不是重定向链中的中间地址。参数页、排序筛选页、重复内容页不要放进去。
  • 与内链保持一致:Sitemap 里的 URL 最好都能从站内链接到达。如果某个 URL 只出现在 Sitemap 里,蜘蛛抓取后可能因为缺少内链支持而降低后续抓取频率。
  • 分片与索引文件:大站按内容类型或目录分片,每个文件不超过 5 万个 URL 且未压缩不超过 50MB,用索引文件统一提交。
  • 定期核对抓取日志:看蜘蛛是否抓取了 Sitemap、抓取后是否访问了其中的 URL。如果 Sitemap 被抓取但里面的 URL 很少被访问,就要检查 URL 本身的质量或站点结构。

常见误区

第一个误区是认为提交 Sitemap 就会收录。Sitemap 只解决“发现”问题,不解决“是否值得索引”的问题。页面质量、内容重复度、站点整体信任度都会影响最终结果。

第二个误区是把所有 URL 都塞进 Sitemap,包括分页、筛选、会话 ID、追踪参数。这样做会让蜘蛛在大量低价值 URL 上消耗抓取配额,真正重要的页面反而被挤到后面。

第三个误区是伪造 lastmod。为了让蜘蛛多来,把 lastmod 改成当前时间,短期内可能增加抓取,但一旦蜘蛛发现内容没变,这个字段就会失效,甚至影响整站 Sitemap 的可信度。

把 Sitemap 放回辅助位置

Sitemap 是 URL 发现的一条通道,但不是唯一通道,也不是最重要的通道。清晰的导航、合理的分类、正文中的内链,仍然是蜘蛛发现和理解 URL 的主要方式。Sitemap 更适合用来补充那些内链不容易覆盖到的页面,或者帮助蜘蛛更快发现新发布的内容。

如果站点结构本身混乱,内链断裂,只靠 Sitemap 提交大量 URL,抓取效果通常不会理想。反过来,结构清晰、内链完整、lastmod 准确的站点,即使 Sitemap 简单,蜘蛛也能按自己的节奏稳定抓取。