当发布系统把 robots.txt、meta robots 或页面模板配置覆盖回旧值时,先不要直接改回新值。更稳妥的做法是:在覆盖发生的时间窗口内,先固定一份“当前生效配置”的快照,再沿发布记录、配置中心变更记录和服务器文件修改时间三条线交叉比对,找出是哪一次发布、哪一个配置源、哪一层覆盖顺序在起作用。直接改回新值往往只能恢复一时,下一次发布仍会再次被覆盖。
配置回到旧值,通常有两种成立条件不同的解释,取舍点在于“旧值来自哪里”。
两者的追踪动作不同。发布产物覆盖要查构建流水线和制品内容;运行时覆盖要查配置中心的版本记录和生效顺序。若只查其中一条线,很容易把另一种原因误判成“缓存没刷新”。
以下证据可以帮助判断,而不是靠感觉猜测:
这些现象只是线索,不能单独作为结论。例如文件修改时间也可能被同步工具改写,因此需要至少两条证据相互印证。
假设某站点在发布后发现 robots.txt 中的 Disallow 规则回到了旧版本。可以先做一个动作:在覆盖发生后立即复制一份线上文件,并记录该文件的修改时间和当前发布单号。然后把这份快照与最近三次构建产物中的同名文件做内容比对。
如果快照与某次历史构建完全一致,下一步应去查该次构建的模板来源和变量注入顺序,而不是继续在服务器上手动修改。如果快照与任何构建产物都不一致,但配置中心存在一条更早的版本记录,下一步应查配置拉取逻辑和生效优先级。这个动作的结果会直接决定后续排查方向:前者查构建链,后者查配置链。
确认来源后,修复应遵循“先切断覆盖源,再恢复正确值,最后验证”的顺序。
需要说明的是,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。修复配置只是让发布结果符合预期,并不直接等同于收录量会立刻变化。验证时应关注配置是否稳定生效,而不是把某一次抓取量变化当作唯一判据。
为了避免同类问题反复出现,可以在发布流程中固定三个检查点:发布前记录当前生效配置的哈希值;发布后自动比对线上配置与预期值;发现不一致时自动保存快照并关联发布单号。这样下次再出现覆盖回旧值的情况,可以直接从快照和发布单号入手,而不必从零开始猜测来源。
如果站点同时存在多个配置来源,应明确哪一层优先、哪一层不允许被覆盖,并把这条规则写进发布检查项,而不是依赖人工记忆。