结论先说:如果新旧模板共用同一套正文来源和同一份结构化数据,优先做“渲染后源码对照”;如果正文是人工搬运或模板自带占位内容,优先做“可见文本与链接逐项对照”。这两种顺序的代价不同,选错会让排查停在表层。下面给出判断条件和会推翻结论的反例。
新模板最容易制造的不是正文文字差异,而是渲染层差异:同一段内容在旧模板里是静态输出,在新模板里可能由脚本注入;同一组链接在旧模板里是普通锚点,在新模板里可能被包进交互组件。此时用浏览器打开页面,查看渲染后的源码,再与旧模板同页面的渲染后源码对照,比直接比对模板文件更接近用户和抓取端实际看到的结果。
适用条件是两版页面能同时访问、且正文来自同一数据源。若新模板的正文是编辑手工粘贴,渲染层对照只能确认最终输出,无法解释差异来源,此时应转向内容层逐项核对。
把新旧页面各自复制为纯文本,去掉导航、页脚和重复的模板文案,只保留主体区域,再逐段比对。重点看四类变化:标题层级是否从<h2>变成<div>;段落是否被拆成多段或合并;列表是否丢失;正文里的内链是否被替换成模板默认链接。链接尤其容易隐藏,视觉上文字没变,但href指向已经不同。
这一步的实际动作是:先记录旧页面主体里所有指向站内的链接及其锚文本,再到新页面同一位置核对。若发现锚文本相同而目标不同,先不要改正文,把差异记下来,因为它会直接影响后续判断哪些页面需要重新验证。
选择依据是差异可能来自哪里,而不是哪种做法更“全面”。
一个假设例子:旧页面正文有六段,新页面渲染后仍是六段,但其中两段的链接从文章页变成了栏目页。纯文本对照会发现文字一致而放过它;渲染后源码对照能看出href变化。反过来,如果新模板把正文拆成多个组件、脚本未执行完就抓取源码,渲染后对照会显示正文缺失,而内容层对照能确认文字其实都在。两种做法各自会漏掉对方能发现的问题,所以先按差异来源选主路径,再用另一条做抽查。
反例是:新旧页面并非同一时间点的内容。如果旧页面在复制前已经更新过,而新页面复制的是更早版本,那么无论用哪种对照,看到的差异都混入了内容版本差异,不再是模板差异。此时先确认两版对应的内容版本是否一致,否则所有对照结论都不可靠。
另一个会让结论失效的情况是页面存在个性化输出,比如根据登录状态或地区展示不同模块。这类差异不属于模板问题,对照时应固定同一访问条件,否则会把个性化结果误判为模板缺陷。
把差异分成三类:影响正文可读性的、影响链接指向的、只影响样式和结构的。第一类优先修,第二类逐条确认目标页面是否仍存在且内容对应,第三类可以延后。修完后不要只看修改的那一页,回到旧页面同一位置再对照一次,确认修复没有引入新的链接替换或层级丢失。若对照前后间隔了较长时间,比较时要考虑搜索需求和内容本身可能已经变化,不能把某次对照结果直接当作模板改动导致的排名变化。