先把旧页和新页在“关闭脚本、关闭样式、只取正文”的条件下各保存一份,再逐项比对标题、正文文本、内链、结构化数据和状态码。隐藏差异通常不在肉眼可见的排版里,而在模板自动补全或吞掉的部分。只有把差异定位到具体字段,才能决定是保留旧写法、改写适配新模板,还是退出这次迁移。
浏览器里看到的两页“差不多”,不能作为判断依据。模板替换后,样式、脚本注入和懒加载会掩盖真实差异。可执行的动作是:对旧页和新页分别用同一工具抓取渲染后的DOM,再剥掉<style>、<script>和导航页脚,只留主内容区。把两份结果按段落切分后做文本比对。
结果如何影响下一步:如果只有空白和换行差异,说明迁移基本干净,可以直接进入抽样验证;如果出现成段文字缺失或重复,说明新模板的字段映射有问题,应先修模板,而不是改内容。
模板替换最常动的不是正文,而是正文外围。下面四项要单独列出来比对,不能混在整页diff里看:
<h2>可能被新模板统一降为<h3>,或把正文首句自动提为标题。这四类里,标题层级和内链影响爬虫理解页面结构,结构化数据和canonical影响页面被当作哪个URL处理。发现差异后不要一次性全改,先判断哪一类与本次迁移目标直接相关。
看到“新页正文变短”时,至少有三种解释:模板截断了字段、抓取工具没等到懒加载完成、旧页本身就有重复段落。区分方法是做对照:同一篇内容分别用“渲染后抓取”和“查看源代码”各取一次。如果源代码里有而渲染后没有,问题在脚本;如果两者都缺,问题在模板字段映射;如果只有旧页多出内容,那多出的部分可能是旧模板的冗余输出,不必强行保留。
假设一个短例子:旧页正文约1200字,新页渲染后只剩900字。先查这300字是否落在某个被新模板隐藏的<div>里,再查它是否属于旧页的推荐位模块。前者要修模板,后者可以放弃。这个判断不依赖任何排名数据,只依赖两份文本的字段归属。
三种取舍各有前提,不必都选:
选择退出不是失败,而是承认模板约束与内容结构不匹配。关键是把判断依据写下来:哪一类字段、在多少个抽样页面上、以什么形式出错。
迁移前后如果同时观察流量或抓取数据,要注意季节、搜索需求变化和采集口径差异都会造成波动。一次改动前后比较,不能只看单日数字。更稳的做法是固定一组未迁移的对照页面,与迁移页面在同一时间窗内比较同类字段的错误率,而不是比较访问量。错误率下降只能说明模板问题在减少,不能直接推出排名会变好。
下一步动作:把抽样页的字段比对结果整理成一张清单,标出每项差异属于保留、改写还是退出。清单完成后,再决定是否扩大迁移范围。如果清单里“退出”项集中在某一类字段,优先修模板;如果分散且无规律,先暂停批量迁移,回到单页验证。