先不要全站回滚。一次发布混入草稿,影响范围通常只落在该次发布实际触达的模板、路由或数据源上;你要做的是用最小动作确认“哪些页面真的变了”,再决定保留、改写还是退出。缺少完整日志和回滚权限时,这个判断依然可以做,只是结论要收窄。
草稿之所以会出现在线上,常见原因有三类:发布流程把草稿状态一并推送、模板把未发布字段渲染出来、缓存或增量构建把旧草稿带进了新版本。这三类的波及面完全不同,圈定方式也不同。
能拿到发布记录时,先取这次发布涉及的页面清单,再和线上实际返回的页面做交集。拿不到记录时,退一步:从已知出问题的那个地址向上找它所属的模板和内容类型,用这两个维度去圈范围。这里的最小动作是构造一个可复现的地址样本,而不是逐页翻站。
假设某个栏目详情页混入了草稿标题。你可以从同一栏目里挑三类地址各若干条:本次发布批次内的、同模板但不在批次内的、同批次但不同模板的。逐条记录页面是否出现草稿特征,比如草稿标题、占位文本、未完成图片或调试标记。
如果只有“批次内 + 同模板”同时命中,影响面基本收敛到这次发布的该模板页面;如果“同模板但不在批次内”也命中,说明问题在模板或数据源层,范围比发布批次大得多。这个样本不需要覆盖全站,但它必须能区分上面两种解释。
需要提醒的是,样本里没命中,不能单独证明这些页面没问题。缓存未刷新、页面尚未被重新生成、访问到的节点不同,都能造成同样的“看起来正常”。所以样本结论只能用于缩小排查面,不能直接当作全量验证结果。
确认范围后,处理方式不是越彻底越好,而是看草稿内容本身的性质。
这三种选择的差别在于你能否准确说出“改完之后哪些页面会变”。说不清楚,就选退出;说得清楚且范围可控,才考虑保留或改写。缺少回滚权限时,退出的替代动作是先把受影响地址从可发现路径中移出,但这只是降低暴露,不等于内容已修正。
处理完成后,你会看到一些指标波动,比如某类页面的访问量或抓取量变化。这些变化不能单独用来判断处理是否正确,因为季节、搜索需求本身的变化、数据采集口径调整都会产生类似波动。更稳妥的做法是:固定同一批地址,在处理前后各记录一次页面内容特征,而不是只看汇总数字。
一个可执行的下一步是:把这次圈定的地址清单和判断依据留档,注明哪些是确认受影响、哪些是疑似、哪些尚未验证。下次同类发布再混入草稿时,你可以直接复用这份清单缩小范围,而不是从全站重新开始。影响范围圈得越准,后续修复动作就越小,这也是用户体验优化方法在发布事故里最实际的价值。