你要求对方把链接指向 https://example.com/page,但这一页的 canonical 指向 https://example.com/canonical-page。结果是那条外链提供的信息不会落在你希望被优化的那个地址上,而会归到规范地址那一页。这不是猜测——Google 官方在讲规范 URL 时写明,指定规范地址的理由之一,就是把各个 URL 上的信号(包括指向它们的链接)合并到一个首选 URL 上。
官方给的三种指定方法与强弱顺序
官方关于如何指定规范 URL 的说明把可用的方法按对规范化的影响力排了序,这个顺序本身就值得记住:
- 跳转。强信号,说明跳转目标应成为规范地址。
rel="canonical"链接标注。强信号,说明被指定的地址应成为规范地址。- 站点地图收录。较弱的信号,帮助站点地图里的地址成为规范地址。
同一份文档还有两句直接影响你决策的话:这些方法可以叠加使用,叠加之后效果更强;以及如果你不指定规范地址,Google 会自行判断哪个版本的地址对搜索用户最合适。这意味着 canonical 不是强制指令,而是一种偏好表达——你指定了不等于一定被采纳,不指定就完全交给对方判断。文档给出的实务要求里还有一条和外链直接相关:站内链接要统一链到规范地址而不是重复地址,这样做有助于 Google 识别你的首选地址。

落点和规范地址的关系,列成几种情形就够用了:
| 情形 | 外链指向 | 该页的规范地址 | 链接信息归到 |
|---|---|---|---|
| 一致 | /page | /page(自指) | /page,正常 |
| 不一致 | /page | /other | /other,与你的预期相反 |
| 未指定 | /page | 未指定 | 由 Google 判断,可能不是 /page |
| 经跳转收敛 | /page?utm_source=x | /page | /page,前提是跳转一跳直达 |
canonical 与外链落点会怎样互相影响
影响是双向的,这也是最容易漏掉的一半。从外链指向规范地址这侧看:外部发到某个变体上的链接,其信息会归到规范地址,所以让外链直接指向规范地址比指向变体更干净。反过来这侧看:把某页的 canonical 改指到另一页,已经发出的、指向原页的链接归属也跟着变——这是一次改动同时影响存量链接的操作,必须提前核对。
还有一层与 URL 形态直接相关。地址结构要稳定可预期的原因,人可读的描述性地址、尽量少用不必要的参数、注意大小写敏感这三条,都是为了让地址稳定;地址越稳定,外部已经发出去的链接就越不容易因为一次改版而集体失效。规范地址只有在候选地址足够少、足够稳定时才有意义——如果站内同时存在几十种写法,任何一个规范标注都可能漏掉一部分形态。
怎么验证合并确实生效
这一节先给判断方法,做什么放后面两节。四个检查。一、源码层:查看基准地址的源码,确认 rel="canonical" 指向自己,且没有第二处 canonical 标注与它冲突——官方不建议对同一页用不同技术指定不同规范地址。二、跳转层:用请求工具跟随跳转,确认各变体都是一跳直达基准地址,没有形成环。官方写明从重定向地址收到的内容会被忽略,处理的是最终目标 URL 的内容,所以这层没做好前面全白查。三、官方口径层:在 URL 检查工具里分别输入基准地址和几个变体,看 Google 报告的规范地址是不是都是基准地址;这是唯一能确认「Google 认哪个」的一手证据。四、报表层:在链接报告里按目标 URL 分组,确认外链主要记在基准地址上,而不是散落在各个变体上。
第三步和第四步对不上时,以第三步为准,并且把第四步的差异记进表里注明口径不同——两张表不一致本身不是故障,是需要说明的事实。核对链接是否真被计入的完整顺序见确认一条外链是否真被收录。
哪些场景不适用 canonical
检查没通过,多半是掉进了下面几类情形。分页、筛选、排序产生的地址对应不同内容集合,该合并的是重复内容而不是这些地址。多语言版本各有各的地址,合并会让语言信号互相覆盖,这一类要按语言各自指定。真正重复的内容才适用 canonical;版本各有独立价值时合并会白白丢掉一份入口。已下线页面该用跳转处理,跳转是更强的信号。官方也明确写了不要用 URL 删除工具做规范化用途。选好动作后,按最后一节的顺序执行一次。
把落点与规范地址对齐的操作步骤
发布或采购之前做一遍,顺序不要换:
- 先定形态。列出这个页面实际存在的各种写法(带 www、不带、大小写、带参数、带锚点),逐个访问记录状态码。凭印象列的清单基本都会漏。
- 选一个规范形态。选你最希望被引用的那个写法作为基准。其余全部配永久跳转到它,一跳直达。
- 在基准地址上加自指的
rel="canonical"。官方建议把 canonical 链到规范页自身。同时在站点地图里只放这个基准形态,不要出现第二套写法。 - 把站内链接统一到基准地址。这是让信号归到一处最省力的一步。
- 给外链定要求。在链接需求里写明:要链到这个基准地址,不带追踪参数。如果对方给了带参数的地址,你这边用跳转收敛,不要向对方追加要求。
- 做一次跳转映射存档。把每个旧地址对应到哪个基准地址记下来,将来改版时直接照表配。
这六步做完,下一次改版时你手里有一张旧地址到基准地址的映射表,外链不会再集体失效。第 1、2 步里收敛地址的具体做法见你怎么数外链,第 5 步里处理对方带参地址那部分见外链页面 301 之后原站该知道什么。