用死链修复工具处理动态页面时,不能只看服务器返回的原始 HTML,而要以页面在浏览器中渲染完成后的可见内容为准。也就是说,先确认目标内容是否真实出现在最终 DOM 中,再判断链接是否可抓取、可点击、可被用户看到。若原始源码里没有链接,但渲染后出现,它仍可能属于需要检查的链接;若原始源码里有链接,但渲染后被脚本移除或隐藏,则不应继续当作有效入口处理。
动态页面常见两种加载方式:一种是服务端先返回完整内容,另一种是先返回空壳,再由 JavaScript 请求数据并插入页面。死链修复工具如果只读取第一层响应,就可能漏掉脚本生成的链接,或者把脚本尚未执行时的占位链接误判为真实链接。
判断起点很简单:在浏览器打开目标页面,等主要内容加载完成,再查看最终渲染结果。此时需要区分三种状态:
这里的“可见内容”不是指页面一定在首屏,而是指在正常渲染和必要交互后,用户能够感知并使用的链接或内容区块。
第一次处理时,可以按下面顺序做,不要一上来就批量跑工具。
href 是否为空、是否为 javascript:void(0)、是否指向明显错误路径,或点击后是否返回 404、410 等状态。如果页面依赖登录、地区、Cookie 或特定设备才显示内容,应在与目标用户一致的条件下检查。否则你看到的可见内容可能和搜索引擎或真实用户看到的不一致。
工具能帮你发现链接和状态码,但不能替你判断动态页面的最终可见性。使用前后要核对以下项目:
一个短例子:假设某商品页的“相关推荐”由脚本异步插入,原始源码中没有这些链接。工具若不渲染,就发现不了其中一条指向已下架商品的 404 链接;工具若渲染,则能抓到它。此时应确认该链接是否在页面上真实可见,再决定修复、移除还是保留观察。这个例子只用于说明判断条件,不代表任何真实项目结果。
处理完成后,不要只看工具报告里的“已修复数量”。更可靠的验收信号是:在最终渲染页面中,原先可见的错误链接不再出现,或已指向正确目标;点击后不再返回错误状态;用户完成必要交互后,页面主要区域没有因链接修复而出现空白、错位或功能中断。
适用条件也要说清楚:如果动态内容只在特定账号、特定地区或特定交互后出现,就必须在相同条件下复测。不同搜索引擎对 JavaScript 渲染的支持情况并不相同,需要分别核查,不能用一个平台的结果直接推断另一个平台。
下一步,选一个真实动态页面,按上面的步骤记录渲染后 DOM 中的链接清单,再与死链修复工具的抓取结果对比。差异最大的那一类链接,通常就是你最需要优先确认的可见内容。