常见問题

目标 URL 一直没被搜尋蜘蛛發現,该先排查入口頁還是目标站?

目标 URL 迟迟没被搜尋蜘蛛發現时,先別急着增加入口頁數量。本文把問题拆成「没發現、没抓取、抓了没收」三段,分別给出入口頁與目标站两侧的检查清單,並指出两個常见誤判,帮助更快定位断点、减少無效试错。

常见問题

目标 URL 一直没被搜尋蜘蛛發現,该先排查入口頁還是目标站?

遇到目标 URL 一直不出現在结果里,很多人的第一反應是加大蜘蛛池入口頁數量,或者反复提交地址。但如果连搜尋蜘蛛的抓取记錄都没有,加量往往只是把同一個問题放大。更省時間的做法是先定位断点:断在入口頁這一环,還是断在目标站這一环。

先把發現和抓取拆成两步看

搜尋蜘蛛處理一條連結大致要過两道關:先在某個頁面上讀到這個 URL,也就是發現;再把它排進队列並發出請求,也就是抓取。两步之間可能隔几分钟,也可能隔几天,甚至一直不执行。所以先确定卡在哪一步:

  • 入口頁本身没被訪問過,問题在入口頁的可發現性;
  • 入口頁被抓了,但日誌里始终没有目标 URL 的請求,連結可能没被正确解析,或者排队极慢;
  • 目标 URL 被請求過但返回異常,問题在目标站服務端。

這三條對應完全不同的處理方向,混在一起查很容易做無用功。

建议的排查顺序

  1. 先看入口頁是否被抓。入口頁都没被訪問,目标 URL 自然無從谈起。此时優先確認入口頁能否正常打開、是否被 robots 拦截、有没有其他頁面連結指向它。
  2. 再看連結是否可解析。入口頁被抓却没带出目标連結,常见原因是連結藏在需要执行脚本才生成的位置,或者被属性屏蔽。
  3. 最後查目标站。確認蜘蛛确實請求過目标 URL 之後,再去看狀態碼、响應時間、robots.txt 和頁面上的 noindex。
把「没收錄」当成一個笼统的問题,很难找到答案;拆成没發現、没抓取、抓了没收三段,往往几分钟就能定下方向。

入口頁這一侧值得检查的点

  • 入口頁是否稳定返回正常狀態碼,而不是跳轉鏈或空白頁;
  • 目标連結是否寫在 HTML 源碼里,而不是只存在于脚本渲染之後;
  • 連結是否带上了 nofollow 之類阻止跟進的属性;
  • 入口頁自身有没有内鏈或外鏈指向,避免變成孤岛頁;
  • 入口頁連結數量是否過多、体积是否過大,導致靠後的連結被忽略。

目标站這一侧值得检查的点

  • 目标 URL 是否返回 200,有没有频繁超时;
  • 頁面 head 中是否存在 noindex,robots.txt 是否屏蔽了抓取;
  • 该地址是否與站内其他頁面高度重复,被 canonical 指向別處;
  • 服務器是否對陌生 UA 或高频請求做了拦截;
  • 同一域名下是否已有大量低质頁面,影响整站的抓取分配。

两個常见的誤判

第一,把入口頁數量当成萬能药。目标站本身有阻断时,入口頁再多也只是让搜尋蜘蛛反复撞墙,還可能拉低對方對整批連結的信任度。

第二,只凭提交成功就判断没問题。URL 提交只是把地址告诉搜尋引擎,是否抓取、何时抓取由對方决定,提交成功和被抓取是两回事。

處理节奏上的一点建议

排查之後先做最小改動:修掉一條明确的阻断,比如去掉 noindex、恢复 200 狀態,然後观察一段時間日誌。尽量不要在同一時間点同时改入口頁结构、換域名、調服務器策略,否則即便情况好轉,也说不清是哪一步起了作用。抓取和收錄本身就是慢過程,稳妥排查比频繁试错更省成本。