这三个东西经常被当成"让页面消失"的三种说法,其实意图完全不同。canonical 是"两个 URL 都保留,但请把主版本记在账上";301 是"旧地址永久作废,内容搬家了";noindex 是"页面给人看,但别进搜索结果"。选错了不会立刻报错,只会慢慢损耗。
一张对照表
| 你的诉求 | 该用 | 用错的代价 |
|---|---|---|
| 同一内容有参数、排序、追踪等变体 | canonical | 用 301 会让带参数的分享链接失效 |
| 老 URL 永久废弃,内容已迁移 | 301 | 用 canonical 等于告诉蜘蛛两个地址都还行,老页继续占预算 |
| 页面要留给人看,不进搜索 | noindex | 用 robots 屏蔽会让 spider 读不到 noindex,且内链传不出去 |
| 内容彻底删除,不留替代 | 404 / 410 | 挂 301 到首页会被判软 404 |
一个真实的产品页
2025 年 9 月,一个数据平台客户的产品页有四个地址:/pricing、/pricing?plan=team、/pricing/,还有大小写混写的 /Pricing。他们之前用 301 把所有变体都跳到 /pricing,结果市场部发出去的短链、客服给客户复制的链接全被弹回,客服每天接到链接打不开的投诉 6 起。
改成 canonical 集中到 /pricing,四个地址都能正常打开,主版本三周内排名从第 7 位回到第 3 位。同一个内容、同一批关键词,之前一直上不去,就是因为权重被四个地址分着。
混用会出什么事
- canonical 指向一个还在 301 的地址,蜘蛛要多跳一次,最后可能两边都不认。
- 同时写 noindex 和 canonical,等于给两个相反的指令,搜索引擎一般按 noindex 处理,但会降低对这个站配置的信任。
- robots.txt 屏蔽 + canonical,spider 读不到 canonical,屏蔽就变成纯粹的信息损失。
我们的判断标准
内容还在、只是形态重复,用 canonical;内容真的搬走了,用 301,不要长期用 canonical 吊着老地址;页面必须给人访问但不想被搜到,用 noindex,并且保留它原有的内链,别让链接断掉。
还有一条:能用 301 解决的永久迁移,别偷懒写 canonical。301 是一次性动作,canonical 是长期声明,后者需要每次改版都记得维护。
怎么验证有没有用混
拿一个星期做一次抽查就够了。第一步,用 Screaming Frog 跑全站,导出每个页面的状态码和 canonical 列,筛出"canonical 指向的 URL 本身返回 3xx"的记录,这类是典型混用。第二步,筛出"页面是 200 但 canonical 指向别的域名"的记录,跨域 canonical 只在内容分发场景下成立,产品页出现就是配置错误。第三步,把 GSC 索引报告里"网页会自动重定向"和"备用网页(有适当的规范标记)"两类数量拉出来对比,如果重定向类明显偏多,说明本该用 301 的地方也在用 canonical。
三步做完通常能捞出一二十个问题页。修的时候按流量排序,先修有排名的那些,别从首页开始。
一个边界
canonical 不是垃圾桶。如果一个地址将来要独立运营、要拿自己的排名,就别把它 canonical 掉。内容相同才合并,只是相关不算重复。
元析智能
为软件公司做 SEO 和 GEO 优化