蜘蛛池知识

蜘蛛池入口页的 robots 与 meta 设置:哪些该放开,哪些该收紧

蜘蛛池里 robots.txt 和 meta robots 常被当成“收录开关”,其实它们只影响抓取行为与索引指令的传递。本文拆解三层控制方式的差别、入口页与跳转层的常见配置组合,以及 Disallow 与 noindex 混用、CDN 缓存旧规则等容易踩的坑,并给出一套按日志验证的排查顺序。

蜘蛛池知识

蜘蛛池入口页的 robots 与 meta 设置:哪些该放开,哪些该收紧

在蜘蛛池里,robots.txt 和 meta robots 经常被当成“收录开关”来用,实际上它们控制的是抓取行为和索引指令的传递,并不承诺任何收录结果。配置得当,蜘蛛能顺着入口页走到目标链接;配置不当,要么蜘蛛进不来,要么入口页被当成无价值页面跳过。

一、先分清三层控制

  • robots.txt:站点级,按路径和 User-agent 控制“能不能抓”,放在域名根目录。
  • meta robots:页面级,写在 HTML 的 head 里,控制“抓到之后怎么处理”,比如 noindex、nofollow。
  • X-Robots-Tag:HTTP 响应头级,适合非 HTML 资源,也可以在服务器或 CDN 层统一加。

三者不是简单的“谁大谁小”关系:robots.txt 决定蜘蛛是否发起抓取,抓不到页面,里面的 meta 也就无从读取。这一点决定了后面很多坑。

二、入口页该放开还是收紧

入口页的价值在于被发现、被爬取,所以默认应该是放开抓取。如果入口页本身就被 Disallow,蜘蛛连页面都取不到,入口也就失去了意义。真正需要收紧的通常是这几类:

  • 与目标站内容重复、不希望单独出现在结果里的页面,可以用 meta noindex,但要让蜘蛛仍然抓得到。
  • 跳转层或中转页,可以用 noindex 配合放开抓取,让蜘蛛走完链路但不保留这个页面。
  • 测试页、临时页、已经被大量采集污染的页面,可以直接关掉抓取或干脆下线。

三、几种常见配置组合

下面这些组合在实际操作中出现频率较高,可以按用途对照:

  • 入口页要被抓、也要被索引:robots.txt 放开对应路径,页面不加 noindex。
  • 入口页要被抓、不要被索引:robots.txt 放开,页面加 meta noindex,follow,让链接关系继续传递。
  • 废弃或敏感路径:robots.txt 里 Disallow,同时页面加 noindex,两者叠加,避免 URL 被以“仅有地址”的形式保留。
  • 非 HTML 资源:用 X-Robots-Tag 控制,而不是硬塞 meta。
只写 Disallow、不加 noindex,是常见误解:蜘蛛抓不到页面内容,自然看不到页面里的 noindex,反而可能仅凭外链把 URL 留在索引中。要做到“不抓也不留”,两条一起用更稳妥。

四、容易踩的几个坑

  • robots.txt 被 CDN 或 WAF 缓存:改了规则,蜘蛛拿到的还是旧版本。排查时用不同 UA 直接请求一次,比对返回内容。
  • meta 靠 JS 注入:如果蜘蛛不执行脚本,这条指令等于不存在,关键指令尽量放在服务端输出的 HTML 里。
  • 移动端与 PC 端规则不一致:两套模板输出不同的 meta,容易造成判断混乱,配置时最好统一来源。
  • canonical 指向目标站:入口页的 canonical 指到目标页,等于主动声明“这不是正式页面”,用不用要结合目的想清楚。
  • robots.txt 路径写错:一条 Disallow: / 就可能把整个池子关掉,改规则前先备份。

五、改完之后的排查顺序

  1. 用命令行或抓取工具,以搜索引擎 UA 请求 robots.txt,确认返回的是最新规则、状态码为 200。
  2. 抽取几个入口页样例,检查 HTTP 状态码、head 里的 meta 和响应头里的 X-Robots-Tag 是否一致。
  3. 对照服务器日志里的蜘蛛记录,看目标路径的抓取量在改动后有没有明显变化。
  4. 查看索引状态时,注意区分“没抓”和“抓了没留”,两者的处理方向并不相同。

最后提醒一点:这些设置只是抓取与索引指令的传递方式,替代不了内容质量、链接结构和服务器稳定性。建议每次只改一小部分入口,观察一到两周的日志,再决定是否扩大到整个蜘蛛池。