入口頁的作用是让搜尋蜘蛛顺着連結走到目标 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 头,而运维與編輯互不知情。排查时可以先只看响應头,不必急着怀疑頁面内容。
相對稳妥的配置思路
- 入口頁所在目錄在 robots.txt 里保持允许抓取。
- 只屏蔽确實無價值的路径,例如後台、站内搜尋结果頁、統計脚本目錄。
- 需要限制連結跟踪时用 nofollow 或頁面級規則,而不是整段砍掉目錄。
- 把目标 URL 的提交入口寫在 robots.txt 里,便于蜘蛛顺着找到。
- 改動前後各留一份记錄,出問题时能快速回滚。
改完之後怎么確認
- 用搜尋引擎官方的 robots.txt 測試工具,填入入口頁完整 URL,看结果是允许還是被阻止。
- 直接訪問 robots.txt,確認返回 200、内容是最新版本,而不是缓存里的舊版本。
- 看入口頁日誌,確認蜘蛛 UA 的請求狀態碼是 200,而不是 403、404 或 5xx。
- 观察一段時間内入口頁的抓取次數與目标 URL 的被抓记錄,判断改動是否起了作用。
robots.txt 不是安全措施,也不是收錄開關。它的作用是让蜘蛛把抓取预算放在你希望它看的地方;入口頁被誤封,後面的調整都無從谈起。
简單说,入口頁的 robots 配置只要做到“允许抓取、別誤伤、別加超長延迟”,剩下的問题就回到連結结构和内容本身了。規則不必频繁改動,每次改完做一次驗證,比反复折腾配置文件更有效。