搜尋抓取

Sitemap 的 lastmod 不是摆设:時間戳怎么寫才帮到 URL 發現

很多站点只關心 Sitemap 里有没有寫 URL,却忽略 lastmod 這個字段。它不能催蜘蛛,却會影响抓取調度對重訪優先級的判断。本文拆解四種常见寫法错誤,给出格式與更新判断的實操原則,並說明如何用日誌驗證這個信号是否真的被采信。

搜尋抓取

Sitemap 的 lastmod 不是摆设:時間戳怎么寫才帮到 URL 發現

很多站点把 Sitemap 当成一張地址清單,只關心 URL 有没有寫進去,却忽略了 lastmod 這個字段。它既不是装饰,也不是催蜘蛛的開關:寫對了,能帮抓取調度判断哪些地址值得重新走一趟;寫错了,可能让同一批頁面長期排在队尾。

一、lastmod 在抓取調度里扮演什么角色

搜尋引擎並不只根據 lastmod 决定抓不抓,但它是調度环节里少數由站長主動提供的信号之一。当一個 URL 已经被發現、進入待抓队列後,調度器會综合歷史抓取频率、頁面重要性、服務器响應情况,以及 lastmod 與上次抓取時間的差值来判断優先級。差值稳定且合理,信号才有參考價值。

關键在于變化量。如果某頁三個月没動,lastmod 却天天更新,這個字段很快會被降權甚至忽略;反過来,真正更新了内容却從不改時間戳,頁面容易被当成静態頁,重訪間隔越拉越長。

二、四種常见的寫坏方式

  • 全量刷新:每次部署都把所有 URL 的 lastmod 改成当天。看起来勤快,實际上等于告诉調度器整站每天全變,信号被稀释。
  • 格式不規范:寫成本地時間、缺时区、用中文日期或秒級以下的精度,解析失敗後字段等于不存在。
  • 把發布日当更新日:頁面只改了個错別字也重寫時間戳,時間一長和全量刷新是一個效果。
  • 與實际内容脱节:模板調整、广告位替換、评论区新增都触發時間戳更新,而頁面主体其實没變。

三、寫得靠谱的几個原則

一是把 lastmod 绑定到正文的實质變化上,比如價格、參數、结论、配图這類用戶能感知的改動。二是统一使用带时区的 ISO 8601 格式,例如 2024-06-01T09:30:00+08:00,避免解析歧义。三是只列真正常用的地址,不要把篩選參數、會话 ID 這類地址也塞進去,否則時間戳再准也没有意义。

對批量生成的頁面,可以按内容来源判断:資料源更新了就改,没更新就別動。對列表頁和聚合頁,可以在新增條目时更新,而不是按固定周期無脑刷新。

四、怎么確認它有没有起作用

最直接的办法還是看服務器日誌。挑一批刚更新過内容的 URL,观察它們在更新時間点之後的重訪間隔,再和一批改了時間戳但内容没動的頁面做對比。如果前者明顯更快被重訪,說明信号在生效;如果两者没有区別,就要回头检查格式、时区,以及頁面是不是真的發生了變化。

也可以把 Sitemap 里的 lastmod 與頁面上的可见更新時間做抽样核對。两者長期對不上,通常意味着生成逻辑有問题,而不是搜尋引擎不理會。

五、別把它当成催抓工具

Sitemap 提交和 lastmod 更新都只是告知,不保證抓取時間,更不影响收錄结果。真正决定頁面能不能被持續發現的,還是内容本身的價值、内鏈是否通畅、服務器是否稳定。lastmod 的作用,是让調度器在有限額度里少做無用功,把机會留给真正變過的地址。

把時間戳寫准,是低成本的礼貌;把它当成開關,則是高成本的誤會。