死链扫描工具抓到的“404”或“200”并不能直接等于用户看到的可见内容。对动态页面来说,扫描器请求的是服务器返回的初始HTML,而真实内容往往由JavaScript在浏览器里二次渲染。因此,确认可见内容的正确做法是:先区分“HTTP状态正常”和“渲染后内容存在”这两件事,再用能执行脚本的检查方式复核,而不是只看一次批量扫描结果。
很多协作流程把死链扫描结果当成最终结论:状态码200的链接保留,404的删掉。这个判断对静态页面基本够用,但对动态页面会漏掉两类问题。
所以“状态正常”只说明请求被接受了,不说明可见内容存在。把两者混为一谈,是多人协作里返工最多的地方。
判断动态页面,要先明确当前工具拿到的是哪一层结果:
如果扫描工具没有说明是否执行JavaScript,就默认它只看了原始HTML层。要确认可见内容,需要补一次渲染后检查,而不是直接采信批量结果。
下面这套流程适合多人协作时统一口径,减少“你说能打开、我说是空页”的争议:
document.body.innerText.trim().length,若结果接近0,说明渲染后仍无可读内容。这套步骤的关键在于:状态码、渲染结果、接口数据是三个独立信号,任一异常都可能导致用户看不到内容,不能只凭其中一项下结论。
交付时用一张固定表格记录,判断标准如下:
这里要提醒一点:robots.txt 的抓取限制不等于可靠的索引移除,页面被禁止抓取不代表它不会以其他方式出现;站点地图也不保证收录。这些都不能替代对可见内容的实际检查。
要让结果可复核,建议在交付物里固定三列:链接、HTTP状态、渲染后正文摘要。任何一列缺失,接手人都无法判断问题出在哪一层。若团队使用无头浏览器批量复核,应把“是否执行JavaScript”写进流程说明,避免不同人用不同口径得出相反结论。若页面依赖登录态或个性化接口,还要注明检查时使用的账号与权限,否则结果无法复现。
下一步:挑出当前清单里状态码为200但正文为空的动态页面,按上面的五项步骤逐条复核,并把结果补进交付表格,再决定是修模板、修接口还是按死链处理。