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,問题就在服務器策略和承载能力上。
一份可执行的排查顺序
- 看日誌:抓取工具有没有訪問過 Sitemap,频率是否正常。
- 抽样 Sitemap 里的 URL,逐個检查狀態碼、重定向和 canonical。
- 检查 robots.txt 與頁面級 meta robots 是否冲突。
- 從首頁開始点击,確認目标 URL 能在少數几步内走到。
- 統計服務器错誤率與响應時間,重点看高峰时段的 5xx。
- 用搜尋後台的網址检查工具触發一次實时抓取,观察實际返回的内容。
別把“Sitemap 已提交”当成结果。它只是一份候選清單,抓取能否發生,取决于入口是否通畅、服務器是否稳定、抓取预算是否被浪費這三件事是否同时成立。
常见的誤判
看到收錄没變化就反复改 Sitemap,或者往里塞大量無關地址想“催”蜘蛛,往往适得其反:這會稀释有限��抓取预算,让真正需要抓的頁面排在後面。保持入口通畅、减少 5xx、让清單里的 URL 都能稳定返回,比一次性提交几萬條地址更有用。