·更新于 2026年10月25日· 7 次浏览 Nuxt3Vue3SEO工程实践BUG解决
Nuxt 3 博客收录被参数页稀释:我用 canonical、noindex 和 301 收回正文权重
一次收录异常让我发现,带参数的 URL 正在分走正文页权重。本文记录我如何识别重复入口,并用 canonical、noindex、301 在 Nuxt 3 路由层统一 SEO 权重。

作者
ZHOUYI
前阵子我查收录,发现一篇正文页排名不稳,反倒是 /post/xxx?from=home、/post/xxx?ref=rss 这类参数页被搜索引擎抓走了。它们内容一样,却分走了链接权重,也让统计和广告归因变乱。
一开始我以为是内容质量,后来在搜索平台后台和站点日志里对比,才发现同一篇文章被多个 URL 重复暴露。对个人站来说,这不是小问题:重复入口会稀释正文页权重,还会让爬虫把预算浪费在参数组合上。
先识别哪些 URL 在给正文页做分身
- 用站内搜索和收录结果检查同路径但带参数的 URL,尤其是 from、ref、utm、page、sort。
- 在 Nuxt 3 路由或访问日志里统计 query 出现频率,找出真正带来流量的参数和纯跟踪参数。
- 区分内容差异参数:分页、筛选可能改变列表,正文页的来源参数通常不应该生成新收录页。
我在路由层做的三件事
- 正文主版本统一 canonical 到无参数地址,告诉搜索引擎哪个页面才是主版本。
- 对需要保留但不该收录的参数页设置 noindex,避免它继续进入索引库。
- 对纯来源、纯跟踪参数直接 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 权重不是靠多入口堆出来,而是让每篇内容只有一个明确入口,其他入口都指向它。”