一、死链分三种,只有一种必须立刻修
不是所有返回404的链接都需要紧张。死链按影响程度分三类:| 类型 | 典型表现 | 影响等级 | 处理建议 |
|---|---|---|---|
| 内部死链 | 你自己网站上的A页面链接到B页面,但B页面已经不存在了 | 必须修 | 直接浪费内部PageRank传递,搜索引擎和用户都会撞墙。优先修复 |
| 外部死链 | 你的页面里引用了别人网站的链接,但对方网站挂了 | 建议修 | 影响用户体验,但对SEO直接影响较小。定期清理即可,不用急 |
| 孤立死链 | 页面存在但没有任何内部链接指向它,用户和蜘蛛都找不到 | 看情况 | 这些页面不是"死"了,是"没人能找到"。如果内容有价值,加几个内链指向它;如果没价值,直接删掉 |
二、四个主流死链扫描工具的实测对比
用同一个500页的企业官网做测试对象,四个工具分别跑了一遍,结果如下:| 工具 | 扫描耗时 | 发现死链 | 误报率 | 核心优势 | 核心短板 | 价格 | 推荐指数 |
|---|---|---|---|---|---|---|---|
| Screaming Frog | 3分12秒 | 47条 | 低 | 功能最全,死链之外还能扫重定向链/响应码/页面标题/元描述/hreflang等 | 免费版只支持500个URL;大站需要付费 | 免费500URL 付费£199/年 | ★★★★★ |
| Sitebulb | 4分05秒 | 45条 | 低 | 报告可视化最好,自动生成PPT风格的审计报告,适合给客户看 | 扫描速度比Screaming Frog慢;同样有免费URL限制 | 免费500URL 付费$15/月 | ★★★★☆ |
| Xenu Link Sleuth | 8分30秒 | 42条 | 中 | 完全免费无限制;Windows原生软件,轻量级,不需要安装 | 只支持Windows;界面古老;不处理JavaScript渲染的页面;会漏掉动态加载的链接 | 免费 | ★★★☆☆ |
| Wget + grep | 1分50秒 | 38条 | 高 | 最快,可脚本化,适合定时巡检和CI/CD集成 | 只能检测HTTP状态码,不能区分内外部链接;需要命令行基础;会漏掉JS渲染的页面 | 免费 | ★★★☆☆ |
Wget一行命令扫描全站死链
# 递归爬取全站,把404/500等错误URL输出到deadlinks.txtwget --spider --recursive --level=3 --no-verbose \-e robots=off \--reject-regex='\.(jpg|png|gif|css|js|pdf|zip)$' \https://你的域名.com 2>&1 | grep -E '404|500|503|broken' > deadlinks.txt这行命令的原理:用spider模式只检查链接不下载内容,递归深度设为3层,跳过图片/CSS/JS等静态资源,把返回404/500/503的URL都记录到文件里。适合Linux/Mac环境,Windows下用WSL运行。
三、不同场景的工具选择建议
小站(< 500页),零预算
- 首选:Screaming Frog 免费版
- 备选:Xenu Link Sleuth(完全免费无限制)
- 理由:500页以内Screaming Frog免费版完全够用,功能和报告质量远超Xenu。超过500页的站才需要付费或换方案
中大型站(500-5000页),有预算
- 首选:Screaming Frog 付费版(£199/年)
- 备选:Sitebulb($15/月)
- 理由:这个规模的站需要的不只是死链扫描,还有页面标题分析/重定向链检查/hreflang验证/结构化数据校验。Screaming Frog的全功能对SEO团队来说值这个钱
需要自动化定时巡检
- 首选:Wget脚本 + cron定时任务
- 备选:Google Search Console 的"索引→网页"报告(被动监控,有人访问到死链才会报)
- 理由:每周自动跑一次全站扫描,把新增死链发邮件或推送到钉钉/飞书。免费,稳定,适合挂到CI/CD里
给别人做SEO审计,需要好看报告
- 首选:Sitebulb
- 理由:自动生成带图表的审计报告,PDF导出直接发给客户。Screaming Frog的数据更全但报告没Sitebulb好看
四、扫出来的死链怎么批量修复
扫完死链只是第一步。拿到一个几十上百条的Excel列表之后,怎么修才是真正耗时间的地方:方案一:301重定向(最推荐)
如果死链页面有对应的新版本或替代内容,做301重定向是最优解——保留了旧链接的SEO权重,用户也不会看到404。
批量操作:把死链URL和新URL整理成CSV,用WordPress的Redirection插件导入CSV,或者直接写Nginx/Apache的rewrite规则批量配置。
方案二:恢复页面内容
如果页面是被误删的,从备份恢复。WordPress的话,检查是不是文章状态被改成了草稿或私密,改回"已发布"就行。

注意:恢复后检查一下内容是否过时,过时内容恢复回来对用户没价值,不如做301重定向到更新的相关文章。
方案三:修改引用链接
把指向死链的内部链接改成指向有效页面。这是从根源上解决问题——不仅是让用户不看到404,而是不再产生指向死链的链接。
批量操作:WordPress用Better Search Replace插件,在数据库里把旧URL批量替换成新URL。操作前一定先备份数据库。
方案四:直接返回410 Gone
如果页面确实该删,而且没有替代内容,用410比404更好。410告诉搜索引擎"这个页面永久删除了,别再来爬了",搜索引擎会更快速地把它从索引里移除。

不要做:把所有死链统一重定向到首页。这是最偷懒但最伤SEO的做法,搜索引擎会把这些视为soft 404,对网站评价反而更差。
五、修复完之后的验证和持续监控
死链修完之后不是就完事了。需要做三件事确保问题真的解决了:- 重新扫描一遍。修复完48小时后,再用同样的工具扫一遍,确认之前的死链都已经解决。重点检查301重定向的目标URL是否正确、有没有产生重定向链(A→B→C这种多次跳转)。
- 提交Google Search Console。在GSC的"索引→网页"报告里,把已修复的URL标记为"已修复",通知Google重新抓取。404页面被搜索引擎知道之后,即使你修好了,蜘蛛也不会主动回来验证——除非你通知它。
- 设置定期扫描。每周或每月自动跑一次全站死链扫描。网站越大、更新越频繁,扫描周期就要越短。电商站或内容站(每天都有产品上下架、文章增删)建议每周扫一次。
Wget定时巡检脚本(Linux crontab)
#!/bin/bash# 每周一凌晨2点执行全站死链扫描,新增死链发邮件通知DOMAIN="你的域名.com"EMAIL="你的邮箱@qq.com"LOG="/var/log/deadlink_scan_$(date +%Y%m%d).log"wget --spider --recursive --level=3 --no-verbose \-e robots=off \--reject-regex='\.(jpg|png|gif|css|js|pdf|zip)$' \"https://$DOMAIN" 2>&1 | grep -E '404|500|503|broken' > "$LOG"if [ -s "$LOG" ]; thenCOUNT=$(wc -l < "$LOG")echo "发现 $COUNT 条新死链,详见附件" | \mail -s "[死链告警] $DOMAIN 发现 $COUNT 条死链" \-a "$LOG" "$EMAIL"fi六、WordPress专用方案:插件一键扫描
如果你用的是WordPress,不需要上面那些工具,几个插件就能搞定死链的扫描和修复:Broken Link Checker
WordPress官方插件库下载量最高的死链检测插件。安装后自动扫描全站所有链接(包括文章内链接、侧边栏、评论里的链接),在后台直接显示死链列表,支持一键编辑或取消链接。免费版完全够用。注意:大站(>5000篇文章)慎用,持续扫描会消耗服务器资源。
Redirection
死链修复专用插件。支持手动添加301重定向、CSV批量导入重定向规则、自动监控URL变化并创建重定向、记录404日志方便排查。配合Broken Link Checker使用:一个查、一个修。
七、站群场景:多站点统一死链监控
管理几十上百个站的时候,每个站单独扫描不现实。需要一套能批量监控所有站死链的方案:统一死链扫描看板
写一个脚本遍历所有站点域名,批量执行Wget扫描,结果汇总到一个HTML或飞书表格里。每周自动跑一次,哪个站新增了死链、哪个站的死链数量在涨,一眼能看出来。用UC建站系统可以统一管理多站点的死链扫描结果,一个看板监控所有站的链接健康状态,不用登录各站点后台逐个排查。
站群死链的常见来源
站群死链和单站不太一样。除了常规的页面删除导致的死链,站群常见的死链来源还有:域名过期忘记续费导致整站不可达、服务器迁移后旧IP上的站没关、站群之间互相引用但某个站被关停、批量部署时模板里的示例链接没改掉。
