结论是有条件的:如果缺项只影响一个可隔离的字段,优先让这一条数据留在原处并标记为待补,不要用推算值填充;如果缺项会改变页面的核心结论,则应先把该页面从索引和内部推荐中撤下,再补数据。两种做法的分界不是缺多少,而是缺项会不会被下游当成事实使用。
源数据缺项本身不一定会造成错误扩散,真正危险的是缺项在流转中被默认成有效值。例如一份产品参数表里,某型号的“适用温度”为空。如果前端模板直接把空值渲染成空白,读者只会看到信息不全;如果模板把空值替换成“常温”,下游的筛选、对比和结构化数据都会把这个推算值当成真实参数。后者才是需要阻断的扩散路径。
判断方法可以按三步走:先找出这个字段会被哪些环节读取,再确认每个环节对空值的处理方式,最后看是否有环节会补默认值。只要有一个环节会补默认值,就不能只修展示层,必须回到源数据层处理。
做法一:保留缺项,标记待补。成立条件是缺项字段不参与核心判断,且页面其余内容仍能独立成立。代价是页面可能长期处于不完整状态,读者需要自行判断,内部筛选和聚合也要持续跳过这条记录。适合参数表、目录页这类字段多、单字段缺失不改变主体结论的对象。
做法二:先撤下页面,补完再放回。成立条件是缺项字段直接决定页面结论,或者该页面正被其他页面引用、聚合。代价是流量和内部链接会中断,恢复后还需要重新观察抓取和展示情况。适合结论页、对比页、依赖单一关键数据的页面。
假设一个对比页原本要比较三款设备的续航,其中一款的续航数据缺失。如果保留缺项并继续展示,读者会默认这款没有短板;如果撤下页面,则三款对比的结论暂时不成立。此时更稳的动作是撤下或明确标注“数据待补”,而不是用同类产品的平均值替代。这个例子只用于说明判断方法,不代表任何真实项目。
第三步的动作会直接影响下一步:如果只修了展示层而没有关闭聚合输出,那么补数据后你看到的仍然是推算值参与的结果,无法判断修复是否生效。反过来,先关闭输出再补数据,恢复后就能把变化归因到这一条数据上。
如果缺项字段虽然不参与页面结论,却被站内搜索、推荐位或结构化数据读取,那么“保留缺项、标记待补”就不再成立。此时缺项会通过推荐和聚合扩散到其他页面,影响范围超出原页面。遇到这种情况,应按做法二处理,先阻断读取路径,再补数据。
另外,请求量或抓取量归零不能单独证明处理正确。它也可能是采集延迟、页面被暂时排除或需求本身下降造成的。要结合该路径的前后对比和同期需求变化一起看,避免把相关当成因果。
先列出缺项字段的所有下游读取点,标出哪些会补默认值。对会补默认值的读取点,先关闭输出;对不会补默认值的,保留缺项并标记待补。补完数据后,只观察该页面所在路径的变化,并和同期需求变化对照,再决定是否恢复推荐和聚合。这样处理,缺项就不会在你不确定的时候被当成事实继续传播。