常见問题

robots.txt 挡住了入口頁,搜尋蜘蛛還能發現里面的目标 URL 吗?

入口頁不想被收錄、又希望搜尋蜘蛛顺着它發現目标 URL,屏蔽方式選错就會直接切断路径。本文拆解 robots.txt Disallow、meta noindex、nofollow 三種屏蔽對 URL 發現的不同影响,给出規則與日誌的自查清單,並列出目錄級屏蔽、參數版本遗漏、目标 URL 不可訪問等常见坑。

常见問题

robots.txt 挡住了入口頁,搜尋蜘蛛還能發現里面的目标 URL 吗?

做入口頁时经常遇到一個矛盾:這個頁面本身不想被收錄,但又希望搜尋蜘蛛顺着它去發現目标 URL。于是有人给入口頁加 robots.txt 屏蔽,或者加 noindex,然後發現目标 URL 迟迟没有動静。問题往往不在“屏蔽”本身,而在于屏蔽方式决定了搜尋蜘蛛能不能讀到頁面里的連結。

先分清三種“屏蔽”,作用完全不同

  • robots.txt 里的 Disallow:禁止搜尋蜘蛛抓取指定 URL 或目錄。被禁止的地址,爬虫通常不會去請求,自然也讀不到頁面 HTML。
  • meta robots 的 noindex:允许抓取、允许解析連結,只是不希望這個頁面出現在搜尋结果里。
  • nofollow(連結級或頁面級):表達“不传递權重、不背书”的意思,但對是否繼續發現連結,各搜尋引擎處理並不一致,不能当作可靠的發現通道。

入口頁被 robots.txt 屏蔽後會怎样

如果入口頁 URL 或它所在的目錄被 Disallow,搜尋蜘蛛通常不會請求這個頁面,頁面里寫的目标 URL 連結也就不會被它從這個入口讀到,顺着連結發現新 URL 的路径等于断了。此时目标 URL 能否被發現,只剩其他渠道:sitemap、其他可抓取頁面上的連結、主動提交等。

還有一種更隐蔽的情况:入口頁本身没被屏蔽,但它引用的連結指向被 Disallow 的目标 URL。連結能被讀到,目标 URL 却無法被抓取,结果就是“發現了却抓不到”,日誌里只看到少量尝试甚至完全没有。

meta robots 與 X-Robots-Tag 的差別

给入口頁加 noindex 不會阻止抓取。搜尋蜘蛛仍然會請求頁面、解析 HTML、跟随里面的連結,只是不把這個入口頁收錄。如果目标是“入口頁不收錄、但連結照常被發現”,noindex 通常比 Disallow 更合适。X-Robots-Tag 通過 HTTP 响應头下發,效果類似,常见于 PDF、图片等非 HTML 资源。

nofollow 會不會影响發現

頁面級或連結級 nofollow 會被搜尋引擎当作提示處理。多數情况下爬虫仍可能把連結当线索去抓,但優先級和可靠性會下降。把 nofollow 連結当作主要的 URL 發現手段並不稳妥,尤其是入口頁連結數量多、更新频繁时。

自查清單:先確認問题出在哪一环

  1. 用 robots.txt 測試工具检查入口頁 URL 和目标 URL 是否被規則遮挡,注意目錄級通配符。
  2. 看入口頁响應头與 HTML 里的 meta,確認是否存在 noindex、nofollow,以及 canonical 是否指向了別處。
  3. 查服務器日誌里搜尋蜘蛛的 UA,看它是否請求過入口頁、返回什么狀態碼。
  4. 看目标 URL 是否被單獨請求過,狀態碼是 200、301 還是 5xx、403。
  5. 確認入口頁連結是真實可点击的 a 标簽,而不是纯 JS 拼接或点击後才加载。

几個容易踩的坑

  • 目錄整個被 Disallow,又想靠里面的入口頁传递連結:逻辑上互斥,蜘蛛進不来。
  • 規則只寫了干净地址,漏掉带參數版本:?utm、?from 等變体不在規則内,抓取行為不一致。
  • 入口頁 5xx 或频繁超时:爬虫會降低来訪频率,連結發現效率下降,先修稳定性和响應速度。
  • 目标 URL 自身被屏蔽或需要登入:入口頁再正常,抓取也無法完成。
一句话判断:想“不收錄但要被發現”,用 noindex;想“完全不抓取”,用 robots.txt Disallow,但別指望它還能帮你传递連結。

最後,URL 發現只是第一步,抓取和收錄還受站点质量、連結结构、抓取配額等影响。把入口頁的抓取狀態、連結可讀性和目标 URL 的可訪問性逐一確認,通常比反复更換入口頁更有效。