把同IP网站从测试环境切到线上前,不能只对比页面外观。真正要对照的是:同一份内容在两套环境下返回的状态码、抓取规则、规范链接、资源加载和跳转链路是否一致,以及哪些差异是环境本身造成的、哪些是配置遗漏。判断标准不是“看起来一样”,而是“线上返回的响应与测试环境预期间能否逐项对上”。
测试环境通常有自己的域名、目录或端口,因此绝对URL、Cookie作用域、CDN缓存策略天然不同。对照时应把测试环境里凡是写死环境地址的部分替换成线上域名再比对,重点看相对路径、模板逻辑和配置项是否一致。如果测试环境用的是独立域名,那么它和线上并非严格同IP,对照结论只能覆盖代码与配置层面,不能直接推断线上抓取结果。
第一类,域名不同导致的差异。测试域名下的绝对链接、canonical、Open Graph地址与线上不同属于正常,但必须在发布前全部替换。判断方法:在测试环境页面源码中搜索测试域名,出现次数应为零,或仅出现在明确标注为环境变量的位置。
第二类,缓存与压缩差异。测试环境常关闭CDN和缓存,线上开启后可能返回旧的HTML或不同的响应头。判断方法:对比两套环境的响应头中Cache-Control、ETag、Content-Encoding是否与预期一致,而不是简单认为“线上更快就是对的”。
第三类,抓取规则差异。测试环境为了防抓取可能全站禁止爬虫,线上则允许。切换时必须确认线上robots.txt不是测试版本的复制。不同搜索引擎对robots.txt、canonical、sitemap的支持细节需要分别核查,不能用一套结论覆盖所有引擎。
假设一个页面在测试环境返回200、canonical指向测试域名、robots meta为noindex,而线上期望是200、canonical指向线上域名、允许索引。这三项里,状态码一致,后两项必须修复。若线上仍返回noindex,页面即使能被抓取也不会进入索引,这是验收时最该拦下的问题之一。
不要只写“已对照,基本一致”。应留下可复核的记录:URL样本、请求时间、两套环境的响应摘要、差异清单、每项差异的处理结论。对无法在测试环境复现的线上行为,例如CDN边缘缓存或真实证书链,应单独标注为待线上验证项,而不是默认通过。下一步是把这份差异清单转成发布检查项,在切换后按同一组URL再跑一次,确认线上实际返回与验收预期一致。