搜尋抓取

Sitemap 里的 lastmod 怎么填:更新标记與重抓判断的關系

Sitemap 里的 lastmod 常被随手填成全站统一時間,導致更新信号失真。本文說明 lastmod 是给谁看的、常见填法會带来什么問题、如何按内容實质變更来判断,以及怎样與响應头里的 Last-Modified、ETag 保持一致,並给出一份可以落地的检查流程。

搜尋抓取

Sitemap 里的 lastmod 怎么填:更新标记與重抓判断的關系

Sitemap 里的 lastmod 是很多人随手填、又很少有人回头检查的字段。它不像 robots.txt 那样一错就被發現,也不像 404 那样立刻有报错提示,填错了通常什么都不會發生——只是蜘蛛對“這個頁面值不值得再来”的判断慢慢偏离實际。下面说清楚 lastmod 是给谁看的、怎么填相對可靠,以及哪些情况下不必在它上面花太多精力。

lastmod 到底给谁看

lastmod 是给抓取調度用的參考值,不是给用戶看的發布時間。蜘蛛在决定要不要重抓某個 URL 时,會综合站点歷史抓取表現、頁面本身的更新节奏,以及其他更新信号,比如响應头里的 Last-Modified、ETag,以及带條件請求时是否返回 304。lastmod 只是其中一個輸入項,但它有個特点:這是站点自己声明的。

也就是说,lastmod 不保證重抓,填了新時間也不保證第二天就来。它的作用是让調度在做取舍时多一個依據,而不是一個開關。一旦它和實际内容長期對不上,參考價值就會打折。

常见的几種填法及其問题

全站统一時間

每次生成 Sitemap 都把全站 lastmod 刷成目前時間,是最常见也最容易被忽略的做法。表面上“看起来在更新”,實际上等于告诉調度所有頁面都在同一秒變了。這類信号無法区分重点,長期下来容易被当成噪声。

只在發布时寫一次

頁面初次發布时寫上一個時間,之後改了正文也不動它,會让真正有實质更新的頁面被低估。尤其是價格、库存、政策條款這類改動幅度不大、但影响用戶判断的内容。

用模板渲染時間

有些站点直接輸出模板里的“最後修改時間”變量,结果列表頁、聚合頁每次訪問時間都在變。這類頁面本身没有需要索引的獨立内容,lastmod 抖動只會放大重复抓取。

相對可靠的填法:跟着内容走

比較稳妥的原則是:lastmod 只在頁面正文出現用戶可感知的變化时才更新。可以按這几類来判断:

  • 正文、标题、主要段落有增删改,属于應更新。
  • 结构化資料里的關键字段變化,比如價格、评分、库存狀態、营业時間,属于應更新。
  • 主体配图、视频更換,通常不值得單獨更新 lastmod,除非頁面信息依赖它。
  • 底部广告位轮換、推荐位調整、訪問計數器,不属于内容更新。
  • 模板改版導致全站 HTML 變化,但正文未動,不必逐個刷新 lastmod。

如果站点内容量大,可以把判断收敛成一條規則:寫入内容库时记錄一次“内容版本時間”,Sitemap 直接讀這個字段。這样 lastmod 天然跟着内容走,不需要人工维護。

HTTP 层也有更新信号,两邊要一致

除了 Sitemap,蜘蛛還會看响應头。服務端给出的 Last-ModifiedETag 如果和 Sitemap 里的 lastmod 明顯矛盾,調度端往往更依赖實际响應,毕竟那是它亲自驗證過的。

常见的不一致:Sitemap 寫着上周更新,响應头里的 Last-Modified 却是三個月前,並且带 If-Modified-Since 回来时仍然返回 200 和完整正文。這種情况下,重复下载的成本會落在站点自己身上。

所以條件允许的话,让内容库的版本時間同时驱動 Sitemap 的 lastmod 和响應头的 Last-Modified,並确保支持 304。蜘蛛带條件請求回来时返回 304,比返回 200 更省服務器,也更快。

一個可以落地的维護流程

  1. 確認 Sitemap 里的 lastmod 来源字段,是内容版本時間還是生成時間。
  2. 抽取 20 到 50 個近期确實有内容變更的 URL,逐一比對其 lastmod 與實际改動時間。
  3. 在服務器日誌里观察這些 URL 是否被重新抓取,以及抓取时是否返回 304。
  4. 如果大量 lastmod 與實际不符,先修生成逻辑,再观察一段時間的抓取變化。
  5. 把“内容版本時間”寫進發布流程,避免長期依赖人工填寫。

什么时候不必纠结這個字段

更新极少的企业介绍頁、联系方式、歷史归档類頁面,lastmod 精确與否影响很小。這類頁面本来就不需要频繁重抓,准确填上一次發布的時間即可。同理,分頁、标簽聚合、篩選结果這類頁面,重点往往不是 lastmod,而是它們该不该出現在 Sitemap 里——如果本身不被期望被索引,纠结更新時間意义不大。

把精力放在真正會變化、且變化後需要被重新認识的内容上,比全站统一刷新時間更有意义。lastmod 不是排名手段,它只是让調度的判断更接近事實的一個细节。