把测试环境和线上环境做Google索引对照,核心不是比较两边页面长得像不像,而是比较两边对同一路径给出的可抓取信号是否一致。测试环境应当默认阻止Google抓取,线上环境才允许被索引;对照的目的是确认没有把测试环境的noindex、robots限制、登录墙或错误canonical带到线上,也没有让线上该收录的页面被测试配置误伤。
测试环境和线上环境的目标不同。测试环境通常希望完全不被Google索引,线上环境则希望有价值的页面被正常抓取和收录。因此对照前要先写清楚每个环境的预期:
X-Robots-Tag: noindex或页面级<meta name="robots" content="noindex">,robots.txt可整体禁止抓取,且不对外提交站点地图。如果两边预期本身就写混了,后面的对照会一直返工。判断依据是响应头和页面源码,而不是“我记得配过了”。
选一批有代表性的路径,例如首页、栏目页、详情页、分页、参数页,分别用测试域名和线上域名请求,比较以下项目:
这里要区分“可能原因”和“已经定位的原因”。看到线上页面没被索引,可能是noindex、canonical错误、抓取被限制或内容质量问题,不能只凭一个现象就断定是某一项造成的。逐项核对才能缩小范围。
第一类是环境变量串用。测试的noindex开关如果依赖环境变量,部署到线上时要确认该变量没有一起带过去。第二类是canonical硬编码。模板里写死测试域名,线上页面就会把权重信号指向测试环境。第三类是站点地图生成逻辑。如果sitemap由代码自动生成域名,测试构建产物可能混入线上发布流程。
处理原则是:配置按环境分离,不要靠人工在发布前临时改。可以把域名、noindex开关、sitemap域名都放进各自环境的配置里,发布时只切换环境,不改代码。
改完后重新请求同一组URL,把响应头和源码中的关键行截取下来,作为交付记录。复查至少确认三点:测试环境仍然完全不可索引;线上目标页面不再出现noindex;线上canonical和sitemap都指向线上域名。如果条件允许,再用Google Search Console的URL检查工具分别看测试和线上URL的抓取结果,但要注意robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录,这些只能作为辅助判断。
下一步:把这份对照清单固化成发布前检查项,指定一人负责核对测试与线上的robots、noindex、canonical和sitemap,核对通过后再发布。