先别急着重发或回滚。一次发布混入草稿,影响范围通常不等于“草稿本身”,而是草稿被哪些页面引用、哪些缓存和索引层已经吃到它。要圈定范围,最稳的做法是先分清两种可能:一种是草稿只进了发布产物但没被任何入口链接;另一种是草稿已经进入可被用户或抓取器到达的路径。两者处理成本差很多。
“混入草稿”这个说法,在不同角色嘴里含义不同。编辑看到的是草稿文件被提交;运维看到的是构建产物里多了文件;SEO 看到的是线上多了一个可访问 URL。这三种事实不完全重合。你要核对的是:草稿是否生成了可访问地址,以及是否有页面链接到它。
这三种情况对应完全不同的下一步。前一种可以安静清理,后一种要优先处理链接和缓存。
解释一:内容层混入。草稿作为独立文件被发布,路径是新的,没有替换任何正式内容。它的风险主要是被意外发现或被抓取。
解释二:路径层混入。草稿占用了原本属于正式页面的路径,或者正式页面的模板把草稿字段渲染了出来。这时用户访问原路径会看到草稿,影响的是已有流量入口。
区分这两个解释的关键证据,是比较发布前后的路径清单和渲染结果。只看构建日志不够,因为构建成功不代表路径正确。
下面这些动作按顺序做,每一步的结果都会改变下一步的优先级。
假设一个站点发布后新增了 /draft-042,同时首页列表页出现了一条指向它的链接。此时可以判断为“内容层混入且已被引用”,处理顺序应是先移除列表链接,再清理该路径,最后确认缓存和站点地图。如果反过来先删文件,链接还在,用户和抓取器仍可能反复撞到 404,反而扩大异常信号。
当编辑说“只是草稿”、运维说“已经发布”、SEO 说“线上能打开”时,不要争论谁对。把三种说法拆成可核对项:草稿文件是否存在、路径是否可访问、是否有入口链接、是否进入站点地图、是否被缓存命中。每一项只有“是/否/未知”,未知项就是下一步要查的。
这样做的好处是,影响范围不再靠印象判断。即使最后发现只是孤立文件,你也有证据说明为什么不需要大范围回滚。反之,如果入口链接和缓存都命中,你也能解释为什么必须按正式页面事故处理。
清理动作完成后,不要只看草稿路径返回 404 就结束。还要确认三件事:原正式路径是否恢复正常内容;列表页和站点地图是否不再包含草稿;缓存是否已经刷新到新状态。如果这三项里有一项仍异常,说明影响范围没有完全收住。
另外,一次发布前后的流量或抓取变化,不能单独证明清理正确。季节、搜索需求波动、数据采集差异都会造成同类现象。把路径清单、链接引用和缓存状态作为主要证据,流量数据只作辅助参考。这样即使短期数据没有立刻变化,你也能判断处理是否到位,并决定是否需要继续排查。