Sitemap 里的 lastmod 與 changefreq 常被当成「让蜘蛛多来几次」的開關,但在實际抓取調度中,它們只是參考信号。信号一旦長期不可信,調度侧會降低對它的采信度,回訪节奏随之被拉長,新發布或刚更新的 URL 就更容易排在队尾。
一、lastmod 為什么會被「打折」
抓取調度需要判断這個 URL 是否值得現在来。它參考的维度通常包括:歷史抓取中内容是否真的發生變化、頁面响應是否稳定、站点整体的更新频率,以及 Sitemap 自身声明的可信度。当 Sitemap 中大量條目在每次生成时都被刷成目前時間,而頁面内容實际未變,這個字段的区分能力就没有了。
關键不是「有没有寫 lastmod」,而是「寫了之後能不能区分出真正變化的頁面」。
二、常见的失真来源
- 构建脚本每次發布都全量重寫 lastmod,全站時間戳统一刷新。
- 模板层直接注入目前時間,连頁脚版權年份變更也會触發更新。
- lastmod 使用本地时区且格式不统一,出現無法解析的值。
- 把 changefreq 全部设為 hourly 或 always,與實际更新频率不符。
- 已下架或長期無更新的頁面仍留在 Sitemap 中,持續參與回訪竞争。
- 分片索引中各子 Sitemap 的 lastmod 互相覆盖,指向不一致。
三、核對顺序
- 抽样 20 至 30 個 URL,把 Sitemap 的 lastmod 與頁面真實更新時間(正文、结构化資料、版本号)逐一對齐。
- 连續观察两次 Sitemap 生成结果,確認無變化頁面的 lastmod 是否保持稳定。
- 检查時間格式是否符合 W3C 日期時間規范,是否带时区偏移。
- 按目錄或内容類型分组,给更新频率不同的板块設定不同 changefreq,避免全站一刀切。
- 清理已失效、已合並、已 301 的條目,让 Sitemap 只保留有效入口。
- 把 lastmod 的生成逻辑挂到内容變更事件上,而不是挂在构建流程的固定步骤里。
四、與抓取预算的關系
抓取预算是有限的,站点体量越大越明顯。当 Sitemap 無法帮助調度区分「變了」和「没變」,蜘蛛只能依赖自身的歷史判断,回訪會更依赖内鏈点击與外部連結的引導。此时如果内鏈层級本身偏深,新頁面被發現的時間會進一步拉長。Sitemap 的價值在于把「哪些值得優先看」讲清楚,而不是把全部 URL 平铺出来。
五、修正後看什么
- 新發布 URL 從提交到首次被抓取的間隔是否缩短。
- 服務器日誌中,真正更新過的頁面回訪間隔是否明顯短于未更新頁面。
- 404、301 類 URL 是否已從 Sitemap 中消失。
- Sitemap 抓取本身是否成功,是否出現解析报错或体积超限。
這些信号只是观察窗口,並不代表一定會带来收錄或排名變化,但能让抓取調度拿到更准确的輸入,减少無效回訪,把有限的回訪次數留给真正在更新的入口。