最准方式是用Network面板查看广告请求的Status Code:F12→Network→Preserve log→刷新→过滤ad等关键词→找标红项→确认Response Headers中是否为404 Not Found。

用 Network 面板直接看广告请求的 Status Code
广告链接是否失效,最准的方式不是查 HTML 源码,而是看浏览器实际发出去的请求有没有返回 404。很多广告是 JS 动态插入的 <img alt="HTML怎么检查网页广告链接是否失效" >、<iframe></iframe> 或 <script></script>,源码里根本找不到,W3C Validator 和静态扫描工具也扫不到。
操作步骤很简单:
- 打开广告页面,按
F12→ 切到Network标签页 - 勾选
Preserve log,然后刷新页面 - 在过滤栏输入
ad、taboola、doubleclick、gstatic等常见广告域名关键词 - 重点找
Status列标红的条目,点开看Response Headers里的Status行是不是404 Not Found
注意:如果看到 200 OK 但广告没显示,可能是返回了空响应、JS 报错或 CSP 拦截——这时要继续看 Console 面板。
为什么 htmlproofer 扫不出广告链接的 404
htmlproofer 只解析 HTML 源文件里的 href 和 src 属性,对 JS 动态生成的广告链接完全无感。比如以下代码在源码里根本不存在,htmlproofer 自然不会报错:
立即学习“前端免费学习笔记(深入)”;
document.getElementById('ad-slot').innerHTML = '<iframe src="https://ad.example.com/bid?zone=home"></iframe>';
即使你加了 --check-html 或 --enable-scripts,它也不会执行 JS。所以别指望它发现这类问题。
常见误判场景:
-
<iframe src="ad-banner.html"></iframe>在源码里存在,但实际部署时该文件被删了 →htmlproofer能扫出 -
ad-banner.html被 JS 拼成"ad-banner-" + Math.random() + ".html"→htmlproofer完全扫不到 - 广告 URL 是从后端 API 返回的 JSON 里取的 → 工具链上游就得介入,不能靠前端扫描
检查第三方广告链接要注意 Referer 和 User-Agent
有些广告平台(如 Google Ad Manager、Amazon UAM)会校验 Referer 或拒绝非浏览器 User-Agent 的请求。这时候你在终端用 curl 或 Python requests 直接测,可能返回 403 或 400,但浏览器里却正常加载。
验证时必须模拟真实环境:
- 用浏览器 Network 面板里右键对应请求 →
Copy as cURL,粘贴到终端执行,看是否复现 404 - 若返回 403,检查
Request Headers里的Referer是否和当前页面域名一致 - 某些 CDN 广告资源会拦截 HEAD 请求,
htmlproofer默认发 HEAD,结果误报;可加--request-method get强制发 GET
特别注意:https://pagead2.googlesyndication.com/... 这类链接在本地双击 file:// 打开时必 404,因为缺失有效 Referer 和 Origin,必须走 http://localhost 启的服务才能测准。
广告链接失效常被掩盖的三种情况
表面“能加载”,其实已失效,容易被忽略:
-
Status是200 OK,但响应体是重定向到一个“广告未配置”占位页(软 404),SEO 和用户体验都受损 -
<iframe></iframe>加载成功,但内部 JS 报错导致广告容器为空,Network 里看不到失败请求,得去 Console 查Uncaught ReferenceError - 广告图片
<img src="https://cdn.example.com/ad.jpg" alt="HTML怎么检查网页广告链接是否失效" >返回 404,但页面 CSS 设置了background-imagefallback,视觉上没红叉,实际资源不可用
真正要确认广告链接是否有效,不能只盯住“有没有红叉”,得看它最终是否触发了广告曝光埋点、是否返回了符合协议的响应结构(比如 GAM 要求返回特定 JSON 字段)。这一步往往需要结合广告平台的调试工具,比如 Google Publisher Console。



















