灰度只验证了“样本能过”,不等于全量发布时每个 URL 都能被百度正常处理。常见例外是:灰度样本恰好都命中了缓存、静态化或白名单路径,而全量流量会触发另一条提交分支。要判断该不该先全量、还是先补一轮定向灰度,关键不是看提交按钮的返回,而是看同一批 URL 在灰度与全量条件下,百度侧可观察到的抓取与索引状态是否一致。
假设一次发布把新页面接入站点地图,并在页面更新后通过提交入口推送。灰度阶段选了 20 条 URL,三天内看到部分被抓取,于是判断链路可用,直接全量开放。全量后一周,后台显示提交成功,但百度抓取记录没有同步增加,索引量也停滞。这个现象有两种合理解释。
解释一:灰度样本不具代表性。灰度挑的是栏目首页、权重较高的详情页,或者已经有过抓取历史的 URL。这类 URL 本来就会被自然发现,提交只是加速。全量新增的是深层分页、参数页、低权重聚合页,它们缺少内链入口,也不在历史抓取范围内,提交后仍要等百度自行调度。
解释二:全量发布改变了页面本身的可抓取条件。灰度只放开部分模板,全量后启用统一跳转、前端渲染或访问频率限制。百度抓取时可能拿到空壳 HTML、302 到登录页,或因为并发过高被限速。此时提交动作成功,但实际抓取结果不合格。
提交接口返回成功只说明请求被接收,不能证明 URL 被处理。能区分上述两种解释的证据有三类:
面对这种情况,通常有两种做法。
做法 A:暂停全量提交,先补一轮分层灰度。适用条件是站点有稳定的抓取日志和 URL 分层能力,能按链接深度、模板类型、是否有历史抓取记录分组。代价是发布节奏被拉长,需要额外一轮观察。动作上,从全量 URL 中按层各抽一批,单独提交并记录抓取结果。如果深层 URL 在补充内链后开始被抓取,下一步应优先修入口,而不是继续加大提交量。
做法 B:维持全量提交,同时监控抓取质量。适用条件是页面可抓取性在服务端已可验证,且能承受一段时间的抓取延迟。代价是如果问题出在渲染或限速,提交量越大,无效请求越多,反而掩盖真实原因。动作上,先固定一组对照 URL 不做任何提交,与提交组比较抓取频次。如果两组没有差异,说明当前提交对全量 URL 的边际作用有限,下一步应转向内链和站点结构,而不是重复提交。
假设某次发布新增 5000 条 URL,灰度只提交了 50 条高权重页面,全部被抓取。全量后提交剩余 4950 条,两周内只有少量被抓取。此时不要直接断言“提交无效”或“百度不收录”。可以取 200 条未提交 URL 作为对照组,与已提交的 200 条同层 URL 比较。若两组抓取比例接近,说明提交不是主要变量,下一步应检查这些 URL 是否缺少内链入口,或是否被 robots.txt 限制。若提交组明显更好,说明提交仍有作用,问题在于全量 URL 数量超出调度能力,下一步应分批提交并观察每批的抓取反馈。若提交组更差,则要排查提交是否触发了异常访问模式,例如短时间大量请求导致限速。
无论哪种结果,都要注意:robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。灰度结论只能说明被抽中的那部分 URL 在当前条件下可处理,不能自动外推到全量。
第一,灰度样本是否覆盖了全量发布中会出现的最差路径,例如最深分页、参数组合、需要登录态或依赖接口返回的页面。第二,全量发布是否改变了抓取入口,包括内链、站点地图分片和提交批次。第三,观察窗口是否足够区分“尚未抓取”和“抓取失败”。只有这三个前提都成立,灰度通过才可以作为全量发布的依据;否则,更稳妥的动作是先补一轮针对例外路径的定向灰度,再决定全量提交的节奏。