常见問题

入口頁被 robots.txt 屏蔽後,里面的目标連結還會被搜尋蜘蛛發現吗

robots.txt 屏蔽入口頁後,入口頁里的目标連結還能被發現吗?本文把抓取许可和連結發現拆成两件事来讲,說明 Disallow 與 noindex 的区別、蜘蛛池里常见的几類誤配置,以及用服務器日誌和站長平台工具逐步驗證的方法,帮你判断問题到底卡在哪一层。

常见問题

入口頁被 robots.txt 屏蔽後,里面的目标連結還會被搜尋蜘蛛發現吗

robots.txt 只做一件事:告诉搜尋蜘蛛哪些 URL 不要来抓。它不负责让内容出現,也不负责让内容消失。理解這一点,很多關于入口頁的困惑就解開了。

抓取许可和連結發現是两碼事

連結被發現,通常来自三個渠道:別的頁面上的超連結、sitemap、以及外部站点的指向。入口頁里的目标連結属于第一種,前提是搜尋蜘蛛真的抓取了這個入口頁,拿到了 HTML 源碼,才能從中解析出連結地址。

如果 robots.txt 把入口頁本身屏蔽了,蜘蛛一般不會去請求這個 URL,自然也讀不到里面的連結。這时候“入口頁里放了哪些連結”對蜘蛛来说是看不到的。

屏蔽入口頁之後,通常會發生什么

  • 入口頁 URL 依然可能被蜘蛛“知道”(別人鏈過来、sitemap 里寫過),但不會去抓取;
  • 入口頁内部的目标連結,不會因為這一次屏蔽而被發現;
  • 如果這批目标 URL 還有別的来源,比如 sitemap、其他可抓取的入口頁、外部連結,它們照样可能被抓;
  • 已经被抓取並建立索引的舊頁面,不會因為新增一條 Disallow 就立刻從索引里消失。

別把 Disallow 和 noindex 混為一谈

noindex 需要蜘蛛抓到頁面才能看到;Disallow 是让蜘蛛压根不要抓。两者一起用,noindex 往往永遠生效不了,因為蜘蛛根本没机會讀到它。

如果你只是不想让入口頁出現在搜尋结果里,但仍然希望蜘蛛通過它發現目标連結,通常的做法是“可抓取 + noindex”。一旦改成屏蔽抓取,就同时切断了連結發現的路径。

蜘蛛池里常见的几類誤配置

  1. User-agent 分组寫错:多组規則堆在一起,蜘蛛可能只匹配到其中一组,實际屏蔽范围比你以為的大。
  2. 通配符用過头:比如寫成 /pool*,會顺带把 /pool-a/、/pool-tools/ 這類路径一起挡住。
  3. 入口頁禁了,目标連結却在同目錄:本想屏蔽入口目錄,结果目标連結也在同一路径下被一起挡掉。
  4. 直接寫 Disallow: /:一次挡住整站,這是最常见也最伤的寫法。
  5. 測試环境寫過 Disallow,上线忘了删:线上長期保持屏蔽狀態,自己却以為一直没動過。

怎么確認到底卡在哪一层

  • 看服務器日誌:有没有對入口頁 URL 的抓取請求,来自哪些 UA,返回碼是什么;
  • 用搜尋引擎站長平台提供的 robots.txt 測試工具,確認某條具体 URL 是否被屏蔽;
  • 把 robots.txt 原文打開,逐條核對大小寫、结尾有没有 $、是否有多余空格;
  • 對入口頁 URL 做一次抓取測試,看返回的是頁面内容還是被拒。

實际建议

想让入口頁承担連結分發的角色,就让它保持可抓取。担心入口頁本身占索引,可以给它 noindex,但不要屏蔽抓取。反過来,如果你已经不打算让蜘蛛走這個入口,就把它当普通頁面處理,別指望里面的連結還能被顺带發現——目标 URL 的發現工作要交给 sitemap 或別的可達頁面。

最後提醒一句,以上都是概率层面的判断,最终以實际日誌和索引情况為准,任何配置都無法保證一定被抓取或一定被收錄。