死链检测与修复:别让你的网站变成“断头路”
点开自己发的外链,结果跳出个404——这种尴尬,我上周还踩了一脚。
你花时间写的干货、精心铺的推广,用户点进来却卡在“页面不存在”,不是内容没价值,是路被堵死了。
死链到底有多坑?一个真实案例告诉你
去年帮一个二手家具站做诊断,上线一年,流量一直起不来,关键词排名也飘在十页开外。
一开始以为是内容不够硬,结果一扒日志和爬虫报告,发现首页底部那个醒目的“联系我们”按钮,点进去直接报错;产品列表页里十几个分类链接,有八个指向已下线的老URL;连“关于我们”里的团队介绍图,都因为路径写错,全显示成破碎图标。
搜索引擎爬虫每天来一趟,看到的不是你的新货,是一地404。它不说话,但会默默调低你的优先级——爬得少,收得慢,新文章晾三天才进索引,老页面权重悄悄流失。
客户清理完这批死链后,没加一条外链、没改一行标题,两个月内自然流量稳住了,几个核心词慢慢爬回前三页。
死链最狠的地方,不是让你丢一个页面,而是让爬虫把本该分给新内容的“爬取额度”,全浪费在扫废墟上。
怎么快速检测死链?这3个方法最实用
不用等技术同事,也不用装一堆插件。这三个动作,今天就能上手。
方法一:用爬虫工具扫一遍
Screaming Frog 是我日常首选(Mac/Windows 都能跑),Xenu 也行(Windows 免费)。
打开软件,粘贴你的首页地址,点“开始”。它会像搜索引擎一样顺着链接一层层爬,几分钟后生成一份带状态码的清单:标红的是 404,黄色的是 500 或超时,绿色才是活的。
小技巧:在设置里勾选“忽略 URL 参数”,避免把 ?utm_source=xxx 这类参数当成不同页面,干扰判断。
方法二:看Google Search Console的“页面索引”报告
登录 Google Search Console → 左侧菜单点「页面」→ 右上角筛选器选「错误」或「已发现但未索引」。
这里列出来的,全是 Google 实际抓过、但没收录的页面。点开“404”那一栏,你会看到具体哪些 URL 被判了死刑——比如 /blog/seo-tips-2023/,或者 /contact-us.html。
这个报告比第三方工具更准,因为它反映的是 Google 真实看到的样子。我每周五下午花四分钟扫一眼,顺手记两笔,基本能掐灭大部分隐患。
方法三:手动检查关键页面
工具再好,也漏得掉人肉改错的链接。
重点盯死这四个位置:
- 首页导航栏所有按钮
- 页脚“关于我们”“联系方式”“隐私政策”这类固定入口
- 文章末尾的“相关推荐”或“往期回顾”
- 所有带
href的图片链接(尤其轮播图、banner 图)
我上个月就发现一个客户,把“招商合作”页面迁移到新域名后,首页轮播图的 a 标签 href 还锁着旧地址,用户点一次,就送一次404。
修复死链时,301跳转和404页面哪个更合适?
修之前先分清:这根“断掉的线”,还能接回去吗?
如果能接——用 301 跳转
比如你把 /products/couch/ 改成了 /shop/furniture/sofa/,那就让旧地址永久跳到新地址。
WordPress 用户装个 Redirection 插件,填两栏就搞定;用 Next.js 或 VuePress 的,配个 redirects 配置就行。
关键是:跳过去的地方,得是用户想找的内容。别把“二手沙发”的链接,跳到“二手床垫”页——那不是修复,是误导。
如果接不回——用友好的 404 页面
比如限时活动页过期了,或者某篇旧测评彻底下架了,就别硬跳。但别只扔个冷冰冰的 404 Not Found。
你的 404 页面至少要有三样东西:
- 一句大白话说明(例:“抱歉,这个页面我们暂时撤下了”)
- 一个站内搜索框(别让用户退回去再输关键词)
- 一个返首页按钮 + 两个高频入口链接(比如“最新上架”“热门分类”)
⚠️ 注意一个隐形雷:软404。
意思是服务器返回的是 200 OK 状态码,但页面内容写着“页面找不到了”。对搜索引擎来说,这就是个正常页面,它会反复来爬,徒耗资源。
修复时务必确认:真404,就返回 404 状态码;要跳转,就返回 301;别用 JS 重定向糊弄爬虫。
如何防止死链“春风吹又生”?这4个习惯要养成
修一次容易,管住下一次才见功夫。
1. 改URL前,先设跳转
每次调整栏目结构、重命名文章、换域名,第一步不是删旧页,而是加跳转。
WordPress 用 Redirection 插件,可以批量导入 CSV;静态站用 _redirects 文件(Netlify)或 vercel.json(Vercel);Nginx 用户加一行 rewrite ^/old-url$ /new-url permanent;。
留够三个月——足够搜索引擎重新抓取、用户从书签或外链回来。
2. 把死链扫描塞进周常流程
不用等出事。我把它设成每周一上午的第一件事:
- Screaming Frog 扫一遍主站(10分钟)
- GSC 看一眼「页面」报告(3分钟)
- 复制所有标红URL,贴进表格,标出“跳转”还是“下线”
坚持一个月,你就知道哪些环节最容易漏。
3. 每季度翻一翻外链
别人给你挂的友情链接、媒体稿里的锚文本、知乎回答里的引用链接……只要对方网站挂了,你的链接就变死链。
GSC 的「链接」报告里,点开「外部链接」→「失效链接」,能筛出一批。
如果发现某家媒体站连续两个月打不开,果断联系编辑更新,或把那条外链从你的“合作伙伴”页撤下来。
4. 写新内容时,顺手查旧链接
发布一篇新教程前,我会用浏览器插件 “Check My Links”(Chrome 免费)扫一遍草稿页——它会把所有失效内链标成红色。
尤其注意:旧文里提到“详见《2023年避坑指南》”,结果你刚把那篇改成《2024年实操手册》了,链接却没换。这种细节,最容易被忽略。
处理死链时,有哪些坑千万别踩?
踩过才知道,有些“省事”做法,反而让问题更难收场。
坑一:所有死链一律跳首页
这是最省力的做法,也是最伤用户体验的。
用户从公众号点进来找“安装教程”,结果跳到首页,还得再点三次才能找到目标——跳出率不飙升才怪。
正确姿势:按语义匹配。/guide/install/ 失效了,就跳 /help/;/blog/seo-mistakes/ 下线了,就跳 /resources/seo-checklist/。
坑二:只顾内链,不管外链指向
GSC 的「链接」报告里,有个「指向您网站的失效链接」分类。
如果你发现大量外站链接指向一个已删除的落地页(比如 /promo/black-friday-2023/),别光等对方改——你可以主动建一个新跳转:把那个失效URL,301 到你当前有效的活动页或产品合集页。相当于把流失的流量,悄悄导回来。
坑三:从不看服务器日志
工具扫的是你能访问的链接,但爬虫可能遇到你没测到的场景。
比如某个页面依赖前端 JS 渲染,你在浏览器里能看到,但爬虫加载失败,返回404;或者某个 API 接口超时,导致整页渲染中断。
简单做法:用免费工具 GoAccess 或 AWStats,每月导出一次 Nginx/Apache 日志,筛选出 404 和 500 请求最多的10个URL,逐个排查。
今天就能执行的1个操作:手动检查首页和三个核心页面
现在,关掉这篇文章,打开你的网站。
在浏览器地址栏输入首页网址,然后:
✅ 点一遍顶部导航栏所有文字链接(包括下拉菜单里的二级项)
✅ 滚到页脚,点开“关于我们”“联系方式”“隐私政策”三个链接
✅ 翻到首页轮播图、banner 区域,右键检查每个图的 a 标签 href 是否有效
如果发现任何打不开的页面,立刻打开你的后台(WordPress / 你的CMS / 代码仓库),做一件事:
👉 给这个失效URL加一条 301 跳转,指向最接近的可用页面(比如“招商合作”失效了,就跳到“加入我们”页)。
整个过程15分钟以内。做完,你就干掉了网站上最显眼、最影响用户的那批死链。