上周帮朋友查一个外贸站,死链首页打开正常,检测点进产品页直接跳 404。工具他一脸懵:明明后台显示链接都好好的死链。我让他把 sitemap 导出来,检测扔进死链检测工具跑一遍——三千多条 URL,工具四百多条返回 404 或 500。死链他那个站上线两年,检测从来没做过链接巡检。工具
死链这东西,死链平时不痛不痒,检测攒到一定量就是工具灾难。搜索引擎爬虫撞上几个 404 还能忍,死链撞上几百个,检测直接降低整站抓取频次。工具更别提用户点进去看到“页面不存在”那种体验,基本等于把人往外赶。做 SEO 的都知道,外链引来的流量一旦落到死链上,权重传递直接断掉。
工具做的事不复杂:把一批 URL 挨个发请求,看返回的 HTTP 状态码。200 是正常,301/302 是跳转,404 是页面没了,500 是服务器报错,还有超时、DNS 解析失败这些情况。听起来简单,但实际跑起来坑不少。
有些站做了反爬,检测工具请求太频繁直接被封 IP,后面全返回 403。有些页面是 JS 渲染的,工具拿到的是空壳 HTML,以为正常,其实内容根本没加载出来。还有那种软 404——服务器返回 200,但页面写着“您访问的内容已删除”。这种最阴,状态码检测不出来,得靠内容比对。
我自己的习惯是分三种情况用。
第一种,网站改版或换域名之后。老链接批量 301 到新地址,但总有一批漏网的。跑一遍全站检测,把 404 的挑出来补跳转规则。之前一个客户从 .html 改成目录结构,漏了大概 60 多条,全是被论坛引用的老帖链接。
第二种,定期巡检。大站内容多,编辑删文章、改 slug、下架产品,都会产生死链。每月跑一次,导出报告丢给技术处理。别等搜索引擎降权了才动手。
第三种,接手别人做的站。这时候全站扫一遍能快速摸清底细。我遇到过一个站,导航栏里三个链接是死的,估计从上线那天起就没好过。
市面上选择挺多。Screaming Frog 算老牌,桌面端,免费版能跑 500 条 URL,够小站用。优点是爬取逻辑做得好,能模拟搜索引擎蜘蛛。缺点是吃内存,跑大站得盯着。
在线工具像 Dr. Link Check、W3C Link Checker,适合快速查几个页面。不用装软件,但批量跑全站基本别想,要么限制条数要么慢得离谱。
命令行党可以试试 linkchecker,Linux 下装一个,写个脚本定时跑,输出 CSV 报告。灵活,但得会点技术。
还有个偏门用法:用 curl 配合 xargs 自己写。把 URL 列表丢进去,循环请求,grep 出非 200 的。糙是糙了点,但胜在可控。我有个脚本跑了三年,没出过问题。
检测频率别太高。同一域名下并发请求太多,轻则被封,重则给服务器压出毛病。设个 1-2 秒间隔,稳一点。
User-Agent 记得伪装成搜索引擎蜘蛛。有些站对普通 UA 返回 403,对 Googlebot 放行。用工具默认 UA 跑出来一堆 403,其实不是死链。
检测完别只看 404。301 链条太长也要处理,A 跳 B,B 跳 C,C 才到终点。搜索引擎对多级跳转的权重传递会打折。理想情况是一跳到位。
最后,死链报告出来之后,处理优先级排一下。首页、导航、高流量文章里的死链先修,深层页面可以缓一缓。别一股脑全丢给技术,人家也排不过来。
说到底,死链检测不是一劳永逸的事。网站活着,链接就会死。定期跑,及时修,别攒着。