把测试环境和线上环境的URL提交结果做对照,核心不是比较“提交了多少条”,而是比较同一批URL在两个环境中的可抓取状态、规范指向和提交响应是否一致。测试环境通常有访问限制、域名不同、数据不完整,直接拿它的提交结果推断线上表现会出错。正确做法是:以线上URL为基准,在测试环境构造对应的镜像URL,逐项核对状态码、robots限制、canonical、站点地图和提交接口返回,把差异归类为“环境差异”或“真实问题”。
线上环境是搜索引擎实际抓取和索引的对象,它的URL、响应头、页面内容、robots.txt、站点地图都是真实生效的。测试环境一般用于验证改动,可能带noindex、需要登录、被防火墙拦截、域名是test.example.com或内网地址,也可能数据是脱敏或少量样本。因此测试环境里的“提交成功”只能说明提交流程通了,不能说明线上会被收录。对照的目的,是判断线上问题是否由代码或配置改动引起,而不是拿测试结果当线上结论。
下面每一项都按“查什么、怎么查、结果说明什么”组织。建议先固定一个URL样本集,例如首页、栏目页、详情页、分页、带参数页各取几条,测试环境和线上使用同一套路径规则。
curl -I或浏览器开发者工具的Network面板,分别请求测试URL和线上对应URL,记录HTTP状态码和重定向链。如果测试返回200而线上是301或404,说明线上存在重定向规则或路由差异;如果两边都404,问题更可能在路由或数据,而不是提交动作。/robots.txt,用搜索引擎官方的robots测试工具或直接比对规则,确认目标URL是否被Disallow。测试环境常整站禁止抓取,这会让提交结果失去参考价值。注意robots限制只影响抓取,不等于能可靠地把已收录页面移除。<link rel="canonical">指向哪个URL。测试环境若把canonical写成线上地址,是合理做法;若写成测试域名,提交后会把信号指向测试环境。两边canonical不一致时,先判断哪个才是期望的规范版本。noindex或nofollow。测试环境带noindex属于正常保护,不代表线上有问题;若线上也出现noindex,才是需要定位的故障。/sitemap.xml,核对其中列出的URL域名、数量和状态码。站点地图只是发现入口,不保证收录;如果站点地图里混入测试域名或已删除URL,会浪费抓取预算并干扰判断。对照时先列差异,再逐条归因。判断依据可以简化为三条:
举例说明(假设场景):某详情页改版后线上收录下降。测试环境该URL返回200、canonical指向自身;线上该URL返回200,但canonical指向了一个不存在的旧地址。两边状态码一致,canonical不一致,这属于线上真实问题,而不是测试环境限制。反过来,如果测试环境返回403是因为加了访问白名单,线上返回200,这就只是环境差异,不需要修改线上配置。
第一,把测试环境的提交成功当成线上会收录。提交只是通知,收录还取决于抓取、质量和索引策略。第二,用HTTPS判断安全性或排名。HTTPS只表示传输加密,不代表页面没有漏洞,也不保证排名。第三,把robots.txt当成索引移除工具。要移除已收录页面,应使用对应的移除工具或让页面返回410/404,并等待重新抓取。第四,忽略不同搜索引擎的差异。各搜索引擎对提交接口、站点地图和抓取规则的支持情况不同,需要分别核查,不能用一家的结果推断另一家。
先选定10到20条代表性URL,按上面的清单在测试环境和线上各跑一遍,把状态码、canonical、meta robots、robots.txt和站点地图结果记在同一张表里。标出所有不一致项,再按“环境差异”和“真实问题”分类,优先处理线上真实问题对应的那几项。