搜尋抓取

Sitemap 提交之後没有抓取:從入口頁到服務器日誌的排查顺序

提交 Sitemap 不等于蜘蛛會来抓。本文按顺序梳理排查路径:Sitemap 是否可讀、目标 URL 在站内是否有可達連結、服務器返回是否稳定、日誌里能否看到真實請求,並给出一份可执行的检查清單,帮助定位抓取没有發生的那個环节。

搜尋抓取

Sitemap 提交之後没有抓取:從入口頁到服務器日誌的排查顺序

Sitemap 提交成功,只是把一批 URL 放進了候選清單,不等于蜘蛛會立刻来抓。抓取是否發生,取决于這份清單能不能被讀到、清單里的地址能不能從入口頁走過去、以及服務器在被訪問时给出的回應是否稳定。按下面的顺序排查,通常比反复重新提交更有效。

第一步:確認 Sitemap 本身可讀

  • 直接訪問 Sitemap 地址,確認返回 200,而不是跳轉到首頁、登入頁或 404。
  • robots.txt 里没有把 Sitemap 路径连同抓取工具一起屏蔽掉,Sitemap 自己也要允许被訪問。
  • XML 格式正确、编碼统一,里面寫的是規范後的最终 URL,而不是带一堆追踪參數的重复地址。
  • 分片文件與索引文件的對應關系正确,lastmod 與頁面真實更新時間大致一致,不要整站填同一個時間。

第二步:URL 在站内是否有可達路径

Sitemap 是补充,蜘蛛的常規路径仍然是連結。一個只在 Sitemap 里出現、站内任何頁面都鏈不到的地址,被發現和回訪的概率都要低得多。

  • 目标 URL 最好在首頁或栏目頁一到两次点击内可達。
  • 列表頁分頁不要断鏈,翻頁連結要真實存在于 HTML 中。
  • 新栏目上线时,先從已有訪問量的頁面挂一個入口進去。
  • 如果是靠前端渲染出現的連結,確認渲染完成後 DOM 里确實有可跟随的 href。

第三步:服務器给出的回應是否稳定

蜘蛛来抓的时候看到什么,由服務器决定。常见的拦路情况包括:

  • 5xx、超时、连接重置,會让這次抓取中断並被推後。
  • 返回 200 但正文空白、只有模板占位,容易被判為低價值頁面。
  • CDN 或 WAF 的限流、UA 封禁,可能让請求根本到不了源站。
  • 响應時間波動過大,尤其在高並發时段,抓取成功率會明顯下降。

第四步:確認請求真的到達

這一步最容易被跳過。用服務器日誌或 CDN 日誌確認三件事:蜘蛛是否訪問過 Sitemap、是否訪問過目标 URL、返回的狀態碼和响應時間是多少。如果日誌里完全没有记錄,問题多半在上游,比如 DNS、防火墙或 WAF 規則;如果记錄很多但都是 5xx、403,問题就在服務器策略和承载能力上。

一份可执行的排查顺序

  1. 看日誌:抓取工具有没有訪問過 Sitemap,频率是否正常。
  2. 抽样 Sitemap 里的 URL,逐個检查狀態碼、重定向和 canonical。
  3. 检查 robots.txt 與頁面級 meta robots 是否冲突。
  4. 從首頁開始点击,確認目标 URL 能在少數几步内走到。
  5. 統計服務器错誤率與响應時間,重点看高峰时段的 5xx。
  6. 用搜尋後台的網址检查工具触發一次實时抓取,观察實际返回的内容。
別把“Sitemap 已提交”当成结果。它只是一份候選清單,抓取能否發生,取决于入口是否通畅、服務器是否稳定、抓取预算是否被浪費這三件事是否同时成立。

常见的誤判

看到收錄没變化就反复改 Sitemap,或者往里塞大量無關地址想“催”蜘蛛,往往适得其反:這會稀释有限��抓取预算,让真正需要抓的頁面排在後面。保持入口通畅、减少 5xx、让清單里的 URL 都能稳定返回,比一次性提交几萬條地址更有用。