搜尋抓取

Sitemap 中 lastmod 失真與回訪节流:抓取频次判断的核對清單

Sitemap 里的 lastmod 與 changefreq 若長期失真,會削弱抓取調度對更新信号的采信度,回訪节奏被拉長。本文梳理常见的失真来源、逐項核對顺序,以及修正後應观察的日誌指标,帮助站点让 Sitemap 重新具备区分「變了」與「没變」的能力。

搜尋抓取

Sitemap 中 lastmod 失真與回訪节流:抓取频次判断的核對清單

Sitemap 里的 lastmod 與 changefreq 常被当成「让蜘蛛多来几次」的開關,但在實际抓取調度中,它們只是參考信号。信号一旦長期不可信,調度侧會降低對它的采信度,回訪节奏随之被拉長,新發布或刚更新的 URL 就更容易排在队尾。

一、lastmod 為什么會被「打折」

抓取調度需要判断這個 URL 是否值得現在来。它參考的维度通常包括:歷史抓取中内容是否真的發生變化、頁面响應是否稳定、站点整体的更新频率,以及 Sitemap 自身声明的可信度。当 Sitemap 中大量條目在每次生成时都被刷成目前時間,而頁面内容實际未變,這個字段的区分能力就没有了。

關键不是「有没有寫 lastmod」,而是「寫了之後能不能区分出真正變化的頁面」。

二、常见的失真来源

  • 构建脚本每次發布都全量重寫 lastmod,全站時間戳统一刷新。
  • 模板层直接注入目前時間,连頁脚版權年份變更也會触發更新。
  • lastmod 使用本地时区且格式不统一,出現無法解析的值。
  • 把 changefreq 全部设為 hourly 或 always,與實际更新频率不符。
  • 已下架或長期無更新的頁面仍留在 Sitemap 中,持續參與回訪竞争。
  • 分片索引中各子 Sitemap 的 lastmod 互相覆盖,指向不一致。

三、核對顺序

  1. 抽样 20 至 30 個 URL,把 Sitemap 的 lastmod 與頁面真實更新時間(正文、结构化資料、版本号)逐一對齐。
  2. 连續观察两次 Sitemap 生成结果,確認無變化頁面的 lastmod 是否保持稳定。
  3. 检查時間格式是否符合 W3C 日期時間規范,是否带时区偏移。
  4. 按目錄或内容類型分组,给更新频率不同的板块設定不同 changefreq,避免全站一刀切。
  5. 清理已失效、已合並、已 301 的條目,让 Sitemap 只保留有效入口。
  6. 把 lastmod 的生成逻辑挂到内容變更事件上,而不是挂在构建流程的固定步骤里。

四、與抓取预算的關系

抓取预算是有限的,站点体量越大越明顯。当 Sitemap 無法帮助調度区分「變了」和「没變」,蜘蛛只能依赖自身的歷史判断,回訪會更依赖内鏈点击與外部連結的引導。此时如果内鏈层級本身偏深,新頁面被發現的時間會進一步拉長。Sitemap 的價值在于把「哪些值得優先看」讲清楚,而不是把全部 URL 平铺出来。

五、修正後看什么

  • 新發布 URL 從提交到首次被抓取的間隔是否缩短。
  • 服務器日誌中,真正更新過的頁面回訪間隔是否明顯短于未更新頁面。
  • 404、301 類 URL 是否已從 Sitemap 中消失。
  • Sitemap 抓取本身是否成功,是否出現解析报错或体积超限。

這些信号只是观察窗口,並不代表一定會带来收錄或排名變化,但能让抓取調度拿到更准确的輸入,减少無效回訪,把有限的回訪次數留给真正在更新的入口。