常见问题

投放蜘蛛池前,robots 设置里最容易挡住搜索蜘蛛的几处

很多站点投放蜘蛛池后发现搜索蜘蛛没来,追查日志才发现是 robots.txt 或页面级 robots 把请求挡在门外。本文梳理常见 robots 配置误区,包括 User-agent 写错、Disallow 范围过大、屏蔽 CSS/JS、meta noindex 和 X-Robots-Tag,并给出投放前的检查清单和验证方法。

常见问题

投放蜘蛛池前,robots 设置里最容易挡住搜索蜘蛛的几处

做蜘蛛池投放时,很多人把注意力放在入口页数量、URL 清单和抓取频次上,却忽略了一个更前置的问题:搜索蜘蛛能不能进入你的站点。如果 robots.txt 或页面级 robots 设置把蜘蛛挡在门外,入口页再多、URL 提交再频繁,抓取也不会发生。

robots.txt 里最常见的三类误封

1. User-agent 写错或 Disallow 范围过大

有些站点为了屏蔽某个采集器,直接写了 Disallow: /,或者把 User-agent 写成不完整名称,结果搜索蜘蛛也被一起挡住。还有一种情况是规则太宽,例如 Disallow: /*?*,把带参数的入口页全部拦截,而蜘蛛池投放的目标 URL 往往就带参数。

投放前建议逐条看 robots.txt,确认没有针对 Googlebot、Bingbot、Baiduspider 等常用搜索蜘蛛的封禁规则。

2. 屏蔽了 CSS、JS 等静态资源

如果 robots.txt 里禁止抓取 CSS、JS,搜索蜘蛛可能无法渲染页面。对于依赖 JS 输出链接的入口页,后果更明显:蜘蛛能进来,却看不到目标 URL。投放前至少确认常用的样式和脚本目录没有被封。

3. sitemap 地址写错或指向旧文件

robots.txt 中的 Sitemap 指令如果填错,或者指向已经废弃的 sitemap,会削弱 URL 发现效率。蜘蛛池可以作为补充,但不能替代正确的 sitemap 声明。投放期间最好保持 sitemap 与站内实际 URL 同步更新。

页面级 robots:meta 标签和 HTTP 头

robots.txt 管的是“能不能抓”,页面级 robots 管的是“抓到之后怎么处理”。常见组合有:

  • noindex:页面可以被抓,但不会进入索引。入口页如果误加 noindex,蜘蛛可能仍会跟进链接,但入口页本身不会被收录。
  • nofollow:不影响当前页抓取,但会提示搜索蜘蛛不要追踪页面上的链接。目标 URL 如果只靠这个入口页链接,跟进概率会降低。
  • none:相当于 noindex 加 nofollow,通常是彻底放弃这个页面。

除了 meta 标签,还要留意 HTTP 响应头里的 X-Robots-Tag。有些服务器、CDN 或安全策略会统一加上这个头,页面源码里看不出来,但蜘蛛能读到。投放前可以用抓取工具查看响应头,确认没有意外的 noindex 或 nofollow。

投放前的 robots 检查清单

  1. 打开 robots.txt,确认没有 Disallow: / 或针对搜索蜘蛛的全站封禁。
  2. 检查 User-agent 拼写,避免规则误伤正常搜索蜘蛛。
  3. 确认 CSS、JS、图片等渲染资源没有被封禁。
  4. 核对 Sitemap 地址是否能正常访问,内容是否为最新。
  5. 抽查入口页和目标页的 meta robots,确认没有误加 noindex、nofollow。
  6. 查看 HTTP 响应头,确认没有 X-Robots-Tag 冲突。
  7. 用抓取诊断工具或服务器日志验证搜索蜘蛛的返回状态。

验证时看什么

配置改完后,不要只看 robots.txt 文本。更可靠的是看服务器日志里搜索蜘蛛的请求:它有没有请求入口页,返回的是 200 还是 403、404,有没有继续请求目标 URL。如果日志里只有少数请求,或者状态码异常,说明问题可能不在投放量,而在访问权限或服务器响应。

robots 设置是抓取的前置条件,不是收录的保证。解除误封之后,搜索蜘蛛是否抓取、是否收录,仍取决于页面质量、站点整体情况和抓取预算。

蜘蛛池、sitemap、内链和主动提交都属于 URL 发现手段,但它们都建立在“搜索蜘蛛能正常访问”的基础上。投放前花几分钟检查 robots,比事后反复加量更有效。