先给结论:不要急着改模板或提交页面,而是把同一条 URL 的“原始响应”和“渲染后 DOM”分别留存,逐段比对差异出现在哪个环节。对旧内容、旧系统或旧合作关系,如果差异只影响已经失去价值的模块,优先退出该模块;如果差异牵动仍被引用的主体内容,则应保留并改写,而不是整站推倒。判断标准不是差异大小,而是这段内容现在是否还承担获客、承接或合规作用。
静态响应与脚本渲染结果不同,常见有三种成因,需要分开取证。第一种是服务端返回的 HTML 里本来就没有目标内容,脚本再把它插进来;第二种是 HTML 里有内容,但脚本执行后把它替换或删除了;第三种是两者都有,只是顺序、分页或字段格式不同。可以用 curl 取原始响应,再用浏览器开发者工具查看渲染后的 DOM,把两边的正文、链接、标题各存一份。若原始响应里完全没有主体文字,而渲染后有,说明内容依赖脚本;若原始响应有、渲染后消失,说明脚本覆盖了它。
这一步的实际动作是保存两份快照并标注时间。结果会直接决定下一步:依赖脚本才出现的内容,要评估百度能否稳定执行脚本;被脚本覆盖的内容,要先查覆盖逻辑是不是旧合作关系遗留的注入代码。后者往往正是需要退出的部分。
三种取舍各有前提,不必全部套用。
判断依据可以很具体:查该 URL 的内部链接数、近期的访问来源构成、是否还有转化动作。如果三项都趋近于零,退出通常比修复更省成本;如果仍有稳定入口,就应改写而非删除。
假设某旧专题页的静态响应里只有标题和导航,正文由一段外部脚本写入,而渲染后正文完整。可能的解释至少有两种:一是正文确实由脚本生成,二是服务端模板出错,把正文段落漏掉了。区分方法是临时禁用该脚本再取一次原始响应,如果正文消失,说明内容来自脚本;如果正文本来就不在 HTML 中,禁用脚本不会改变结果。这个例子是假设性的,用于说明比较方法,不代表任何真实站点。
再假设另一种情况:原始响应有正文,渲染后正文被替换成一段推广模块。这通常指向脚本主动覆盖,而不是服务端缺失。此时要检查覆盖代码是否来自已终止的旧合作方。若是,退出该脚本并让静态响应保持原样,往往比继续修补渲染逻辑更直接。需要说明的是,抓取量或某次请求归零并不能单独证明处理正确,它也可能来自抓取预算分配、链接变化或临时波动,应结合原始响应与渲染结果的比对来判断。
定位清楚后,动作分两类。若决定保留或改写,应让静态响应直接包含主体内容,脚本只做增强,而不是唯一来源;同时检查 robots.txt 是否误挡了必要的脚本或资源路径,但要注意抓取限制不等于可靠的索引移除,它只约束抓取行为。若决定退出,移除旧模块后要确认页面仍能正常返回,并观察内链和访问入口是否受到影响。
站点地图可以辅助发现 URL,但不保证收录,因此不要把提交站点地图当作验证手段。验证应回到原始响应与渲染结果的比对:修改后再取一次两份快照,确认差异已收敛到可接受范围,并确认仍被引用的内容在静态响应中可见。如果差异仍在,就回到上一层重新判断是脚本依赖还是覆盖,而不是继续在模板里反复调整。
对旧内容、旧系统或旧合作关系的处理,核心不是追求两边完全一致,而是确认哪部分仍值得保留、哪部分应当退出。先取证再取舍,比先改代码再猜原因更可控。