死链检查工具抓取动态页面时,通常只能看到初始 HTML,而不是浏览器执行 JavaScript 后呈现的最终内容。因此,要确认可见内容,不能只看工具返回的链接列表,而应把“原始响应”和“渲染后页面”分开核对:先判断页面内容是否依赖脚本生成,再用能执行脚本的方式复查链接与文字是否真实可见。
很多第一次接触这个问题的人会认为,只要死链检查工具没有报 404,页面就是正常的。这个判断只说明服务器对某个 URL 返回了成功状态,并不说明用户和搜索引擎最终能看到什么。动态页面常见的情况是:初始 HTML 只有一个空容器,标题、正文、分页链接、商品列表都由 JavaScript 请求接口后插入。工具如果只解析初始 HTML,可能得出两种相反的错误结论:把实际存在的链接漏掉,或者把脚本模板里的占位链接当成真实链接。
另一种误解是认为 robots.txt 允许抓取,内容就一定可索引。robots.txt 只表达抓取限制,不等于索引移除,也不保证页面会被收录;站点地图同样不保证收录。确认可见内容时,应把抓取、渲染、索引三件事分开看。
处理前先做一次分类,不同实现方式核查重点不同。
判断方法很直接:在浏览器中禁用 JavaScript 后刷新页面,如果正文和链接消失,说明内容依赖脚本;如果仍能看到主要内容和链接,说明服务端已输出。这个检查能帮你决定后续用哪种工具、看哪一层结果。
以下步骤可以直接执行,适用于需要确认动态页面链接与正文是否真实可见的场景。
判断结果时注意:如果渲染后链接数量明显多于初始 HTML,说明之前的死链检查结果不完整;如果渲染后仍找不到目标链接,可能是接口失败、权限限制或脚本报错,需要查看控制台错误信息,而不是直接判定链接已死。
动态页面的可见内容受多个条件影响,核查时至少覆盖以下项目:
javascript:void(0) 的元素,不应算作有效链接。如果页面内容依赖第三方接口,而该接口在检查时超时或返回错误,应先复测接口可用性,再判断链接状态。把“可能原因”和“已经定位的原因”分开记录,避免把一次偶发失败当成永久死链。
先选取一个动态页面作为样本,用禁用 JavaScript 的方式确认它是否依赖脚本渲染,再用支持渲染的检查方式抓取同一 URL,对比两次得到的链接和正文差异。根据差异决定是调整检查工具的渲染设置,还是回到页面实现层面修复内容输出。确认样本流程可行后,再扩展到同类页面。