蜘蛛池知识

蜘蛛池入口頁的 robots 控制:放行、屏蔽與誤伤排查

入口頁能不能被抓,通常不只取决于連結本身,還取决于 robots 相關配置。本文從 robots.txt、meta robots 和 X-Robots-Tag 的分工讲起,說明哪些入口頁该放行、哪些该屏蔽,以及常见的誤伤情况和排查顺序,帮助减少無效抓取。

蜘蛛池知识

蜘蛛池入口頁的 robots 控制:放行、屏蔽與誤伤排查

做蜘蛛池时,很多人把注意力放在連結怎么放、入口頁怎么生成,却容易忽略一個更前置的問题:入口頁本身有没有被 robots 規則挡住。連結铺得再多,如果抓取入口在协议层就被拒绝,後面的抓取、回訪都無從谈起。反過来,如果该屏蔽的頁面没有屏蔽,又會把有限的抓取预算引向無意义的地址。

robots.txt 與 meta robots 的分工

這两者都能影响抓取,但作用位置不同,混用容易出現预期外的结果。

  • robots.txt:放在域名根目錄,控制蜘蛛能不能請求某個路径。它是訪問前的拦截,被 Disallow 的 URL 通常连抓取都不會發生。
  • meta robots:寫在 HTML 的 head 里,頁面已经被抓取後才生效,主要影响索引和連結追踪,例如 noindex、nofollow。
  • X-Robots-Tag:通過 HTTP 响應头传递,适合非 HTML 文件,比如 PDF、图片、JS、CSS,作用類似 meta robots。

简單说,robots.txt 管能不能来,meta robots 和 X-Robots-Tag 管来了之後怎么處理。入口頁大多是需要被抓取的,所以正常情况下應该保持可訪問;需要控制的往往是那些重复、临时或纯參數地址。

入口頁该放行還是屏蔽

判断标准不是這個頁面有没有用,而是它被抓取後能不能带来有效路径。可以參考下面几類:

  • 需要放行:承载目标頁連結的入口頁、分頁列表、标簽聚合頁、Sitemap 中列出的地址。
  • 考虑屏蔽:搜尋结果頁、篩選排序參數组合、會话 ID 地址、測試环境残留路径、大量重复的打印頁。
  • 谨慎處理:带 noindex 的入口頁。頁面被 noindex 後,如果蜘蛛仍會抓取,連結可能繼續被發現;但如果同时被 robots.txt 屏蔽,蜘蛛拿不到 noindex,反而可能以其他方式收錄。
robots.txt 屏蔽和 noindex 不要同时用在一個你希望從索引中移除的地址上,這两條規則會互相抵消。

常见的誤伤场景

下面几種情况在實际操作中出現频率很高,排查时可以優先看。

  1. 規則寫法太宽:例如用通配符一刀切掉所有带參數的地址,结果分頁、篩選頁目标連結的入口也被挡。
  2. 子域或目錄規則串了:入口頁放在子域或子目錄,robots.txt 只對目前域名根生效,跨域規則不會自動繼承。
  3. 响應头里藏了 noindex:有些中間件或缓存层預設给某些路径加了 noindex 响應头,頁面看着正常,實际不會被索引。
  4. 屏蔽了 CSS 或 JS:如果入口頁依赖前端渲染出連結,屏蔽资源文件會让蜘蛛看到的是不完整頁面。
  5. 大小寫與结尾斜杠不一致:robots.txt 的路径匹配對大小寫敏感,寫错一個字符就可能放行本该屏蔽的地址,或挡住本该放行的地址。

排查顺序與使用建议

發現入口頁抓取異常时,建议按下面顺序核對,避免一上来就改連結策略。

  1. 直接訪問域名根目錄的 robots.txt,確認規則是否與预期一致,特別注意通配符和结尾符号。
  2. 用抓取工具或日誌確認蜘蛛實际請求的 URL,看是否與配置的入口地址一致。
  3. 检查响應头里有没有 X-Robots-Tag,再看 HTML 的 meta robots。
  4. 確認入口頁依赖的静態资源没有被規則挡住。
  5. 如果是 CDN 或反向代理,注意缓存是否把舊的响應头一起缓存了,改完規則後需要刷新。

最後提醒一点:robots 控制解决的是抓不抓、索引不索引的問题,它不會直接决定抓取量多少,也不影响頁面本身的质量。入口頁该放行的放行,该收敛的收敛,把規則寫清楚,比反复堆連結更省事。