Sitemap 常被当成一個可以“向蜘蛛交代優先級”的文件,于是很多站点在里面認真填寫 priority 和 changefreq,希望蜘蛛多来几次。實际效果往往和预期相反:這两個字段寫得再整齐,也很少改變抓取行為。
Sitemap 是线索,不是指令
Sitemap 的核心價值是帮助蜘蛛發現 URL,尤其是那些内鏈較少、位置較深的頁面。它更像一張地图,而不是一份調度表。蜘蛛拿到地图之後,仍然會按自己的判断决定先抓什么、多久抓一次。
priority 與 changefreq 為什么基本被忽略
主流搜尋引擎的官方文档都提到,這两個字段不會影响排序,抓取調度也基本不參考。原因不难理解:
- 抓取調度依赖 URL 的歷史更新频率、响應速度、站点整体质量等自身信号,而不是站点自述;
- 任何站点都可以把 priority 寫成 1.0,字段本身缺少区分度;
- changefreq 是站点對更新节奏的估計,與實际内容變更经常對不上。
換句话说,把 priority 全部改成高值,並不會让蜘蛛更重视這些頁面。
lastmod 仍然有用,但前提是真實
三個字段里,lastmod 是少數還會被參考的字段,因為它描述的是已经發生的事實。但前提是它足够准确:
- 格式建议使用 W3C Datetime,並带上时区,例如 2024-05-01T09:30:00+08:00;
- 只在正文、價格、库存等實质内容變化时更新,改頁脚或換广告位不必動;
- 不要每次生成 Sitemap 就把全站 lastmod 刷成目前時間;
- 如果全站 lastmod 都是同一個時間点,這條信息基本等于没有。
当 lastmod 長期可信时,蜘蛛更容易判断哪些頁面值得重新抓取;反之,一旦被判定為不可信,這個字段就會被一起忽略。
Sitemap 真正影响抓取的地方
與其纠结字段,不如把下面這些细节做對,它們對 URL 發現和抓取节奏的影响更直接:
- 只收錄返回 200 且允许索引的 URL,canonical 指向自身;
- 不要把重定向鏈、404、noindex 頁面放進 Sitemap;
- 單個文件不超過 5 萬條 URL、未压缩不超過 50MB,超出时使用分片;
- 按内容類型拆分文件,例如文章、商品、栏目各一份,便于排查問题;
- 让 Sitemap 與站内連結互相印證。孤岛頁面即使進了 Sitemap,抓取往往也更慢、更不稳定。
一份可执行的维護清單
维護 Sitemap 不需要太复杂的流程,關键是保持稳定和真實:
- 新内容發布後自動寫入對應分片,避免每次全量重生成;
- 通過服務器日誌或站長工具,观察 Sitemap 文件本身被抓取的频率;
- 定期抽查其中的 URL 是否仍返回 200,及时清理已下线頁面;
- 調整 URL 结构时同步更新 Sitemap,並保留必要的重定向;
- 關注“已提交”與“已抓取”之間的差距,差距較大时優先检查内鏈结构和服務器响應。
两個常见誤区
把 priority 改成 1.0 不會让頁面排得更靠前,把 changefreq 寫成 hourly 也不會让蜘蛛每小时都来。
蜘蛛是否来、来得勤不勤,更多取决于站点的歷史抓取表現、内容是否真的更新,以及服務器能否稳定快速响應。字段填得再漂亮,也替代不了這几点。
回到抓取本身,Sitemap 最實际的作用是稳定、准确地告诉蜘蛛“這里有哪些可訪問的 URL”。一份干净、及时更新的清單,比精雕细琢的 priority 數字更有意义。