·更新于 2026年10月25日· 7 次浏览 Nuxt3Vue3SEO工程实践BUG解决

Nuxt 3 博客收录被参数页稀释:我用 canonical、noindex 和 301 收回正文权重

一次收录异常让我发现,带参数的 URL 正在分走正文页权重。本文记录我如何识别重复入口,并用 canonical、noindex、301 在 Nuxt 3 路由层统一 SEO 权重。

Nuxt 3 博客收录被参数页稀释:我用 canonical、noindex 和 301 收回正文权重 封面
ZHOUYI

作者

ZHOUYI

前阵子我查收录,发现一篇正文页排名不稳,反倒是 /post/xxx?from=home、/post/xxx?ref=rss 这类参数页被搜索引擎抓走了。它们内容一样,却分走了链接权重,也让统计和广告归因变乱。

一开始我以为是内容质量,后来在搜索平台后台和站点日志里对比,才发现同一篇文章被多个 URL 重复暴露。对个人站来说,这不是小问题:重复入口会稀释正文页权重,还会让爬虫把预算浪费在参数组合上。

先识别哪些 URL 在给正文页做分身

  • 用站内搜索和收录结果检查同路径但带参数的 URL,尤其是 from、ref、utm、page、sort。
  • 在 Nuxt 3 路由或访问日志里统计 query 出现频率,找出真正带来流量的参数和纯跟踪参数。
  • 区分内容差异参数:分页、筛选可能改变列表,正文页的来源参数通常不应该生成新收录页。

我在路由层做的三件事

  1. 正文主版本统一 canonical 到无参数地址,告诉搜索引擎哪个页面才是主版本。
  2. 对需要保留但不该收录的参数页设置 noindex,避免它继续进入索引库。
  3. 对纯来源、纯跟踪参数直接 301 到干净路径,把访问和权重都收回正文页。
ts
export default defineNuxtRouteMiddleware((to) => {
  const tracked = ['utm_source', 'from', 'ref']
  if (to.path.startsWith('/post/') && tracked.some(k => k in to.query)) {
    return navigateTo(to.path, { redirectCode: 301 })
  }
})

canonical 和 robots 我放在页面的 useHead 里按路由计算:文章详情默认使用无 query 的绝对地址作为 canonical;如果带了筛选、预览或临时参数,就改成 noindex,follow。这样既不会误伤必要功能,也能让爬虫知道该跟哪些链接。

踩坑与收尾

最容易踩的坑是一刀切:看到参数就 301,可能把分页、搜索、预览和登录回跳也干掉。上线前我会先列出参数白名单,再用少量文章验证重定向只有一跳,sitemap 也只提交干净 URL。收录恢复通常不会立刻发生,后续以官方文档为准。

“SEO 权重不是靠多入口堆出来,而是让每篇内容只有一个明确入口,其他入口都指向它。”

Guestbook

留言

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

先确认一下邮箱

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

本文留言

共 0 条已加载 0 条

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