搜尋抓取

Sitemap 里的 lastmod 和 priority:蜘蛛會不會当真

Sitemap 中的 lastmod、changefreq、priority 常被当作指令来填,但搜尋引擎更多把它們视為提示。本文說明這三個字段實际被重视的程度、lastmod 怎么寫才算可信、全站批量刷新會带来什么代價,以及怎样把它和日常抓取节奏配合起来。

搜尋抓取

Sitemap 里的 lastmod 和 priority:蜘蛛會不會当真

Sitemap 是站点和蜘蛛沟通的主要渠道之一,但里面三個可選字段——lastmod、changefreq、priority——经常被当成“填什么就是什么”。實际並不是這样。搜尋引擎把它們当作提示,而不是指令,而且對待三者的態度差別很大。搞清楚這一点,能省下不少维護精力,也能避免因為随手填寫而给自己添麻烦。

三個字段里,只有 lastmod 有比較明确的作用

目前主流搜尋引擎對這三個字段的態度大致是:lastmod 在可信的前提下,會參與重新抓取的安排;changefreq 基本不進入决策;priority 也不進入决策,因為它描述的是站内相對重要程度,而搜尋引擎更依赖自己的連結结构、点击和内容信号来判断優先級。

這些字段的價值不在于“你寫了什么”,而在于“你寫的和實际情况是否長期一致”。

lastmod 怎么寫才算可信

  • 只在正文或主要内容真實發生變化时更新,而不是頁脚年份、推荐位轮播、訪問計數這類每次渲染都可能不同的部分。
  • 使用 W3C Datetime 格式,例如 2025-03-04T09:20:00+08:00,尽量带上时区,减少解析歧义。
  • 避免一次性把全站 URL 的 lastmod 刷成同一秒,那等于宣称所有頁面在同一时刻都改了,通常會被忽略。
  • 頁面没變就不要動它。長期稳定、经得起核對的 lastmod,參考價值反而更高。

changefreq 和 priority 基本可以忽略

這两個字段出現在早期爬虫規范里,如今多數引擎已公開說明不使用它們。把频率寫成 daily,不會让蜘蛛每天来一次;把 priority 寫成 0.9,也不會让頁面排得更靠前。如果维護成本高,删掉没有影响;如果 CMS 自動生成,保留着但不必花時間去調。

全站批量刷新 lastmod 的代價

發版、換模板、批量改样式之後,有些运营會用脚本把所有頁面的 lastmod 改成当天。短期看像是“通知了蜘蛛”,但接下来發生的事情通常是:蜘蛛按這個時間回来訪問,發現内容没有變化;重复几次之後,這個字段的參考價值下降,而真正更新的頁面反而可能被排在後面。更稳妥的做法是让 lastmod 直接来自内容表里的最後修改時間,模板調整不触發它。

把 lastmod 和抓取节奏配合起来

  1. 内容發布或實质性修改时,只更新對應 URL 的 lastmod。
  2. Sitemap 分片的 URL 分组保持稳定,例如按栏目拆分,避免频繁整体重建。
  3. 通過服務器日誌或搜尋後台的抓取統計,確認新内容在合理時間内确實被訪問過。
  4. 如果長時間没有抓取,先检查内鏈是否可達、頁面是否返回正常狀態碼,而不是反复改 Sitemap 字段。

需要提醒的是,Sitemap 字段本身不能替代站点质量。它只是把“這里有個 URL、它大概什么时候變過”這個信息递出去,蜘蛛是否前来、抓多少,還取决于内容更新频率、服務器响應、内鏈可達性和整体站点状况。把 lastmod 填准确,剩下的精力放在让頁面真正有變化、能被正常訪問和被連結指向,通常更划算。