先止损,再补数。发现源数据缺项后,不要让它继续流向模板、结构化数据和内链锚文本;先把受影响页面隔离,确认缺项会落到哪些输出位置,再决定是回退、占位还是重跑。下面用一个假设情境把决策顺序讲清。
假设一个产品列表页的源表里,某批次商品的“价格区间”字段为空。编辑已经按常规做法在发布系统里手工补了几个页面,但一周后仍然出现错误:列表页摘要显示“¥0 起”,部分详情页的结构化数据里价格被写成空字符串,内链锚文本也从“XX系列价格”变成了“暂无”。
问题不在“有没有补”,而在于缺项进入了多个下游环节:模板渲染、结构化数据生成、内链推荐和站内搜索索引。只改页面可见文本,不会自动修正已经生成的结构化数据或缓存快照。因此这类问题要按“来源—加工—输出”三层来切断扩散。
不是所有缺项都该用同一处理方式。先做一次分类,能避免把临时问题永久写死。
判断依据不是字段名,而是这个字段一旦错误,会不会改变用户对事实的理解。会改变事实的,优先回退;只影响完整度的,可以占位并排队补。
阻止扩散的关键动作是确定边界。可以按下面顺序检查,每一步都产出可核对的清单。
完成隔离后,下一步才是补数。否则补进去的新值会和旧错误值混在一起,更难判断哪一版可信。
隔离和修正之后,不要只看一个页面是否恢复正常。选一组受影响页面做前后对比,并注明假设:假设同一时间段内搜索需求、季节因素和采集方式没有明显变化。如果这些条件变了,前后差异不能单独归因于本次修正。
可执行的最小验证是:
如果验证发现某个输出面仍带旧值,说明隔离范围漏了一项,应回到上一步补齐,而不是继续扩大补数范围。
一次修正只能解决当前批次。要防止同类问题再次扩散,需要在源数据进入发布流程前加一道显式检查:必填字段为空时阻止发布或降级发布,选填字段为空时允许通过但记录待补清单。这样做的结果是,缺项不再悄悄变成“0”或空白,而是变成一条可见的待办。
对已经上线的页面,回退到上一版有效数据通常比临时编造占位值更安全;对尚未发布的页面,直接阻断比事后修补成本更低。两条路径成立的条件不同:前者要求上一版数据仍可取得且事实未变,后者要求发布流程支持按字段级别阻断。选择哪条,取决于缺项字段是否影响事实准确性,以及当前流程能否在输出前拦住它。