常见問题

目标 URL 被 robots.txt 屏蔽了,入口頁里的連結還算數吗?

入口頁放了連結,目标 URL 却一直没抓取,排查後發現被 robots.txt 的 Disallow 挡住。這篇文章把「發現連結」和「抓取頁面」两個阶段拆開讲,說明屏蔽之後常见的结果、容易寫错的几種 robots.txt 寫法,以及想控制收錄时為什么 noindex 更合适。

常见問题

目标 URL 被 robots.txt 屏蔽了,入口頁里的連結還算數吗?

在蜘蛛池和站点运营的日常排查里,经常會遇到一種情况:入口頁放了不少目标連結,但目标 URL 迟迟没有抓取记錄。顺着排查下去,發現目标 URL 的 robots.txt 里寫了一條 Disallow。于是問题来了——入口頁里的連結還能不能被搜尋蜘蛛發現?下面把這件事拆開讲。

發現連結和抓取頁面是两件事

搜尋蜘蛛處理一個 URL 通常分两步:先從入口頁、sitemap 或其他来源發現這個 URL,把它放進待抓取队列;然後在真正抓取时才去讀取 robots.txt,决定允不允许取回内容。robots.txt 管的是第二步,不是第一步。

也就是说,目标 URL 被 Disallow 之後,搜尋蜘蛛依然可能在入口頁里看见它,但通常不會再正常抓取頁面内容。這两件事不要混在一起判断,否則很容易在入口頁上做無意义的調整。

robots.txt 屏蔽之後,常见的结果

  • 連結能被發現,URL 可能出現在索引里,但缺少标题和摘要,或者只顯示一條說明無法提供描述的提示;
  • 不會讀取頁面正文,也就不會通過這個頁面繼續發現里面的新連結;
  • 如果之前已经抓取並收錄過,内容可能逐渐從索引里淡出,但不同搜尋引擎的處理节奏不一样;
  • 屏蔽不等于刪除,也不等于永久不出現,搜尋引擎調整規則或你改動 robots.txt 後,表現會變化。

這几種结果都不是绝對的,不同搜尋引擎、不同時間点的處理會有差异,不要把它当成一個可以精确開關的功能。

几種容易出問题的 robots.txt 寫法

路径寫得太宽或太窄

Disallow: / 會挡掉整站;Disallow: /news 則會同时挡掉 /news、/news/1、/newsletter 這類前缀相同的路径。想只挡某一類目錄,注意末尾斜杠和路径层級,別让前缀匹配誤伤到別的文件。

通配符和結束符用错

通配符和結束符的语义在主流搜尋引擎里基本一致,但滥用容易誤伤。比如想挡參數頁却寫成宽泛的匹配,结果把带問号的正常頁面也一起挡了,排查时很难第一時間想到。

robots.txt 文件本身返回異常

如果 robots.txt 返回 5xx,搜尋蜘蛛通常會保守處理,可能暫停對该站点的抓取;返回 404 則一般视為没有限制。用服務器日誌或抓取測試工具確認它返回的是 200,且内容就是你以為的那一份。缓存、CDN 和反向代理也可能让它返回一份舊版本。

想控制收錄,noindex 往往更合适

如果你的目的是「不希望這個頁面出現在搜尋结果里」,而不是「节约抓取资源」,那 robots.txt 並不是首選。

  1. 先允许搜尋蜘蛛抓取頁面;
  2. 在頁面 head 里加上 noindex 的 meta robots 标簽,或返回對應的 X-Robots-Tag 响應头;
  3. 用抓取測試工具確認搜尋蜘蛛看到的是 noindex,而不是被 Disallow 挡在外面;
  4. 等頁面從索引中消失後,再考虑是否需要額外處理。

原因很简單:被 Disallow 的頁面,搜尋蜘蛛讀不到 noindex,也就無法確認你的意图,收錄狀態可能長期保持原样。

蜘蛛池运营里更稳妥的几條习惯

  • 目标 URL 預設允许抓取,除非确有敏感目錄需要屏蔽;
  • 入口頁和目标 URL 的 robots.txt 分開检查,不要只看一邊;
  • 新增目标 URL 後,用抓取測試工具或服務器日誌確認搜尋蜘蛛是否真的来過;
  • 不要把 robots.txt 当作清理收錄的工具,它更像是抓取范围的控制阀。
提醒:robots.txt 是一種抓取约定,不是安全机制,也不保證任何索引结果。真正的收錄還會受到内容质量、連結结构、站点整体表現等多方面影响。

回到最初的問题:入口頁里的連結在被屏蔽的情况下,仍有可能被發現,但後續的抓取和收錄會受限。如果你希望目标 URL 正常參與抓取,先把 robots.txt 里的誤屏蔽處理掉,再去看入口頁和連結结构,排查顺序會清楚很多。