常见問题

蜘蛛池入口頁的 robots.txt 该怎么寫,哪些規則會挡住搜尋蜘蛛

入口頁能不能被搜尋蜘蛛訪問,第一步看 robots.txt。本文梳理 Disallow 全站、通配符誤伤、crawl-delay 過大、頁面級 noindex 與 nofollow 等常见寫法,给出相對稳妥的配置思路和自查驗證方法,帮助运营和編輯快速判断入口頁是否已被規則挡住。

常见問题

蜘蛛池入口頁的 robots.txt 该怎么寫,哪些規則會挡住搜尋蜘蛛

入口頁的作用是让搜尋蜘蛛顺着連結走到目标 URL,而 robots.txt 决定了蜘蛛能不能訪問入口頁本身。很多站点在配置里出現一個小失誤,入口頁在抓取队列里就被整体跳過,這时再讨论連結结构、锚文本都没有意义。下面把常见寫法和判断方法整理一遍。

robots.txt 管的是“能不能抓”,不是“要不要收錄”

robots.txt 属于抓取层面的约定,寫着 Disallow 的目錄,搜尋蜘蛛通常不會去請求。它和索引层面的 noindex 是两件事:被 Disallow 挡住後,蜘蛛看不到頁面里的 noindex,索引里的舊结果可能長期保留;反過来,只有允许抓取的頁面,頁面上的 noindex 才會被讀到。入口頁一般希望被正常抓取,所以要保證 robots.txt 没有把入口頁路径排除掉。

几種容易挡住搜尋蜘蛛的寫法

全站 Disallow: /

從測試环境複製過来的配置忘了改,是最常见的情况。此时入口頁返回什么内容都無所谓,蜘蛛根本不會来。

通配符誤伤

比如為了屏蔽某個參數寫 Disallow: /*?,结果入口頁上带參數的連結路径被一並挡住;或者用 Disallow: /p/ 想排除某個目錄,却把 /product/ 開头的一批入口頁誤伤。寫之前建议把入口頁的真實路径列出来逐個比對。

crawl-delay 寫得過大

部分蜘蛛會參考 crawl-delay。寫成 60、120 之類的大數值,等于把入口頁的訪問間隔拉得很長,抓取次數自然上不去。除非服務器确實扛不住,否則不建议在入口頁站点上寫這條。

robots.txt 本身返回 5xx 或超时

蜘蛛拿不到規則时,保守的做法是暫停抓取或降低频次。入口頁站点最好让 robots.txt 走静態文件,避免被後端逻辑拖慢。

頁面級寫法:robots meta 與 X-Robots-Tag

入口頁 HTML 里的 nofollow 會让蜘蛛讀到連結但不顺着走,這基本等于關掉了入口頁的主要功能。noindex 則是让入口頁自身不進索引,多數情况下入口頁並不介意被索引;如果你希望它保持干净,可以加 noindex 同时保留 follow,让連結仍然可以被跟踪。

HTTP 响應头里的 X-Robots-Tag 作用類似,常见的坑是 CDN 或反向代理统一加了一條 noindex 头,而运维與編輯互不知情。排查时可以先只看响應头,不必急着怀疑頁面内容。

相對稳妥的配置思路

  1. 入口頁所在目錄在 robots.txt 里保持允许抓取。
  2. 只屏蔽确實無價值的路径,例如後台、站内搜尋结果頁、統計脚本目錄。
  3. 需要限制連結跟踪时用 nofollow 或頁面級規則,而不是整段砍掉目錄。
  4. 把目标 URL 的提交入口寫在 robots.txt 里,便于蜘蛛顺着找到。
  5. 改動前後各留一份记錄,出問题时能快速回滚。

改完之後怎么確認

  • 用搜尋引擎官方的 robots.txt 測試工具,填入入口頁完整 URL,看结果是允许還是被阻止。
  • 直接訪問 robots.txt,確認返回 200、内容是最新版本,而不是缓存里的舊版本。
  • 看入口頁日誌,確認蜘蛛 UA 的請求狀態碼是 200,而不是 403、404 或 5xx。
  • 观察一段時間内入口頁的抓取次數與目标 URL 的被抓记錄,判断改動是否起了作用。
robots.txt 不是安全措施,也不是收錄開關。它的作用是让蜘蛛把抓取预算放在你希望它看的地方;入口頁被誤封,後面的調整都無從谈起。

简單说,入口頁的 robots 配置只要做到“允许抓取、別誤伤、別加超長延迟”,剩下的問题就回到連結结构和内容本身了。規則不必频繁改動,每次改完做一次驗證,比反复折腾配置文件更有效。