·更新于 2026年10月25日· 11 次浏览 NuxtNode.jsSEO工程实践BUG解决

Nuxt 3 个人站死链排查:我用 Node.js 写了一个内链巡检脚本

收录页出现 404 和无效跳转后,我用一个 Node.js 脚本爬取站内页面、提取链接、校验状态码,并生成可执行的修复清单。

Nuxt 3 个人站死链排查:我用 Node.js 写了一个内链巡检脚本 封面
ZHOUYI

作者

ZHOUYI

前阵子在搜索后台看到几篇老文被收录,点进去却是 404;还有些旧栏目跳转到了已删除的页面。个人站文章不算多,但正文、标签页和归档页之间互相引用后,内链很容易越积越乱。靠手点排查太慢,我干脆写了一个 Node.js 脚本,把站内链接统一扫一遍,再输出修复清单。

先界定巡检范围

脚本第一步是确定入口:从首页、文章列表页、标签页和收录页开始爬。为了避免越爬越远,我只处理同域名链接,把带 hash、带查询参数的地址做归一化,并跳过 mailto、外链和图片资源。这样一次巡检就能覆盖主要内容页,不会被评论、外部推荐链接带偏。

提取链接并校验状态码

  1. 请求页面,拿到 HTML 后提取 a 标签的 href。
  2. 把相对路径拼成完整 URL,并去除重复地址。
  3. 对每个 URL 发起请求,记录 200、301、404、500 和超时。
  4. 把异常链接按来源页分组,生成 CSV 或 Markdown 清单。
javascript
async function check(url) {
  try {
    const res = await fetch(url, { redirect: 'manual' });
    return { url, status: res.status };
  } catch (err) {
    return { url, status: 'ERR', msg: err.message };
  }
}

脚本里我没有追求很高的并发,而是限制同时请求数量,避免把个人站的小服务器打满。对失败请求会重试一次,仍然失败才写入异常清单。输出时除了目标链接,还会带上来源页,方便直接定位是哪篇文章、哪个导航或哪个正文块出了问题。

常见坑与修复策略

最常见的不是 404,而是无效跳转:旧分类页 301 到首页,看起来能打开,但用户和搜索引擎都拿不到准确信号。还有一类是 Nuxt 动态路由在本地能访问,静态输出或部署后路径不存在。我的处理原则是:内容迁移要保留旧路径映射,确实没有对应页就返回 404,不要无脑跳首页。

  • 301 链:检查目标是否还存在,避免链到首页或错误页。
  • 404 链:找到来源页,改成相关文章、分类或归档入口。
  • 重复链:合并带斜杠、带查询参数造成的重复地址。

“这类巡检不需要一开始就做得很复杂,关键是能持续跑。每次大改栏目、迁移文章或调整路由后扫一遍,比等流量掉下来再排查省心很多。”

Guestbook

留言

若这篇文章也曾停在你心上,留一行字吧,我会看的。

先确认一下邮箱

多这一步,是为了少些机器骚扰,也让我能更踏实地读每一条真人写下的字。验证码 10 分钟内有效;同一邮箱 60 秒内只能发一封。

本文留言

共 0 条已加载 0 条

这里还静悄悄的——愿意做第一个留下脚印的人吗?