常见問题

蜘蛛池入口頁提交後迟迟不抓取,排查顺序该從哪里開始

蜘蛛池入口頁提交後在日誌里迟迟没有動静,問题往往不在提交本身。本文按頁面可訪問性、robots 限制、服務器拦截、URL 一致性、抓取配額、連結可發現性六個层次给出排查顺序,並說明如何用服務器日誌区分“入口頁根本没抓”和“目标 URL 没被發現”這两種情况。

常见問题

蜘蛛池入口頁提交後迟迟不抓取,排查顺序该從哪里開始

把入口頁提交到搜尋引擎的推送接口或 sitemap 之後,很多人就預設“接下来它會自己来抓”。實际上提交只是把 URL 放進候選池,是否真的被抓、什么时候被抓,還要经過狀態碼、robots、服務器拦截、抓取配額等一系列判断。任何一层不通,日誌里都可能安静得像什么都没發生。

提交成功只說明請求被接收

推送接口返回成功、sitemap 狀態顯示正常,這些反馈僅表示平台收到了這條 URL。它既不代表已经排進抓取队列,也不代表抓取優先級被提高。所以“提交了”和“被抓了”之間,必须用日誌去驗證,而不是靠感觉判断。

排查顺序:從入口頁自身開始往回查

1. 入口頁能否稳定返回 200

  • 用不带登入態、不带 Cookie 的方式請求一次,看是否返回 200 且内容非空;
  • 检查是否存在软 404:狀態碼是 200,頁面却只有一句“内容不存在”;
  • 確認連結是否出現在原始 HTML 里,而不是完全依赖脚本渲染。

2. robots.txt 與頁面級限制

入口頁被 Disallow 挡住,或者頁面带有 noindex,都會影响後續抓取。要注意 robots 是按路径前缀匹配的,一條寫错的規則很容易连带把整批入口頁一起挡住。

3. 服務器和中間层是否拦了爬虫

  • WAF、防火墙、CDN 的 Bot 規則可能對搜尋蜘蛛返回 403 或驗證碼頁;
  • 频率限制過嚴时,蜘蛛第一次能進来,後面就被持續限流;
  • 部分云服務預設屏蔽某些 IP 段,會導致對應来源的爬虫無法訪問。

4. 提交的 URL 與頁面里的連結是否一致

大小寫、末尾斜杠、协议、參數顺序、多余跟踪參數,只要有一處不同,就可能被当成另一個 URL。排查时以頁面里實际輸出的連結為准,而不是後台记錄的那一條。

5. 站点整体的抓取配額

抓取配額有限的站点,新提交的 URL 往往排在後面。如果站内本身有大量低质量頁面、重复内容或者長期超时的地址,配額會被消耗在這些地方,入口頁自然轮不上。

6. 入口頁到目标 URL 的連結是否真的存在

有时候入口頁确實被抓了,但里面的連結是空的、被脚本後置插入的、或者被條件判断隐藏了,目标 URL 依然發現不了。這一层的問题通常要在渲染後的 DOM 里才看得出来。

日誌是唯一可靠的驗證方式

把服務器日誌里的蜘蛛訪問單獨筛出来,重点看三件事:

  1. 蜘蛛是否来過入口頁,返回碼是多少;
  2. 入口頁被訪問後,隔多久来抓目标 URL;
  3. 目标 URL 的返回碼和响應時間是否正常。

如果入口頁有訪問、目标 URL 一直没来,問题多半出在連結可發現性上;如果入口頁本身就没訪問,那就要往前面的狀態碼、robots 或拦截层去找。這两個方向搞反,改再多结构也是白費。

几個容易忽略的细节

  • 新域名前期抓取本来就慢,不必急着大改结构;
  • 同一批入口頁不要在同一天全部改版,否則很难對比前後差异;
  • 調整之後至少观察一到两周,再判断有没有效果;
  • 不要為了“让蜘蛛来”而反复改動,频繁變動反而會降低稳定性。
提交是起点,不是结果。能不能被抓、抓多少,最终取决于入口頁是否可訪問、連結是否可發現、站点整体是否值得信任。