搜尋抓取

Sitemap 里该放什么:不是所有 URL 都值得提交

Sitemap 经常被当成全站 URL 導出表,结果把重定向、參數组合、noindex 頁面也塞了進去。本文從蜘蛛讀取线索的角度,說明哪些地址值得放進 Sitemap,哪些應该清理,以及如何用内鏈和日誌做交叉驗證,让這份清單更接近真正需要被抓取的頁面。

搜尋抓取

Sitemap 里该放什么:不是所有 URL 都值得提交

Sitemap 常被当成“全站 URL 導出表”:建站时自動生成,上线後很少再看。蜘蛛确實會讀 Sitemap,但它只是线索之一。如果里面混進大量不该被抓取的地址,反而會让真正需要發現的頁面排队更久。

Sitemap 的定位:线索清單,不是备份

Sitemap 的作用是告诉蜘蛛“這些 URL 存在,可以来看看”。它不保證收錄,也不替代内鏈。蜘蛛會同时參考 Sitemap、站内連結、歷史抓取记錄和頁面更新情况。所以 Sitemap 的质量比數量重要。

哪些 URL 不该放進 Sitemap

  • 重定向地址:返回 301 或 302 的 URL,應直接寫最终地址。
  • 失效頁面:404、410 頁面清理掉,不要長期留在清單里。
  • noindex 頁面:既然不想被索引,就没必要提交。
  • 參數组合頁:篩選、排序、跟踪參數容易生成大量相似 URL,除非有獨立内容價值,否則不放。
  • 登入後或會话地址:带 session、token、购物车參數,蜘蛛通常看不到有效内容。
  • robots.txt 禁止抓取的地址:提交了也抓不了,只會增加無效线索。

值得放進 Sitemap 的 URL 長什么样

  • 返回 200,且主要内容可直接訪問。
  • canonical 指向自身,没有指向別的頁面。
  • 有獨立标题、正文和搜尋意图,不是简單拼接。
  • 在内鏈里至少有一個入口,不是完全孤立的頁面。
  • 移動端與桌面端内容一致,没有因 UA 不同而返回空白頁。
如果一條 URL 只在 Sitemap 里出現,没有任何内鏈入口,蜘蛛可能仍會抓,但重訪频率和抓取深度通常不稳定。

用内鏈和日誌做交叉驗證

生成 Sitemap 後,抽查一批 URL:在站内搜尋或導航里能否点到?日誌里最近有没有被抓取?如果 Sitemap 有 1 萬條,日誌里几周只出現几百條,說明要么内鏈太弱,要么服務器响應或抓取预算限制了發現。此时應優先修内鏈和頁面质量,而不是反复提交 Sitemap。

更新與维護的节奏

建议按内容類型或更新時間分片,增量更新。新增頁面及时加入,刪除頁面及时移除。不要為了“提醒蜘蛛”每天批量修改 lastmod,時間戳频繁變動會让重訪安排失去參考價值。分片文件保持稳定命名,索引文件只列出目前有效的分片。

服務器與 Sitemap 文件本身

Sitemap 文件也要能被稳定抓取。動態生成很慢、经常超时,蜘蛛可能讀不完。大站可以把 Sitemap 静態化並加缓存,确保返回 200 和正确的 XML 内容類型。服務器压力大时,至少不要让 Sitemap 和關键頁面一起排队。

最後,把 Sitemap 当作一份需要维護的线索清單:放可索引、有内鏈、有獨立價值的 URL;清理重定向、參數组合和失效地址;再用日誌看蜘蛛實际走了哪些路。這样它才更接近一份有效的抓取地图。