常见问题

蜘蛛池与URL发现:目标URL被 robots.txt 或 noindex 挡住,投放前该查什么

投放前只看入口页是否正常,往往不够。目标URL如果被 robots.txt 禁止抓取,或页面加了 noindex,投放很难带来预期变化。本文区分抓取限制与索引限制,给出投放前的检查顺序,并说明日志上会呈现什么现象、常见误区有哪些。

常见问题

蜘蛛池与URL发现:目标URL被 robots.txt 或 noindex 挡住,投放前该查什么

做 URL 发现投放之前,多数人会检查入口页是否正常、链接是否可点,却很少回头确认一件事:目标 URL 本身是否允许被抓取、被索引。如果站点在 robots.txt 或页面层面已经做了屏蔽,投放再积极也很难得到想要的结果。

先分清两种限制:不让抓 和 不让索引

这两件事经常被混为一谈,但结果完全不同。

  • 不让抓取:robots.txt 里的 Disallow 规则、服务器层面的抓取限速、WAF 拦截等,会让搜索蜘蛛连请求都不发出,日志里通常看不到这条 URL 的访问记录。
  • 不让索引:页面的 meta robots noindex、HTTP 响应头里的 X-Robots-Tag,允许抓取但不允许进索引。抓取日志里可能有记录,搜索结果里却不会出现。

投放解决的是“让蜘蛛知道这个 URL 存在”,它改变不了站点自己设下的规则。规则没解除,投放能起的作用就很有限。

抓取被屏蔽时,日志会是什么样

如果目标路径在 robots.txt 里被 Disallow,常见现象是:入口页被抓了,蜘蛛顺着链接找到了目标 URL,但不会真正请求它。日志里出现的是入口页的记录,目标 URL 那一行始终空着。

这时候不要急着加大投放量或换入口页,先确认是不是 robots 规则在起作用。用搜索引擎官方提供的 robots.txt 测试工具,直接输入目标 URL 验证一下,比翻文档快得多。

索引被屏蔽时,抓取可能正常但不收录

noindex 的情况更隐蔽:蜘蛛会来抓,服务器日志看着很正常,甚至抓取频次不低,但搜索结果里就是没有。原因往往不在投放,而在页面自己的指令。

需要留意几处容易漏掉的地方:

  • 页面 HTML 里的 meta robots 标签;
  • HTTP 响应头中的 X-Robots-Tag,尤其是 PDF、图片等非 HTML 文件常用这种方式;
  • CDN 或反向代理层统一加上的响应头或 robots 规则;
  • canonical 指向了另一个 URL,导致当前页面被当作重复版本处理。

投放前的检查顺序

  1. 用 robots 测试工具验证目标 URL 是否可抓取,不要只看首页;
  2. 查看目标页面的 meta robots 与响应头,确认没有 noindex;
  3. 确认目标 URL 返回的是 200,而不是 301、302、403 或 404;
  4. 确认不是登录后才可见的页面,或纯靠 JS 渲染且未做预渲染的内容;
  5. 确认 canonical 指向自己,而不是指向别的页面。

这几步做完,再决定要不要投放,能省掉很多“投了没反应”的困惑。

两个常见误区

  • 以为蜘蛛池能绕过 robots.txt。遵守 robots 规则是主流搜索蜘蛛的基本行为,投放不会让它突破站点自身的设置。
  • 先投放,等发现没效果再改设置。屏蔽状态下投放,除了浪费资源,还会让你对效果产生错误判断。顺序应该是先放行,再投放。
投放解决的是“如何被发现”,站点设置决定的是“是否允许被访问”。后者是前提,不是可选项。

如果确实需要屏蔽,又想让部分页面被发现

比较稳妥的做法是缩小屏蔽范围:只对确实不需要公开的目录做 Disallow 或 noindex,把希望被发现的内容放出来,再针对这些 URL 做投放。调整后不要期待立刻见效,给抓取和重新处理留出时间,同时用日志观察蜘蛛是否真的开始请求这些地址。

最后提醒一点:配置改动之后,不同搜索引擎的生效速度不一样,观察周期要给够。投放只是把入口打开,蜘蛛什么时候走进来,仍然由它自己的调度决定。