搜尋抓取

Sitemap 時間戳的可信度:lastmod 與 changefreq 對回訪节奏的影响

Sitemap 里的 lastmod 和 changefreq 常被当作抓取指令,但蜘蛛對它們的態度並不一致。本文梳理這两個字段的實际作用、可信度来源,以及如何與 HTTP 头、内鏈更新配合,让時間戳真正服務于抓取調度,而不是變成一種自我安慰。

搜尋抓取

Sitemap 時間戳的可信度:lastmod 與 changefreq 對回訪节奏的影响

Sitemap 通常被当成一份 URL 清單来處理,但它其實還携带了另一類信息:時間戳。lastmod 和 changefreq 就是其中最常见的两個字段。很多站長把它們当作向蜘蛛發出的“抓取指令”,寫完就等着回訪加快。實际情况要复杂一些。

lastmod 是什么,蜘蛛怎么讀它

lastmod 表示這個 URL 最後被修改的時間。蜘蛛拿到 Sitemap 後,不會立刻按時間戳逐條抓取,但它會把這些信息放進自己的調度參考里。一個長期没有變化的頁面,和一個刚刚标记為更新的頁面,在回訪優先級上通常會有差別。

關键在于,這個差別建立在一個前提上:蜘蛛認為你的 lastmod 是可信的。如果整份 Sitemap 里每個 URL 的 lastmod 都是抓取当天的時間,或者每次生成都自動刷新,這個字段就失去了区分度。蜘蛛不會因此提高回訪频率,反而可能逐渐降低對它的參考權重。

changefreq 和 priority 的現状

changefreq 用来描述頁面大概多久變化一次,priority 用来表示頁面在站内的相對重要程度。這两個字段在早期的 Sitemap 协议里被提出,但主流搜尋引擎後来都公開表示過:它們對這两個值的依赖很有限,因為站点自己填寫的频率和權重很难客观。

這並不意味着寫了没有意义,而是不要指望靠把 changefreq 设成 hourly、priority 设成 1.0 来換取更频繁的抓取。蜘蛛對頁面的判断,更多来自它自己观察到的更新歷史、内鏈位置和外部信号。

時間戳的可信度從哪里来

一個可用的 lastmod,至少要满足两点:准确和稳定。准确是指它确實對應頁面的實质更新,而不是模板改動、广告位轮換或時間戳自動刷新;稳定是指同一個頁面在没有内容變化时,這個值不應该變来變去。

如果是程序自動生成 Sitemap,建议把 lastmod 绑定到内容本身的修改時間,比如文章表的更新時間字段,而不是 Sitemap 的生成時間。對于列表頁和聚合頁,如果每次刷新排序都會變化,可以考虑不寫 lastmod,或者只在大范围調整时更新。

把 lastmod 寫成生成時間,等于告诉蜘蛛“全站刚刚更新過”。這種信号用一次两次也许有效,長期使用只會让這個字段變得没有參考價值。

和 HTTP 头、内鏈更新怎么配合

Sitemap 里的 lastmod 不是孤立的信息。蜘蛛在真正抓取頁面时,還會看 HTTP 响應头里的 Last-Modified 和 ETag(如果服務器提供了)。如果 Sitemap 说昨天更新,响應头却说三個月没變,蜘蛛自然會更相信服務器返回的實时信息。

所以更稳妥的做法是:让 Sitemap 的 lastmod、HTTP 的 Last-Modified、頁面上顯示的更新時間尽量保持一致。三者對得上,時間戳才更容易被当作有效參考。

另外,頁面更新之後,別忘了從内鏈上给它一点推動。比如在栏目頁、相關推荐或首頁列表里把它放到更靠前的位置。蜘蛛很多时候是通過内鏈發現“這個頁面最近動過”的,而不是靠 Sitemap 的時間戳。

可以落地的几個做法

  • lastmod 只寫内容實质變化的時間,不用生成時間;
  • 没有變化的頁面,不要為了“看起来新”而手動改時間戳;
  • changefreq 可以按實际更新規律填寫,但不必逐頁纠结;
  • priority 對抓取的影响很小,重点放在内鏈结构和頁面本身;
  • 定期检查 Sitemap 中是否有大量重复時間戳或明顯错誤的時間;
  • 结合服務器日誌观察蜘蛛對标记更新頁面的實际回訪情况,再决定是否調整。

Sitemap 的時間戳不是加速收錄的開關。它更像一份备注,帮助蜘蛛判断哪些頁面值得優先看一眼。寫准、寫稳,配合内鏈和服務器响應头的一致性,比反复調整 changefreq 和 priority 更實际。