核对抓取限制的核心方法,是分别检查 robots.txt、页面级 meta 指令、HTTP 响应头和服务器访问日志,看它们是否真的阻止了目标搜索引擎抓取。判断时不要只看一个位置,而要把“声明规则”和“实际抓取记录”对照起来:规则说允许,日志里却长期没有抓取,说明问题可能在别处;规则说禁止,日志里也确实没有抓取,才算定位到原因。
抓取限制通常来自四个层面,核对时要逐层排除:
User-agent 与 Disallow 是否覆盖了目标目录或整站。<meta name="robots" content="noindex, nofollow"> 只影响页面索引与链接跟踪,不等于禁止抓取,但常被误当成抓取限制。X-Robots-Tag 可以按响应头下发 noindex 或 nofollow,适合非 HTML 文件。只有 robots.txt 和服务器层规则会直接阻止抓取;noindex 阻止的是索引,不是抓取。把这两类混在一起,很容易得出错误结论。
按下面顺序执行,每一步都留下可复查的记录:
https://你的域名/robots.txt,找到与目标搜索引擎 User-agent 匹配的段落。若只有 User-agent: *,它对该搜索引擎同样生效。Disallow: / 会禁止整站,Disallow: 留空则表示不限制。curl -I https://你的域名/目标页面,检查是否出现 X-Robots-Tag,以及状态码是否为 200。如果日志显示抓取请求返回 200,但页面仍未出现在索引中,问题更可能出在内容质量、重复页面或索引指令,而不是抓取限制。如果日志中完全没有该搜索引擎的请求,优先怀疑 robots.txt 禁止、服务器拒绝或链接入口不足。
假设某分类页 /category/a 长期没有流量。先看 robots.txt 是否写了 Disallow: /category/;若有,这就是明确的抓取限制。再抓取该页响应头,若返回 403,说明服务器层也在拦截。此时把 robots.txt 改为允许、并让服务器对正常爬虫返回 200,才完成修复。若 robots.txt 允许、响应头也是 200,但日志里只有极少抓取,则应检查内链是否可达、页面是否被大量参数重复消耗抓取预算。
改动前后比较时,要考虑搜索需求本身的季节波动和数据采集延迟,不能把一次抓取增加直接等同于排名提升。验收信号应是:目标搜索引擎的抓取请求开始出现、返回码正常、robots.txt 不再命中该路径。
核对完成后,可以按以下结果分类处理:
常见误区是把 noindex 当成抓取限制,或只改 robots.txt 却忽略服务器返回 403。另一个误区是看到“未收录”就断定被禁止抓取,实际上未收录可能由多种原因造成,需要日志和响应头共同佐证。
下一步,选取一个具体 URL,按上述五步记录 robots.txt、meta、响应头和日志四项证据,再决定是修改规则还是继续排查索引问题。