先别急着回滚整站。混入草稿的提速改动,影响范围通常由“草稿是否被发布系统纳入构建”“是否被模板或公共资源引用”这两条线共同决定。先用发布日志和构建产物圈出实际变动的文件,再对照线上可访问页面清单判断波及面,比凭印象回滚更准。
一次发布里混入草稿,常见的矛盾是:首页看起来正常,但某些栏目页、详情页开始加载异常或变慢。原因不一定是草稿本身,而可能是草稿触发了公共模板、公共脚本或资源清单的重新生成。此时“首页正常”不能证明发布没问题,只能说明首页没有引用到被改动的那部分资源。
要判断,先把发布前后的构建产物做一次文件级对比,而不是只看页面表现。重点看三类文件:被草稿直接生成的页面文件、被模板引用的公共资源、以及站点地图或导航这类聚合文件。哪一类发生变化,决定了影响是局部还是成片。
第一种解释:草稿只生成一个孤立页面,没有被任何导航、模板或资源清单引用。这种情况下影响范围基本等于这一个 URL,加上可能被站点地图或搜索抓取发现的那一条记录。处理动作是删除该页面文件并重新发布,影响面通常止步于此。
第二种解释:草稿被公共模板、公共脚本或资源清单引用,导致多个页面同时加载了草稿引入的内容。这时表现会分散:有的页面报错,有的只是变慢,有的可能完全正常。因为不同页面引用的公共资源不完全相同,所以不能靠单页表现推断全局。
区分两种解释的关键证据是构建产物的依赖关系。假设某次发布后,构建日志显示草稿页面文件之外,还有一个公共 JS 包的哈希值变了——这更支持第二种解释;如果只有草稿页面文件本身是新增的,其他文件哈希不变,则更支持第一种解释。
可按下面顺序操作,每一步的结果都会决定下一步:
如果第二步发现公共资源被引用范围很广,但第三步交集很小,说明大部分引用可能来自未发布或已下线的页面,实际影响仍然可控。这时下一步应是修复公共资源并重新构建,而不是逐页删除。
草稿页面即使没被导航引用,也可能因为站点地图、内链或历史抓取记录而被外部发现。判断时要分开两件事:一是页面是否真的被用户和搜索引擎访问到,二是它是否只是存在于构建产物里。前者影响线上体验,后者影响的是后续抓取和索引判断。
如果发布日志显示草稿页面已进入站点地图,但线上访问返回正常内容而非草稿,那更可能是构建顺序或缓存问题,而不是草稿直接上线。此时应核对构建时间戳与缓存刷新记录,避免误判为内容事故。请求量或抓取量在某一时段归零,也不能单独证明处理正确,还可能是采集延迟、节假日需求下降或抓取预算调整。
如果证据指向草稿只生成孤立页面,定点删除并重新发布即可,回滚整站反而会引入新的不可控变量。如果证据指向公共模板或公共资源被污染,且受影响页面集合较大,回滚到上一个稳定构建版本更稳妥,然后再单独把草稿排除后重新发布。
做前后对比时,要把季节、搜索需求变化和数据采集差异考虑进去。提速改动本身可能让某些指标变化,但同期需求波动也会造成类似表现,不能把相关当成因果。判断是否修复成功,应回到构建产物和依赖关系是否恢复干净,而不是只看某一天的访问数字。
最后一步是把这次发布里“草稿如何进入构建”的路径记下来,确认是发布流程缺少过滤,还是草稿被误标记为可发布。只有堵住这条路径,下次发布才不会重复圈定同样的影响范围。