灰度发布只覆盖少量URL或一个子目录时,收录结果通常看起来正常,但这不能证明全量发布后同样正常。真正被灰度掩盖的,往往是那些只在大批量、跨模板或跨目录时才出现的例外:同一套规则在少量样本上恰好全部命中,样本一扩大就露出漏网页面。
假设你改了站内链接结构或模板输出,先放出一小批页面观察。这批页面被正常抓取,索引状态也符合预期,于是你判断方案可行,随后全量上线。上线一段时间后,却发现一部分页面长期停留在“已发现未收录”或干脆没有被抓取。
这个结果看似矛盾,其实很常见。灰度样本往往集中在少数模板、少数层级或少数目录,它们恰好是规则覆盖最完整的部分。全量发布把长尾页面、深层页面、参数页面和历史遗留页面一起放出来,例外才开始显形。
第一种解释是规则本身存在缺口。比如新模板对某类页面生成了不同的规范化地址,或者链接只出现在特定条件下,灰度阶段没触发这些分支。问题一直存在,只是样本没碰到。
第二种解释是灰度样本不具代表性。你选的页面恰好都是权重较高、被抓取较勤的部分,它们的表现不能外推到全站。全量发布后,抓取预算被分散到更多URL上,原本够用的抓取机会变得不够用,收录自然变慢。
这两种解释指向不同的修复方向:前者要改规则,后者要改发布节奏或抓取分配。判断错了,就会在错误的地方反复调整。
要区分它们,可以对比灰度样本与全量页面的结构特征,而不是只看收录数量。可用的证据包括:
一个可操作的验证动作是:从全量未收录页面中,按模板和目录分层抽样,与灰度样本逐项对比链接来源、规范化输出和页面层级。如果差异集中在某几个模板,先修模板;如果差异分散且与层级相关,先考虑抓取分配和发布节奏。这个动作的结果会直接决定下一步是改代码还是改发布策略。
如果站点模板数量少、结构统一,优先扩大灰度样本,把每个模板和每个层级都纳入观察,再决定是否全量。代价是观察周期变长,但能提前暴露规则缺口。
如果站点规模大、长尾页面多,且灰度样本已覆盖主要模板,可以改为分批发布,按目录或页面类型逐步放量,同时观察抓取和索引变化。代价是发布节奏变慢,需要额外的协调成本,但能避免一次性把抓取预算摊薄。
两种做法并非互斥。关键判断依据是:灰度样本是否覆盖了全量中所有会走不同代码分支的页面类型。覆盖了,分批发布更稳妥;没覆盖,先补样本更划算。
即使灰度表现良好,全量发布后也要单独核查几类页面:由参数生成或筛选产生的地址、分页序列的末端、以及依赖站内搜索或标签聚合才能到达的页面。这些页面在灰度阶段往往不在样本里,却最容易成为收录例外。
另外,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。灰度阶段如果只依赖站点地图提交来判断效果,可能高估了方案的实际覆盖能力。把抓取日志、索引状态和页面结构对比结合起来看,才能判断例外是规则问题还是样本问题。