测试工具能抓到时,先不要改规则,而要把“工具成功”和“用户失败”当成两组不同条件来对比。最常见的差异来源是请求来源标识、网络出口、DNS解析、TLS握手、Cookie与地区,以及工具是否绕过了真实链路。复现的目标不是让工具再成功一次,而是让失败条件在可控范围内重现。
如果测试工具返回正常,而真实用户或真实抓取失败,通常有两种条件分支,选择依据是失败是否稳定出现。
两种分支的下一步动作不同。稳定失败适合逐层替换变量;间歇失败适合先记录时间、节点和响应码,再找规律。
在没有完整日志和权限时,仍可执行一个最小动作:用与真实用户尽量接近的出口和请求头,向同一URL发起一次请求,并记录状态码、响应时间、最终IP和证书信息。
如果替换出口后失败重现,说明差异在网络路径或节点策略;如果替换请求头后失败重现,说明差异在来源识别或内容协商。这个结果决定下一步是查DNS与CDN,还是查服务端规则与缓存。
当失败可以稳定重现时,优先查链路。链路问题会伪装成规则问题,例如CDN节点回源失败、证书链不完整、IPv6不可达。此时改robots.txt或页面规则通常无效,因为请求可能根本没有到达应用层。
当失败只在特定请求头或特定Cookie下出现时,优先查规则。服务端可能按User-Agent、地区、登录状态或来源做分流。此时需要确认分流发生在哪一层:CDN边缘、WAF、反向代理还是应用代码。不同层的规则修改权限和生效范围不同,不能用一个层面的测试结果推断另一个层面。
例外情况是:测试工具本身走了特殊通道,例如内置代理、缓存或预解析。这种情况下工具成功不能证明线上链路正常,只能证明某个节点或某条路径可用。
假设某页面在测试工具中返回200,真实用户返回403。先从两个出口请求同一URL,发现解析到不同IP,其中一个IP返回403。此时合理推断是该IP所在节点或地区策略拦截,而不是页面内容被移除。下一步应查该节点的访问控制、限速和回源配置,而不是先改站点地图或robots.txt。
如果两个出口解析到同一IP、请求头也一致,但只有真实用户失败,则要检查客户端到该IP之间是否存在中间设备或DNS污染。此时测试工具成功只能说明服务端可达,不能说明用户链路可达。
测试工具能访问,不能推出搜索引擎一定能抓取,也不能推出页面会被收录。请求量或抓取量归零,也不能单独证明规则配置正确,它还可能由需求下降、日志采样、节点切换或统计口径变化解释。robots.txt的限制不等于可靠的索引移除;站点地图不保证收录;HTTPS不保证安全无漏洞或排名。不同搜索引擎的支持情况需要分别核查。
复现条件后,下一步应把可重现的失败样本固定下来,再决定是调整链路、调整规则,还是继续收集证据。没有重现之前,任何规则修改都只是猜测。