蜘蛛池知识

蜘蛛池入口页的 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 只解决第一道。