核对单页面抓取限制,不要先看页面能否打开,而要以“搜索引擎抓到的版本”为起点:用抓取工具查看返回状态码、响应正文、robots.txt 规则和页面级 noindex 指令,再与浏览器看到的版本对比。常见误解是:页面在浏览器正常显示,就说明可以被抓取。实际上,抓取限制可能来自服务器、robots.txt、页面元指令或登录状态,浏览器能打开并不等于抓取正常。
核对抓取限制时,第一步是判断问题属于哪一层。抓取限制指的是搜索引擎无法获取页面内容;索引限制指的是页面被抓取后,因 noindex、规范标签或内容质量原因未被收录。两者处理方式不同。如果抓取工具显示“已抓取,但被 robots.txt 阻止”,说明请求到了服务器,但内容被规则拦截;如果显示“无法访问”,则可能是 DNS、防火墙、超时或服务器返回 5xx。先定位层级,再决定改哪里。
下面这套步骤适合第一次排查单页面抓取问题。假设你有一个产品详情页或文章页,想确认它是否被抓取限制拦住。
Disallow: /product/ 会拦住该目录下所有页面。<head> 区域,确认是否存在 <meta name="robots" content="noindex"> 或 noarchive。noindex 影响索引,不影响抓取,但常被误认为抓取限制。X-Robots-Tag: noindex。它和 meta robots 作用类似,但由服务器返回,容易被忽略。判断结果时,可以按这个顺序看:状态码 200 且正文完整,说明抓取本身没有硬限制;状态码 403、429、503 说明服务器主动拒绝或限流;robots.txt 拦截说明规则层限制;noindex 说明抓取成功但被要求不索引。多个现象同时出现时,不要只改一个就认为解决,按优先级逐项排除。
一个常见误解是:只要在 robots.txt 里禁止抓取,页面就不会出现在搜索结果里。实际上,robots.txt 阻止的是抓取,不是索引。如果其他页面链接到该 URL,搜索引擎仍可能仅凭链接锚文本和外部信息将它收录为无摘要结果。正确做法是:如果希望页面不被索引,应允许抓取,同时在页面或响应头中设置 noindex;如果希望彻底阻止访问,则用登录、权限或服务器规则,而不是只靠 robots.txt。适用条件是:你希望控制索引结果,而不是单纯节省抓取资源。
比较改动前后数据时,要考虑季节、搜索需求变化和数据采集差异。例如,同一页面在两次抓取中返回的正文长度不同,可能是动态渲染、A/B 测试或 CDN 缓存导致,不一定是抓取限制变化。核对单页面抓取限制时,至少固定同一工具、同一 User-Agent、同一时间段做对比,并记录状态码、响应大小和规则文件版本。如果页面依赖 JavaScript 渲染,还要确认抓取工具是否执行脚本;不执行脚本时看到的空正文,不等于服务器没有返回内容。
选一个你怀疑被限制的单页面,用无痕浏览器和抓取测试工具各访问一次,把状态码、robots.txt 规则、meta robots 和 X-Robots-Tag 四项记录下来。四项中只要有一项与预期不符,就先改那一项,再重新抓取一次对比。这样核对抓取限制,比直接修改页面或提交收录更接近问题起点。