蜘蛛池知识

蜘蛛池入口頁的 robots 配置:哪些寫法會把蜘蛛挡在门外

robots.txt 和 meta robots 是蜘蛛池入口頁最容易被忽略的配置項。本文梳理两者的分工、入口頁常见的五類誤配(整站 Disallow、路径前缀過宽、Allow 顺序、noindex 與 nofollow 混用、三處規則打架),並给出一套從 robots.txt 到响應头的排查顺序與日常维護建议。

蜘蛛池知识

蜘蛛池入口頁的 robots 配置:哪些寫法會把蜘蛛挡在门外

在蜘蛛池的日常维護里,robots.txt 和 meta robots 属于平时没人看、出事很难查的一類配置。入口頁能不能被抓,往往不是内容或連結的問题,而是某一條屏蔽規則寫错了。把它單獨拿出来理一遍,能省下不少排查時間。

两套規則的分工

robots.txt 是放在根目錄下的文本文件,作用范围是整個站点,蜘蛛在抓取前會先讀取它;meta robots 寫在頁面的 head 里,作用范围是目前頁面,蜘蛛抓到頁面之後才能看到。两者不冲突时各自生效,冲突时一般以更嚴格的一條為准。

入口頁常见的几種誤配

1. 整站 Disallow 忘了删

測試环境留下的 Disallow: / 直接上线,是最常见的一種。表現是日誌里入口頁訪問量骤降甚至归零,而服務器本身没有任何異常。

2. 路径前缀寫得太宽

比如想屏蔽 /tmp/,寫成 Disallow: /t,會连带挡掉所有以 t 開头的目錄。規則里少一個斜杠、少一個分隔符,影响范围就可能扩大到好几個栏目。

3. Allow 與 Disallow 顺序反了

同一份文件里同时存在 Allow 和 Disallow 时,部分蜘蛛按最長匹配决定,部分按先出現的規則决定。想精确放行某個子目錄,最好把 Allow 寫得更具体,並在日誌里確認實际结果。

4. noindex 與 nofollow 混用

noindex 是不让頁面進索引,nofollow 是不跟踪頁面上的連結。入口頁如果加了 nofollow,頁面里的内鏈等于白發:蜘蛛仍然抓到了頁面,但走不到目标頁。這两個词只差几個字母,效果完全不同。

5. 三處規則打架

robots.txt、meta robots 和 HTTP 响應头里的 X-Robots-Tag 可以同时存在。三者不一致时,蜘蛛通常按更嚴格的那條执行。排查时要把三處都拉出来對比,只看其中一處很容易得出错誤结论。

排查顺序建议

  1. 用蜘蛛 UA 抓一次 robots.txt,確認返回的是 200,而不是 404 或 403。
  2. 检查是否存在 Disallow: / 或针對目标路径的屏蔽規則。
  3. 抓一個入口頁源碼,检查 meta robots 的具体内容。
  4. 看响應头里有没有 X-Robots-Tag 字段。
  5. 對照訪問日誌,確認蜘蛛最後一次成功抓取的時間点。

几條實用建议

  • robots.txt 保持简單,只寫必要的屏蔽規則,不要当成權限管理工具。
  • 入口頁預設不加 noindex,除非這一批明确要下线。
  • 規則變更後记錄時間和内容,方便和日誌波動對上。
  • 入口頁數量多时,抽几個不同目錄做人工驗證,不必每個都查。
robots 相關的問题往往不是蜘蛛不来了,而是蜘蛛来了但被規則挡住了。先把這两件事分開,排查方向就不會跑偏。

最後提醒一点:放開屏蔽只是恢复抓取的前提,並不代表頁面會被收錄。抓取、去重、质量判断是後面几道關,robots 只解决第一道。