搜尋抓取

Sitemap 提交後蜘蛛不来抓:從文件到内鏈的排查顺序

Sitemap 提交後没有抓取,不一定是蜘蛛“偷懒”。本文按文件可讀性、URL狀態、robots 屏蔽、服務器响應、内鏈入口和日誌驗證的顺序,梳理常见卡点,帮助定位抓取未發生的實际原因,而不是反复提交。

搜尋抓取

Sitemap 提交後蜘蛛不来抓:從文件到内鏈的排查顺序

把 Sitemap 提交给搜尋引擎之後,蜘蛛没有立刻来抓,是站点运营里很常见的情况。提交動作只是把 URL 放進候選池,並不等于蜘蛛會按提交顺序逐一訪問。與其反复提交,不如按顺序检查几個可能阻断抓取的环节。

先確認 Sitemap 本身能被正常讀取

Sitemap 的訪問狀態是第一道门槛。如果文件返回 404、500,或者被 CDN、WAF 拦截,蜘蛛根本拿不到里面的 URL。

  • 用浏览器無缓存打開 Sitemap 地址,確認返回 200 且内容是 XML,而不是首頁 HTML 或驗證頁。
  • 检查文件编碼和 XML 结构,URL 中不要出現未轉义的 & 等字符。
  • 確認 robots.txt 里声明了 Sitemap 地址,路径使用完整 URL。
  • 如果使用 Sitemap 索引文件,確認子文件都能被單獨訪問。

這一步可以用 curl 或浏览器開發者工具查看响應头和响應体,不要只看後台“提交成功”的提示。

Sitemap 里的 URL 是否允许抓取

Sitemap 只负责發現,不负责绕過 robots.txt。如果 URL 被 robots 屏蔽,蜘蛛可能不會抓取,或者抓取後不索引。需要逐項確認:

  • 目标 URL 返回 200,不是 404、410 或跳轉鏈過長。
  • robots.txt 没有誤屏蔽该目錄或带參數的 URL。
  • 頁面没有 noindex?noindex 不阻止抓取,但會让頁面無法進入索引,容易和“不抓取”混淆。
  • canonical 指向的 URL 是否可訪問,避免指向错誤頁面。
如果 URL 在 Sitemap 中但被 robots 屏蔽,日誌里可能只看到對 robots.txt 的請求,看不到對目标頁的抓取。

服務器响應與抓取频次

蜘蛛的抓取排期會受服務器稳定性影响。持續 5xx、超时或响應過慢,會降低回訪意愿。可以看日誌中蜘蛛請求的响應碼和時間:

  • 5xx 比例高时,先修服務端错誤,而不是反复提交 Sitemap。
  • 检查 CDN、WAF 是否對蜘蛛 UA 或 IP 段返回驗證頁、403。
  • 服務器负载高时,蜘蛛可能降低抓取速度,新 URL 的等待時間會變長。

如果日誌里蜘蛛請求很少,且大量返回 403 或 503,問题通常在網絡邊缘,不在 Sitemap 本身。

内鏈入口比 Sitemap 更常用

Sitemap 是补充入口,蜘蛛日常抓取更多依赖站内連結。新頁面如果只出現在 Sitemap,没有任何内鏈指向,抓取優先級通常較低。建议:

  • 從栏目頁、相關文章、面包屑或聚合頁给新頁面至少一個可抓取的普通連結。
  • 連結使用 a 标簽的 href,不要只用 JavaScript 点击事件。
  • 重要頁面尽量放在离首頁較近的抓取路径上。
  • 避免大量無意义連結稀释路径,让蜘蛛把注意力放在有效頁面上。

用日誌驗證蜘蛛是否来過

排查到最後,日誌是最直接的證據。按蜘蛛 UA 過滤,查看目标 URL 是否有請求记錄、返回什么狀態碼、請求時間分布。如果完全没有记錄,說明蜘蛛還没走到;如果有记錄但狀態碼異常,按响應碼修服務端或邊缘配置。如果抓取了但未索引,再看内容质量和重复問题。

整個過程不需要反复提交 Sitemap。先把文件、URL 狀態、robots、服務器响應和内鏈入口逐項確認,再用日誌驗證,通常能定位到具体卡点。蜘蛛是否抓取、何时抓取,最终由搜尋引擎决定,站点能做的是减少明顯阻碍。