灰度发布通常只覆盖一部分页面或一部分入口,它的作用是提前暴露例外,而不是证明全量一定安全。做搜狗收录查询时,如果灰度样本里已经出现收录状态和预期不一致,正确动作不是立刻全量上线,而是先把这个例外变成可核对的证据,再决定是修配置、缩小范围,还是暂缓发布。
假设一个站点改版,把商品列表页从静态路径改成带参数的路径,同时新增了分页。团队先只放出十分之一的栏目页做灰度,其余仍走旧路径。两天后做搜狗收录查询,发现灰度里的新路径有一部分被搜狗抓取并展示,旧路径也还有残留;非灰度页面则基本维持原状。这个结果本身不能说明新路径更好或更差,它只说明灰度样本里已经出现了例外:同一批页面中,有的被当作新页面处理,有的仍被当作旧页面处理。
看到灰度样本的收录差异,容易直接归因于“新路径有问题”或“旧路径该清掉”。更稳妥的做法是先列出可区分的解释:
这三类原因的验证动作不同。第一类只需要继续观察同一批 URL 的抓取与展示变化;第二类要核对页面内链、站点地图和实际可访问路径是否一致;第三类要直接查看灰度模板输出的 robots 规则和页面级限制。把原因分开之后,才能判断例外是暂时的、可修的,还是会扩散到全量。
实际项目里,运营、开发、SEO 对同一份搜狗收录查询结果常有不同理解:运营看到新路径出现就认为改版成功,开发看到旧路径还在就认为没生效,SEO 则担心重复内容。分歧本身不是问题,问题是没有统一的核对对象。可以把争议落到一张表上,每一项都对应一个可执行动作:
这个清单的价值在于:它把“我觉得收录了”变成“某条 URL 在某次查询中处于某个状态,且它的内链和站点地图指向一致或不一致”。下一步动作取决于核对结果,而不是取决于谁的判断更响。
假设核对后发现,灰度页面里有一半的新路径没有被搜狗抓取,原因是灰度模板的 robots.txt 规则误把新路径目录写进了限制段。此时的动作是:先修正灰度模板的 robots 规则,确认新路径可被抓取,再重新做搜狗收录查询。如果修正后新路径开始被抓取,说明例外来自配置误伤,可以继续扩大灰度比例;如果修正后仍无变化,则需要检查内链和站点地图是否仍指向旧路径,而不是继续加量。这个动作的结果直接决定下一步是“扩量”还是“继续排查”,而不是凭感觉推进全量。
灰度能暴露例外,但它不能证明全量安全。原因在于:灰度样本通常不覆盖所有模板、所有入口和所有参数组合,全量发布时会引入灰度里没有出现的路径。因此,灰度之后仍需要保留可回退的旧路径、保留旧路径到新路径的映射关系,并在全量后继续做搜狗收录查询,观察是否出现新的例外。robots.txt 的限制不等于可靠的索引移除,站点地图也不保证收录;灰度通过只说明当前样本内没有发现阻断性例外,不等于全量发布不会产生新的分歧。把灰度当作一次核对机会,而不是一次通过证明,才能让下一步决策有依据。