把网页复制进新模板后,真正难发现的不是标题或正文,而是模板替换过程中被悄悄改变的结构、链接和渲染结果。要发现它们,不能只靠肉眼看页面,而要把旧页和新页都转成可比较的文本与节点清单,再逐项对照。下面以一个已上线的企业产品页为假设对象,说明怎么从你手里的页面开始做。
浏览器里打开的页面已经经过脚本执行、样式应用和懒加载处理,直接截图对比很容易把渲染差异误判成内容差异。更稳妥的做法是分别保存旧模板和新模板页面的原始HTML,再保存一份脚本执行后的DOM快照。两份材料用途不同:原始HTML用来看模板是否改动了标签结构和链接地址,DOM快照用来看最终呈现是否一致。
假设你手里有一个旧模板下的产品页,已经复制到新模板并发布。先做这个动作:用浏览器开发者工具把脚本执行后的完整DOM复制出来,存成new-dom.html;再从版本记录或缓存中取得旧页面的DOM,存成old-dom.html。如果拿不到旧DOM,至少保留旧页面的纯文本、链接清单和图片地址清单。这个动作的结果决定下一步:能拿到两份DOM,就可以做节点级比较;只能拿到旧文本,就退回到文本和链接级比较,不要强行判断结构差异。
把两份DOM分别提取正文文本,去掉导航、页脚和重复的模板文案,然后逐段对照。重点看四类变化:原本独立的段落是否被合并、标题层级是否被模板改掉、正文中的链接是否被替换成模板默认链接、图片地址是否从内容图变成模板占位图。这些变化在页面上往往看不出来,因为样式可能让它们看起来仍然正常。
链接清单要单独列。把旧页和新页的<a>标签全部导出,只保留href和目标文字,按出现顺序排列。如果新模板把正文里的内链统一改成了“相关阅读”之类的模板链接,顺序和文字都会变,这属于结构差异,不是内容差异。发现这类差异后,下一步不是马上改模板,而是先确认这些链接是否仍然指向你希望用户到达的页面;如果指向已经失效或无关,才进入修复。
新模板常带自己的标题样式和结构化数据输出逻辑。复制内容后,页面可能同时存在模板生成的<h1>和正文里原有的<h1>,或者模板把正文里的<h2>替换成了带样式的<div>。这类差异不会改变肉眼看到的文字,但会改变页面结构。
具体动作是:在DOM快照中搜索所有<h1>到<h6>,记录它们的层级和文字;再搜索application/ld+json脚本块,看新模板是否额外插入了一份结构化数据。如果出现重复的标题层级或两份互相矛盾的结构化数据,先标记为待处理,不要直接删除。因为有些模板的结构化数据是全局注入的,删除可能影响其他页面。更安全的下一步是确认这份数据是否只作用于当前页,再决定是保留模板版本还是恢复正文版本。
发现差异后,不要一次性改完所有页面。选一个流量较低、内容完整的产品页做受控替换:只修复你确认的差异,其他条件保持不变。记录修改前后的页面标题、正文首段、内链数量和图片地址数量。隔一段时间再取一次数据,和未修改的同类页面比较。
这里要注意,前后比较不能只看一个指标。搜索需求本身会随季节变化,数据采集也可能因为统计口径不同而出现波动。如果修改后某项数据下降,不能直接断定是这次替换造成的;先看同类未修改页面是否也出现相同变化。如果同类页面同样下降,更合理的解释是外部需求变化,而不是你的修复动作。这个判断结果决定下一步:确认是替换引起的问题,就回退并重新检查;无法区分,就扩大对照页面数量再观察。
为了让下一次复制不再靠记忆,可以把检查顺序固定下来:
href和目标文字的顺序。这个顺序的价值在于,它把“看起来一样”拆成了可以逐项确认的材料。你不需要一次判断所有差异,只需要先找到第一层文本和链接差异,再决定是否进入结构和渲染层。每一步的结果都会缩小下一步的范围,而不是让你在模板里反复猜测。