当源数据里某个字段为空,最危险的做法不是停下来,而是让下游流程把它当成“无”继续计算。要阻止错误扩散,先判断缺项属于可推导的缺失还是不可推导的缺失:前者可以保留占位并标注来源,后者必须阻断依赖它的输出,直到补齐或明确降级。
面对一个资料表或页面模板,先看缺项是否影响最终判断。如果缺的是可从其他字段稳定推导的值,比如由已确认的类目推导出上级路径,那么可以补,但要在中间层保留推导标记。如果缺的是决定页面主题的核心信息,比如产品型号、服务范围或适用地区,就不能推导,必须让依赖它的环节停住。
两种做法各有成立条件。补的做法适合缺项只影响展示细节,且推导规则唯一、可复核;停的做法适合缺项会改变页面面向的人群或问题,且没有第二来源可以交叉验证。补的代价是可能把错误藏进中间层,停的代价是流程变慢,但能避免错误进入索引和推荐。
具体动作是:在源数据与生成逻辑之间加一个校验步骤,把每个缺项标成三种状态之一:已确认、可推导、待确认。只有前两种允许继续,待确认的字段进入隔离区,不参与标题、摘要、结构化数据和内链锚文本的生成。
这个动作的结果会直接影响下一步。如果隔离区里待确认字段数量多,说明问题在采集端,应该先修采集规则;如果待确认字段集中在少数页面,说明是个别页面的资料不全,可以单独补齐。把这两种情况混在一起处理,就会让整体流程反复返工。
假设一个页面模板需要“适用地区”字段,源数据里这一项为空。做法A是默认填“全国”,做法B是把该页面标记为待确认,暂不生成地区相关的标题和描述。做法A在字段确实覆盖全国时成立,但一旦实际只覆盖部分区域,就会让页面承诺错误范围,后续修改还要重新处理已经生成的片段。做法B会让该页面晚一步上线,但能避免错误范围进入索引。
判断依据是:有没有第二个来源能确认地区。如果订单系统或服务清单里有明确记录,可以先补;如果没有,就选做法B。这个例子的数字只用于比较,不表示实际效果。
如果缺项已经进入下游,先看它影响了哪些输出:只影响页面正文,还是已经进入标题、结构化数据、内链或站点地图。影响范围越小,回退越容易;一旦进入标题和结构化数据,回退就要连同缓存和已提交的页面一起处理。
这里要避免一个误判:某个页面的请求量或抓取量下降,不能单独证明是缺项处理正确。季节变化、搜索需求波动、采集时间差异都可能造成同样现象。更可靠的做法是对比同一批页面中缺项页面与完整页面的处理记录,看错误是否集中在缺项依赖的字段上。
当前页面修完后,还要回到源数据规则:哪些字段允许为空,哪些字段为空时必须阻断,哪些字段可以推导。把这三类写进采集或导入的校验条件,下一次缺项出现时就会自动进入隔离区,而不是再次靠人工发现。
如果规则里没有这一层,修复就只对当前页面有效,新页面还会重复同样的错误。对已有经验的读者来说,这一步才是把一次排查变成可复用流程的关键。