做 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,导致当前页面被当作重复版本处理。
投放前的检查顺序
- 用 robots 测试工具验证目标 URL 是否可抓取,不要只看首页;
- 查看目标页面的 meta robots 与响应头,确认没有 noindex;
- 确认目标 URL 返回的是 200,而不是 301、302、403 或 404;
- 确认不是登录后才可见的页面,或纯靠 JS 渲染且未做预渲染的内容;
- 确认 canonical 指向自己,而不是指向别的页面。
这几步做完,再决定要不要投放,能省掉很多“投了没反应”的困惑。
两个常见误区
- 以为蜘蛛池能绕过 robots.txt。遵守 robots 规则是主流搜索蜘蛛的基本行为,投放不会让它突破站点自身的设置。
- 先投放,等发现没效果再改设置。屏蔽状态下投放,除了浪费资源,还会让你对效果产生错误判断。顺序应该是先放行,再投放。
投放解决的是“如何被发现”,站点设置决定的是“是否允许被访问”。后者是前提,不是可选项。
如果确实需要屏蔽,又想让部分页面被发现
比较稳妥的做法是缩小屏蔽范围:只对确实不需要公开的目录做 Disallow 或 noindex,把希望被发现的内容放出来,再针对这些 URL 做投放。调整后不要期待立刻见效,给抓取和重新处理留出时间,同时用日志观察蜘蛛是否真的开始请求这些地址。
最后提醒一点:配置改动之后,不同搜索引擎的生效速度不一样,观察周期要给够。投放只是把入口打开,蜘蛛什么时候走进来,仍然由它自己的调度决定。