搜尋抓取

Sitemap 里的時間字段:lastmod 怎么寫,蜘蛛才會安排下一次来訪

很多站点的 Sitemap 里,lastmod 是顺手生成的,頁面被构建一次就刷新一次時間。這個字段本意是告诉蜘蛛内容最後一次實质變化的時間,寫虚了反而會带来無效抓取。本文說明 lastmod 的作用邊界、几種常见寫法的後果,以及相對靠谱的生成方式,並给出從抓取日誌驗證的思路。

搜尋抓取

Sitemap 里的時間字段:lastmod 怎么寫,蜘蛛才會安排下一次来訪

Sitemap 里的 lastmod 字段,很多站点是顺手生成的:只要頁面被构建過,就把時間寫成当下。這样寫看起来勤快,實际會让這個字段失去參考價值。蜘蛛安排下一次来訪时會參考多個信号,lastmod 是其中比較直接的一個,但它更像一條线索,而不是一個開關。

lastmod 在告诉蜘蛛什么

lastmod 表達的只有一件事:這個 URL 對應的内容,最後一次發生實质性變化是什么时候。它不表示模板改版,不表示導航調整,也不表示某個组件重新渲染。蜘蛛把 Sitemap 里的 lastmod 和自己上次抓取该頁面的记錄做比對,如果時間明顯更新,這個 URL 在待抓队列里的優先級可能被提前。

反過来,如果每次生成 Sitemap 都刷新時間,而頁面内容其實没變,蜘蛛几次抓下来發現没有差异,對這個字段的信任度自然會降低。

几種常见寫法與它們的後果

  • 每次生成都寫目前時間:短時間内大量 URL 的時間戳一起跳動,看起来像全站同时更新,容易造成無效抓取。
  • 寫死一個固定值:長期不變,蜘蛛無法從中判断新鲜度,這個字段基本等于没寫。
  • 格式不统一:有的带时区、有的不带,有的用本地時間,解析结果可能出現偏差。
  • 只给部分 URL 寫:同一批新頁面里有的有時間、有的没有,抓取排队的先後就容易出現偏差。
  • 寫未来時間:時間戳跑到目前時間之後,這條记錄的可信度會打折扣。

相對靠谱的寫法

  1. 只在這一頁的正文、标题、结构化信息等實质内容變化时更新,改样式、換图片尺寸不算。
  2. 時間取自資料层的真實更新時間字段,而不是构建时刻或發布時間。
  3. 统一用带时区的完整格式,全站保持一致。
  4. 批量更新时,避免把上千個 URL 的時間戳压在同一秒,可以让它們落到各自真實的修改時間上。
  5. 對長期没有變化的頁面,保留原来的時間即可,不需要為了顯得新而刷新。

除了 lastmod,還有哪些再訪线索

  • 頁面自身返回的 Last-Modified 與 ETag,蜘蛛重复抓取时會拿它們做比對。
  • 站内新增的内鏈,尤其是從更新频繁的列表頁或首頁指向的連結。
  • 站点整体的更新节奏,長期稳定产出新内容的站点,蜘蛛来訪會更規律。
  • 外部新增的引用連結,也會間接影响某個 URL 被再次走過的時間。

怎么驗證寫得對不對

可以從抓取日誌里挑几個 URL,看它們两次被抓的時間間隔,和 Sitemap 里记錄的時間戳對不對得上。如果時間戳一直在動、抓取频率却没變化,多半說明這個字段没被采信。也可以在站点地图报告里观察同一批 URL 的解析情况,確認時間格式能被正常讀取。

lastmod 寫准只是给蜘蛛提供了一條判断依據,不代表頁面一定會被更频繁地抓取。它的價值在于减少噪声:让真正的更新被發現,让没變的頁面少被打扰。

把時間字段寫實,配合稳定的抓取通路和清晰的内鏈结构,URL 發現和再訪才會慢慢進入一個可预期的节奏。