网站收录

站点地图里的 lastmod 填得随意:更新信号失真的核对顺序

站点地图里的 lastmod 常被程序统一写成当天时间,导致更新信号失真、抓取调度被打乱。本文说明 lastmod 应该表达什么,如何通过抽样比对、日期分布统计、定位写入代码等步骤逐条核对,并在修正后观察抓取变化,避免把无效的更新时间继续传给搜索引擎。

网站收录

站点地图里的 lastmod 填得随意:更新信号失真的核对顺序

站点地图里的 lastmod 字段,本意是告诉搜索引擎“这个 URL 的正文最后一次实质性变化发生在什么时候”。它不决定页面能否被收录,但会影响抓取调度:抓取资源有限时,一个看起来很久没变过的 URL 往往排在后面。问题在于,很多站点的 lastmod 是程序自动写入的时间戳——每次部署、每次生成缓存、每次模板微调都会刷新它,这个信号很快就失真了。

lastmod 失真后会看到什么

它不会让站点立刻出问题,通常会表现为几种慢性症状:

  • 全站 URL 的 lastmod 每天一起变化,搜索引擎无法从中区分哪些页面真的更新了;
  • 真正修改过的页面淹没在大量“伪更新”里,重新抓取要排更久的队;
  • 反过来,如果某个栏目的时间戳长期不动,抓取频次也可能随之下降;
  • 报告里“已抓取,尚未编入索引”的比例升高时,很难判断是内容问题还是调度问题。

先给 lastmod 一个明确的定义

在动手改之前,团队内部要先统一它代表什么,例如:

  • 只表示正文主体的变化,包括标题、正文内容、关键数据与图表的修订;
  • 不触发更新:模板改版、CDN 刷新、评论新增、广告位调整、文件重新部署;
  • 触发更新:正文增删、数据修订、错别字与事实纠错、正式发布时间调整。

如果页面同时展示“发布时间”和“更新时间”,要保证结构化数据、页面文字和站点地图三者一致,不要出现页面写着 2019 年、lastmod 却是今天的情况。

核对顺序

  1. 抽样比对。从站点地图里随机取 20 到 30 条 URL,把 lastmod 与页面上显示的更新时间、版本记录逐条对照,先看有没有明显不吻合的样本。
  2. 看整批分布。把全站 lastmod 按日期做一次统计。如果九成 URL 集中在最近两三天,基本可以判断这是程序统一写入的时间,而不是真实更新时间。
  3. 定位写入位置。找到生成 sitemap 的那段代码,确认时间字段取的是内容表的更新时间,还是文件系统修改时间、构建时间或运行时间。
  4. 按页面类型区分。文章、商品类页面适合细粒度的最后修改时间;分类页、标签页可以取“该分类下最新一篇内容的时间”,但不要用当前时间。
  5. 处理历史值。如果站点有版本记录或历史快照,可按内容实际修订时间回填;没有可靠依据时,宁可留空或写一个偏保守的时间,也不要继续写当天。
  6. 观察后续变化。修正后观察几周的抓取频次,以及“已发现—尚未抓取”的数量变化。这类信号需要时间才反映出来,不要频繁反复调整。

另外两个字段可以少花精力

changefreq 与 priority 早已被主流搜索引擎忽略,继续维护它们意义不大。真正值得投入的,是让 lastmod 接近事实,同时保证 URL 本身干净、可访问、返回正常状态码,并且站点地图里只放需要被抓取的地址。

lastmod 只是一个调度提示。它不能让质量不够的页面被收录,也不能替代内容本身的更新。把它写准,是为了让抓取资源更多地花在你真正改动过的页面上。

如果你在访问日志里看到某个搜索引擎反复抓取同一批入口页、却很少深入内页,除了检查内链与结构,也不妨回头看一眼站点地图里的时间戳是不是在频繁抖动。这种“看起来一直在更新”的假信号,往往是抓取集中在内层几个地址上的原因之一。