蜘蛛池知识

蜘蛛池入口页的 robots 指令:抓取层与索引层怎么配合

入口页在蜘蛛池里主要承担引路作用,但 robots.txt、meta robots 与 X-Robots-Tag 三条控制线经常被写冲突:本意是屏蔽索引,结果连抓取也一起掐掉。本文拆开抓取层与索引层的差别,说明常见错配、noindex 与 nofollow 的取舍、crawl-delay 的实际作用,以及上线前的检查步骤。

蜘蛛池知识

蜘蛛池入口页的 robots 指令:抓取层与索引层怎么配合

入口页在蜘蛛池里的角色比较特殊:它的主要任务是让蜘蛛进来、顺着链接走到目标页,而它自己往往并不需要被索引。正因为这个定位,robots.txt、meta robots 和 X-Robots-Tag 这三条控制线很容易被写冲突——想屏蔽索引,结果把抓取也一起掐掉了。

抓取和索引是两件独立的事

很多配置问题的根源,是把“蜘蛛能不能来”和“页面能不能被收录”当成了同一件事。实际上:

  • 抓取决定蜘蛛能不能把页面内容取回去,robots.txt 主要作用在这一层。
  • 索引决定取回内容后要不要建库、要不要在搜索结果里出现,meta robots 与 X-Robots-Tag 作用在这一层。
  • 链接传递是另一条线,nofollow 类指令影响的是链接信号的传递,而不是抓取本身。

把这三层混在一起写,就会出现“蜘蛛没来过,页面却被收录了”这种看起来矛盾、其实很常见的现象。

三种指令各自管什么

  • robots.txt:放在域名根目录,按路径屏蔽抓取。它是抓取层的开关,一旦屏蔽,蜘蛛不会再请求该路径下的 URL,也就读不到页面里的任何 meta 指令。
  • meta robots:写在页面 head 里,需要蜘蛛把页面抓回去才生效。常见值是 noindex、nofollow、noarchive、nosnippet 等组合。
  • X-Robots-Tag:写在 HTTP 响应头里,适合非 HTML 文件,也可以在服务器层给某个目录统一批量加上,不用改模板。

如果同一页面上多条指令冲突,一般以更严格的那条为准。实际使用中不要指望靠“哪个优先”来兜底,配置保持一致比研究优先级更省事。

入口页最容易踩的坑

用 robots.txt 屏蔽入口页目录,本意是“别收录”,结果是蜘蛛连页面都读不到,URL 反而可能因为外链被收录成无摘要结果。

这是最典型的错配:disallow 挡住了抓取,meta noindex 就没机会被读到。正确的顺序应该是先允许抓取,再用 noindex 控制索引。反过来做,控制就落空了。

第二类问题是模板复制。入口页往往批量生成,robots 相关的 meta 如果写在公共模板里,改一个地方就影响全站。上线前要确认这些页面是不是和主站共用 head 模板,别把主站的索引状态一起改掉。

入口页的几种配置取向

没有统一答案,取决于你把入口页当成什么用:

  1. 纯跳板:允许抓取、加 noindex、链接保持可跟随。蜘蛛能进来、能顺着走,入口页自己不占索引位。
  2. 需要承接少量流量:允许抓取、不加 noindex、内容做扎实一些。但这类页面多了容易同质化,反而拉低整体观感。
  3. 过渡期或测试期:先用 noindex 观察抓取是否正常,稳定后再决定是否放开索引,避免一上线就产生大量低质索引。

无论选哪种,不要用 robots.txt 去关掉一个你希望蜘蛛访问的页面,这条底线比任何技巧都重要。

noindex 和 nofollow 要不要一起用

两者经常被捆绑,但作用完全不同。noindex 管的是这个页面自己不被收录,nofollow 管的是这个页面上的链接不传递信号。入口页的链接是指向目标页的,如果加了 nofollow,蜘蛛仍然可能爬过去做 URL 发现,但链接本身的意义会被削弱。

一般思路是:入口页自身 noindex 就够了,指向目标页的链接保持正常跟随,让爬取路径保持完整。除非入口页上还挂着一些你完全不想让蜘蛛碰的链接,再单独对这些链接加 nofollow,而不是整页一刀切。

crawl-delay 别当主力

crawl-delay 写在 robots.txt 里,只有部分搜索引擎支持,主流引擎基本已经不参考它。想控制抓取节奏,更实际的做法是:

  • 从响应速度和日志入手,响应慢自然会被降低抓取频率;
  • 用返回码表达状态,临时过载返回 503,而不是让请求一直超时;
  • 减少无意义 URL 的数量,别让蜘蛛把时间耗在重复参数页上。

上线前的检查清单

  1. 用搜索引擎官方的 robots.txt 测试工具确认规则没写反、没误伤目标路径。
  2. 确认入口页本身返回 200,能正常被抓取,noindex 写在可被解析的位置。
  3. 确认改的是入口页模板,没有连带改到主站或其他重要目录。
  4. 观察日志里是否真的出现对入口页的抓取请求,以及后续是否对目标页发起请求。
  5. robots.txt 改动后给它一点时间生效,蜘蛛重新读取需要周期,别当天就下结论。

总的来说,入口页的 robots 配置不需要多复杂,关键是别自相矛盾:想让它被爬,就别在抓取层拦;不想让它被索引,就在索引层挡。理清这条线,比反复调参数更有效。任何控制手段都只是提高被抓取和被理解的概率,并不构成收录或排名的保证。