蜘蛛池知识

蜘蛛池入口頁的 robots 配置:哪些路径该放行,哪些该屏蔽

robots.txt 和 meta robots 是蜘蛛池里最容易被随手寫坏的一层配置。本文区分几種 robots 指令的作用范围,說明入口頁哪些路径该放行、哪些该屏蔽,nofollow 什么时候用,並附一份上线前检查清單,帮蜘蛛少走冤枉路。

蜘蛛池知识

蜘蛛池入口頁的 robots 配置:哪些路径该放行,哪些该屏蔽

很多人把 robots 当成一句随手寫的礼貌用语,在蜘蛛池里複製一段就上线了。實际上,入口頁的抓取路径是否顺畅、抓取预算花在哪里,都會被這几行配置直接影响。寫错的地方不用多,一两個 disallow 就能把蜘蛛挡在门外,或者反過来把不该暴露的目錄全部摊開。

robots.txt 管的是能不能爬,不是能不能收錄

robots.txt 放在域名根目錄,用来告诉爬虫哪些路径可以抓取。它只约束抓取行為,並不决定收錄结果:被 Disallow 的 URL 仍可能因為外部連結出現在索引里,只是没有内容摘要;而 Allow 也不代表一定會被收錄。這两件事经常被混為一谈,于是有人用 Disallow 去控制收錄,结果两头落空。

入口頁的诉求是让蜘蛛顺畅通過,所以 robots.txt 通常保持简單:允许全站抓取,只挡掉後台、日誌、接口這類非内容路径。不要為了所谓的整洁去 disallow 入口頁本身,那等于自己把鏈路剪断。

meta robots 與 X-Robots-Tag 的分工

頁面級的 noindex、nofollow 寫在 HTML 的 head 里,作用于單個頁面。非 HTML 资源,比如 PDF、图片、接口返回的 JSON,用响應头 X-Robots-Tag 更合适,因為這類文件里塞不進 meta 标簽。两者蜘蛛都能讀到,但覆盖范围不同,配置时要分清對象。

哪些该放行

  • 入口頁、列表頁、聚合頁,這些是 URL 發現的主干
  • 承载實质内容的目标頁
  • 分頁連結,前提是分頁里确實带着可繼續爬取的詳情連結
  • sitemap 文件與必要的静態资源

哪些该屏蔽

  • 後台、測試目錄、临时环境、备份文件
  • 带排序、篩選參數、能生成大量近似 URL 的頁面
  • 站内搜尋结果頁與搜尋參數
  • 統計脚本、跳轉脚本所在的路径
  • 與已收錄頁面高度重复的副本頁

最後一條要說明一下:重复内容既可以屏蔽,也可以用 canonical 處理,選哪種取决于你是否希望這些 URL 被索引。拿不准时,先屏蔽更保險, spiders 的注意力是有限的。

nofollow 什么时候用

頁面里如果有大量不可控的外鏈,比如评论区、采集来的正文,加上 rel="nofollow" 能减少蜘蛛注意力被带走的情况。但入口頁之間、入口頁到目标頁的關键連結不要加 nofollow,否則整條 URL 發現鏈路會被削弱。另外,nofollow 如今更多是提示而非硬性指令,別指望它百分百管用。

容易踩的坑

  1. 一邊用 Disallow 屏蔽頁面,一邊期待它被收錄,指令自相矛盾
  2. 上线时直接複製主站的 robots.txt,把整個入口目錄挡掉
  3. 通配符規則寫得不嚴谨,该放行的路径被誤伤
  4. 測試环境没有 robots.txt,蜘蛛誤抓一堆临时頁面
  5. meta noindex 和 canonical 同时指回自己,指令互相打架

上线前的检查清單

  1. 用 robots.txt 測試工具驗證關键路径是 Allow
  2. 抽查入口頁的 head,確認没有意外出現的 noindex
  3. 確認 X-Robots-Tag 没有被誤加到普通 HTML 頁面
  4. 翻服務器日誌,看蜘蛛是否真的抓到了入口頁和目标頁
  5. 改動後观察几天抓取量變化,不要一次性大改

還有一点值得提醒:robots 只是抓取层的開關,它既不解决内容质量問题,也不會让排名變好。把放行和屏蔽的邊界理清楚,让蜘蛛少走冤枉路,剩下的事仍然要靠内容本身和正常的运营节奏。