Rudra Analyzer

链接与错误

如何修复网站上的失效链接(并防止新的死链出现)

失效链接从何而来、如何找到它们、如何在更新、重定向和移除之间做选择,以及如何防止它们卷土重来。

作者:Rudra Techno Team 阅读约 7 分钟
本页内容

失效链接(也叫死链)是指向不了任何有用内容的链接:目标页面已被删除或移走,服务器返回错误,或者域名已不复存在。对访客来说,这是一条死胡同。对搜索引擎的抓取工具来说,这是一条走到一半就断掉的路,路后面的页面也就更难被发现。

失效链接很少是一次性的重大故障。它们是随着页面改名、产品下架、别的网站调整结构而一点点累积起来的。本指南将介绍如何找到它们、如何决定每一个该怎么处理,以及如何防止新的失效链接出现。

哪些情况算失效链接

  • 404 Not Found 或 410 Gone:该地址上不存在这个页面。这是最常见的情况。
  • 5xx 服务器错误:页面存在,但服务器无法把它送达,可能是长期如此,也可能时好时坏。
  • 完全没有响应:域名已过期、DNS 解析失败,或请求超时。
  • 软 404:页面上写着“未找到”,但服务器返回的是 200 OK,于是工具和搜索引擎可能把它当成一个真实的页面。
  • 占位链接:在看起来像是页面链接的元素上使用 href="#" 或 javascript:void(0)。技术上什么都没坏,但访客哪儿也去不了。
  • 失效资源:返回 404 的图片、脚本或样式表。它们不是链接,但成因相同,对页面的破坏同样一目了然。

链接为什么会失效

  • 页面被删除,或者网址别名(slug)被修改,却没有人添加重定向。
  • 改版或 CMS 迁移改变了网址结构,比如给每篇文章加上 /blog/,或去掉了 .html。
  • 有人手动输入链接时打错了。
  • 像 ../pricing 这样的相对链接,在所在页面移动之后不再有效。
  • 指向预发布环境或本地开发地址(如 staging.example.com)的链接混进了已发布的内容。
  • 外部网站删除或移走了你链接的页面。这种“链接腐烂”不在你的掌控之中,所以需要定期检查。

如何找到失效链接

没有哪一个来源能呈现全貌,所以要把几种方法结合起来:

  1. 用链接检测工具检查关键页面。Rudra 的免费死链检测工具会在真实浏览器中打开页面,收集指向同一网站其他页面的链接,并请求其中最多 12 个(优先请求导航链接),标出所有返回错误状态或没有响应的链接。它还会测试前 5 个指向其他网站的链接,报告你自己网站上加载失败的脚本、图片和字体,并列出页面上的 JavaScript 错误和控制台错误。
  2. 抓取整个网站。单页检查发现不了要点三次才能到达的失效链接。Rudra 的整站抓取(可以从演示页面开始)会沿着内部链接遍历它抓取的页面,记录每个链接目标的状态码,并报告全站范围内失效的内部链接,以及 # 占位链接。免费版每次扫描最多抓取 10 个页面。
  3. 查看 Google Search Console。网页索引编制报告会列出 Google 尝试抓取但返回“未找到 (404)”的网址。其中一些来自其他网站上的链接,这是抓取你自己的网站时看不到的。
  4. 查看统计分析数据或服务器日志。404 页面的浏览记录加上来源页面,能告诉你真实访客实际点到了哪些失效链接。

如何一步步修复失效链接

先把失效链接按目标网址分组。一个被删除的页面往往对应着几十条失效链接,一次性解决目标网址比逐条修改链接要快。然后为每个目标从以下四种修复方式中选择一种。

1. 更新链接

如果内容还在,只是换了地址,而包含该链接的页面又归你管,那就直接把链接改为指向新网址。这是处理内部链接的最佳方式。对于站内链接,不要依赖重定向:每次重定向都会多一次往返,而直接指向最终网址的链接对抓取工具来说也更清晰。

2. 添加永久重定向

如果旧网址还有来自其他网站、收藏夹或搜索结果的链接,就把它永久重定向到内容最接近的对应页面。有以下几种做法:

  • Apache(.htaccess 或虚拟主机配置):Redirect 301 /old-pricing /pricing
  • nginx:location = /old-pricing { return 301 /pricing; }
  • Next.js(next.config.js):async redirects() { return [{ source: '/old-pricing', destination: '/pricing', permanent: true }]; }。设置 permanent: true 后,Next.js 会发送 308,它同样表示永久重定向,并且会保留请求方法。
  • Netlify 风格的重定向文件(_redirects):/old-pricing /pricing 301
  • WordPress:如果无法修改服务器配置,可以使用重定向插件,或主机商提供的重定向设置。

要重定向到真正能替代旧页面的页面。把所有失效网址都导向首页只会让访客摸不着头脑,而且 Google 很可能照样把这种不相关的重定向当作软 404 处理。

3. 替换或移除链接

对于已经失效的外部链接,先在对方网站上搜一下该页面的新位置。如果确实没有了,就改为链接到另一个讲同一要点的可靠来源,或者删掉链接并调整句子,让它读起来依然通顺。Internet Archive 的 Wayback Machine 可以让你看到原页面的内容,有助于找到替代来源。

4. 有意让它返回 404 或 410

如果内容已经彻底删除,又没有任何替代内容,那么 404(或表示“已永久移除”的 410)就是正确的响应。把你自己指向它的链接删掉,并确保 404 页面能帮访客继续浏览:放一个搜索框,再加上通往各主要版块的链接,效果就很好。

然后做些收尾工作

  • 用同样的方法修复失效资源:更正图片、脚本或样式表的路径,或者删除引用。
  • 缩短重定向链。如果 /a 重定向到 /b,后者又重定向到 /c,就让 /a 和你的链接都直接指向 /c。Rudra 的 SEO 检测工具会在你测试的网址存在过长的重定向链时给出提示。
  • 复查。再运行一次检测工具确认修复生效;做完较大规模的清理后,再重新抓取一次。

确保不存在的页面真的返回 404

如果服务器在显示友好的“页面未找到”提示的同时返回的是 200 OK,那还不够。可以在浏览器的开发者工具中查看状态码(打开 Network 面板后刷新页面),或者在终端中运行 curl -I https://example.com/this-page-does-not-exist。如果显示 200,就要在服务器或框架中修正;例如在 Next.js 的 App Router 中,调用 notFound() 就会以 404 状态渲染 not-found 页面。

如何防止新的失效链接出现

  • 修改网址之前先规划好重定向。在改版或迁移期间,用一张表格把每个旧网址对应到新网址,并在上线时让重定向同步生效。
  • 不要为了好看而修改网址别名。一个能用的网址,比一个稍微整洁一点的网址更有价值。
  • 使用 CMS 自带的内部链接选择器,而不是粘贴网址,这样页面移动时链接会自动更新。
  • 保持网址风格统一:使用小写,结尾斜杠的写法只用一种,并通过重定向强制执行。
  • 定期检查。大多数网站每月一次即可,此外每次发布或内容迁移之后也要检查。

常见错误

  • 把所有失效网址都重定向到首页。
  • 明明是永久迁移,却用了临时的 302 重定向。
  • 任由内部链接指向重定向,而不是最终网址。
  • 删除了有其他网站链接的页面,却没有做重定向。
  • 去“修复”那些仅仅因为对方网站拦截自动检测工具才被标记的外部链接。
  • 因为 # 占位链接不会显示为错误,就对它们视而不见。

检查整个网站的失效链接

输入你的网址,Rudra 就会抓取你的页面,在报告 SEO、性能和无障碍问题的同时,列出失效的内部链接。

检查您的首页 · 免费 · 无需注册

常见问题

失效链接会影响 SEO 吗?

Google 表示,404 错误是网络中的正常现象,它本身不会损害网站其余部分的排名。真正的代价是访客的不满、走进死胡同的抓取路径,以及其他网站指向已删除页面的链接所白白损失的价值。请修复失效的内部链接,并为有外部链接的已删除页面设置重定向。

404 和 410 有什么区别?

404 表示页面未找到;410 表示页面已被有意移除,并且不会再恢复。两者都会让搜索引擎逐渐把该网址从索引中移除。用你的平台上更容易实现的那个就行;关键是不要对不存在的页面返回 200。

每个失效网址都要做重定向吗?

不用。只重定向那些有真正替代页面且仍有一定价值的网址,比如有其他网站的链接、被人收藏或有搜索流量。其余的就让它们返回 404,并删掉你自己指向它们的链接。

应该多久检查一次失效链接?

对大多数网站来说,每月一次是不错的默认频率,此外在改版、迁移或大规模内容变更之后也要检查。外链很多的网站(比如资源导航站)适合更频繁地检查,因为外部页面会毫无征兆地消失。

Rudra 的死链检测工具会检查外部链接吗?

会检查一小部分。单页检查最多测试 12 个指向你自己页面的链接,以及前 5 个指向其他网站的链接。由于许多网站拒绝自动化访问,其他网站返回的 403 或 429 等响应会被视为无法确定,失效的外部链接也仅作为参考信息报告。整站抓取会检查所抓取页面之间的内部链接。在修改任何被标记的链接之前,请先在浏览器中核实。

需要更深入的网站分析?

查看网站上的每个问题,并按修复优先级排序

无需账户即可免费检查任意页面,注册后还可抓取整个网站。每份报告涵盖 SEO、常见性能问题、无障碍和安全,并为每个问题提供修复建议。