搜尋抓取

Sitemap 里该放哪些 URL:規范地址、跳轉頁與 noindex 的取舍

Sitemap 常被当成越全越好的 URL 清單,但真正决定抓取的是地址本身是否可索引。本文梳理该放與不该放的 URL 類型、lastmod 的真實性寫法,以及與内鏈、canonical 的一致性核對方法,帮助减少無效抓取。

搜尋抓取

Sitemap 里该放哪些 URL:規范地址、跳轉頁與 noindex 的取舍

Sitemap 的作用是给蜘蛛提供一批可抓取的入口候選,但它並不能决定哪些頁面會被收錄。實际抓取时,蜘蛛仍會按自己的判断去驗證:這個地址返回什么狀態碼、是否可索引、和站内其他入口是否指向同一個規范地址。所以 Sitemap 的價值不在于“列得多”,而在于“列得准”。

Sitemap 是入口清單,不是收錄開關

把 Sitemap 理解成一份“备選入口列表”更准确。蜘蛛讀取後會把其中的 URL 放入待抓取队列,之後是否繼續抓、抓多深,取决于頁面本身的响應质量、内鏈支持度和站点整体的抓取节奏。批量塞入低质地址,反而會稀释抓取资源,让真正需要更新的頁面排队更久。

适合放進 Sitemap 的地址

  • 可索引的規范地址:返回 200,canonical 指向自身,没有被 robots 或 meta 标记為 noindex。
  • 有實际内容的列表頁與詳情頁:空列表、纯篩選结果、内容极少的過渡頁,價值有限。
  • 内鏈中已有入口的頁面:Sitemap 與内鏈互相印證,能提高被發現後的抓取确定性。
  • 更新較有規律的栏目:配合真實的 lastmod,便于蜘蛛判断哪些分区值得回訪。

不建议放進 Sitemap 的地址

  • 跳轉地址:301、302 的目标應直接寫终点 URL,把跳轉鏈留在 Sitemap 里只會增加一次額外請求。
  • noindex 頁面:既然明确不希望被索引,就不必再主動提交入口。
  • 非規范地址:带追踪參數、大小寫混用、多版本尾斜杠的變体,容易造成同一内容被多次抓取。
  • 404 與失效頁:歷史地址長期返回错誤碼时,應從 Sitemap 中移除,而不是留着等待“恢复”。

lastmod 要真實,才能当作回訪信号

如果每次生成 Sitemap 都把 lastmod 刷成目前時間,這個字段就失去了參考意义。更稳妥的做法是让它對應内容的實质性變更:正文調整、價格變動、库存更新等。格式统一、时区一致,避免同一頁面出現忽前忽後的時間。更新频率不高的栏目,不必强行提高声明频率。

與内鏈、canonical 做一致性核對

Sitemap 里寫的地址、内鏈指向的地址、頁面自身 canonical 声明的地址,三者最好指向同一個 URL。出現分歧时,蜘蛛可能按自己的規則做归一化,结果與你期望的入口不一致。常见分歧点包括:是否带 www、是否用 https、路径末尾斜杠、參數顺序、大小寫。

一個可执行的核對顺序

  1. 從 Sitemap 中抽样一批 URL,逐個請求,记錄狀態碼與最终落地地址。
  2. 對跳轉和 404 的地址做分類:是歷史遗留,還是配置错誤。
  3. 检查頁面 canonical 是否與 Sitemap 中的寫法一致。
  4. 對照蜘蛛日誌,看這些入口被抓取後,是否繼續爬到了内鏈中的下一层。
  5. 把確認無價值的地址從 Sitemap 移除,並在内鏈中减少同類入口。
判断标准可以很简單:一個 URL 如果既不能被索引,又不是用戶真正會訪問的地址,就不需要在 Sitemap 里占位置。

分片與更新节奏的小提示

URL 數量較多时,按栏目或内容類型分片,比把所有地址堆在一個文件里更好维護。分片文件的 lastmod 可以反映该分区的整体更新情况,但不必每次全量重寫。新增内容及时加入,下线内容及时剔除,保持清單與站点真實结构大体同步即可。

最後提醒一点:Sitemap 是 URL 發現通道之一,不是唯一。内鏈结构、栏目頁、列表翻頁同样承担着發現职责。把 Sitemap 整理干净,同时让内鏈可爬、服務器响應稳定,抓取效率才會稳定在一個合理水平。