Sitemap 常被当成一份“提交清單”:只要站内生成過 URL,就顺手寫進去。數量看起来很多,真正被抓取的比例却不高。從蜘蛛的角度看,Sitemap 更像一份候選列表——它告诉蜘蛛“這些地址存在、可以去看看”,既不保證抓取,也不决定收錄。列表里混進無效地址,最直接的後果是让蜘蛛把有限的時間花在拿不到内容的地方。
Sitemap 的定位:發現入口,不是收錄開關
Sitemap 主要解决“發現”問题。内鏈不容易到達、层級較深的頁面,靠它更容易被蜘蛛知道。但它只是入口之一,和首頁、栏目頁、站内連結、外鏈共同起作用。如果只盯着 Sitemap 的條數,很容易忽略内鏈结构本身是否顺畅。
通常不建议放進 Sitemap 的几類地址
已经返回 404 或 410 的頁面
頁面下线後,地址還留在 Sitemap 里,蜘蛛每次訪問都拿到错誤狀態。這類地址應该及时刪除或改為 410,並同步從 Sitemap 中移除。長期堆积的失效地址,會让人誤以為“提交了很多”,實际有效條目並不多。
設定了 noindex 的頁面
noindex 表達的是“不要收錄”,Sitemap 表達的是“欢迎来看”。两者同时出現,信号是矛盾的。真正不需要收錄的頁面,既不该出現在 Sitemap 里,也不该在内鏈中被大量指向。
發生跳轉的舊地址
Sitemap 中應当寫跳轉後的目标地址,而不是跳轉前的地址。把一堆 301 地址列進去,等于让蜘蛛多走一跳,抓取路径被拉長,收益却没有增加。
參數、排序、篩選生成的大量组合
參數组合可以轻易生成成千上萬個地址,其中大部分内容高度相似。除非某個组合有獨立的内容和明确的搜尋需求,否則不必逐個列出。更稳妥的做法是只保留主入口,並在頁面上用規范标簽說明首選版本。
重复版本頁:打印頁、带會话參數的地址
打印版、简版、带追踪參數的地址,本质上是同一篇内容的不同外壳。把它們都寫進 Sitemap,會让同一個頁面以多種形式被反复請求。
需要登入、返回 403 或僅内部可见的地址
蜘蛛拿不到内容,只會记錄一次失敗。後台頁面、會員中心、測試环境地址,都不适合出現在對外的 Sitemap 中。
可以放,但要控制數量的部分
更新频繁的首頁與栏目頁
首頁和主要栏目頁值得放進 Sitemap,但數量應当有限。它們本来就處在内鏈的顯眼位置,Sitemap 的作用更多是补充,而不是主力。
多語言或多地区版本
不同語言版本各自收錄是合理的,前提是每條地址都能稳定返回 200,並且用 hreflang 說明彼此的對應關系。若某些語言版本尚不完整,先不放比放進去更省事。
提交之後值得做的几項检查
- 随机抽取若干條地址,確認返回碼與頁面内容一致;
- 查看服務器日誌中蜘蛛對 Sitemap 本身的抓取频率,以及其中 URL 的實际抓取情况;
- 對比内鏈覆盖與 Sitemap 覆盖,找出只有 Sitemap 才能發現的頁面;
- 定期清理已失效、已跳轉、已设為 noindex 的條目。
Sitemap 的價值不在于條數多,而在于列表里的每一條都值得蜘蛛跑一趟。
把 Sitemap 当作一份需要维護的清單,而不是一次性的提交動作,URL 發現的效率會稳定一些。至于抓取和收錄的结果,仍然取决于内容本身、站点结构和服務器表現,這些不是 Sitemap 能替代的。