同一篇文章,可能同时存在于这些地址:
https://example.com/post
https://example.com/post/
http://example.com/post
https://www.example.com/post
https://example.com/post?utm_source=weixin
https://example.com/category/tech/post
内容一模一样,地址有六个。这些几乎都不是有意造出来的——是系统、模板、分享链接自己长出来的。
引擎遇到这种情况会做一件事:从中挑一个当代表,把其余几个的信号合并到它身上。这个被选中的地址叫规范地址(canonical URL)。
问题不在于它合并,合并是对的。问题在于——它可能挑得和你想的不一样。
一、canonical 是建议,不是命令
<link rel="canonical" href="..."> 这个标签的作用,是你告诉引擎「这几个地址里,我认为这个才是正主」。
但它是一个信号,不是指令。 这是官方口径,也是最需要先说清的一点:引擎会参考它,也会不听它,而且不听的情况并不罕见。
因为引擎判断规范地址时看的不止这一个信号,还包括:
- 站内的链接都指向哪个地址
- 站点地图里放的是哪个
- 有没有跳转,跳向哪里
- 哪个地址被外部链接得更多
- 页面本身的完整度
这些信号在官方口径里是分级的:canonical 标签和 hreflang 属于强信号,站点地图里放了哪个地址只算弱信号,而 https 优先、跳转指向哪里则近乎硬约束。
分级的意义是:它们必须彼此一致。 只要互相打架,引擎就按自己的判断选,而它选的常常不是你想要的那个。
二、三种最常见的自相矛盾
第一种:canonical 指向 A,站点地图里放的是 B。
一边说「A 才是正主」,一边把 B 交上去说「请抓这个」。这是最普遍的一种,通常是两套逻辑由不同的人、不同的时间写的。
第二种:canonical 指向 A,全站内链却都链 B。
链接是权重最高的信号之一。你在每一页的页脚、每一篇的相关阅读里都链 B,然后在 B 的页面上贴一个指向 A 的标签——引擎更可能相信你的实际行为,而不是那个标签。
第三种:分页的第 2 页把 canonical 指回第 1 页。
这个错法后果最重,而且非常普遍。第 2 页和第 1 页内容不同,把它标成第 1 页的副本,等于告诉引擎「第 2 页上的内容不用管了」——那些内容会整个从索引里消失。
正确做法是每一页的 canonical 指向自己。分页不是重复内容,它们只是同一个序列里的不同片段。
三、几条不容易想到的
追踪参数会造出重复地址。 ?utm_source=... 这类参数不改变页面内容,但它是一个不同的地址。分享出去的链接带着参数被别人转载、被引擎抓到,就多出一份副本。最稳的做法是让页面的 canonical 始终指向不带参数的那一个。
www 与不带 www、http 与 https 要在服务器层就定死。 用 301 跳转统一到一个版本,别只靠 canonical 标签兜。这是一次性的配置,做完终身受益。
canonical 只适合内容真的相同或高度相似的情况。 把两个内容不同的页面用 canonical 绑在一起,被忽略是最好的结果,被采纳则意味着其中一个消失了。
同一篇文章挂在多个栏目下,是最隐蔽的一种。 内容管理系统里很常见,前台看不出异常,但同一篇文章确实有了两个地址。
四、落回 GEO:引到一个 404,等于没被引用
在传统搜索里,重复地址的代价主要是信号被稀释、排名上不去。在 AI 场景里,多了一层更直接的损失。
AI 给出答案时通常会附上来源链接。如果那个链接指向的是一个会 404、或者要跳两次才到的旧地址,这次引用对你基本等于没发生——用户点不进去,转化断了,归因也断了。
而 AI 引用哪个地址,取决于它索引里存的是哪个。索引里存的那个是引擎挑的,不是你希望的那个。这条链子上任何一环没对齐,最后损失的都是真实的到达。
AI 挑信源时到底在看什么,见AI 为什么推荐某些品牌。
GEO 效果怎么归因、三条通道各自的边界,见GEO 效果怎么归因。
还有一个更基础的判断顺序:如果日志显示页面明明被抓过,站长平台的索引量却不涨,重复地址是首要怀疑对象——抓了没存,卡的是第三关。定位方法见收录和排名的区别:怎么查自己卡在哪一关,整条链路见GEO 怎么做:先过搜索引擎的五道关。
常见疑问
问:canonical 设了,引擎一定会听吗?
不一定。它是一个信号而不是指令,引擎会把它和内链、站点地图、跳转、外链等其他信号放在一起判断。当这些信号互相矛盾时,引擎按自己的判断选,标签有可能被忽略。想让它生效,关键是让所有信号指向同一个地址。
问:带 utm 参数的地址会被当成重复内容吗?
会。参数不改变内容,但地址不同,对引擎来说就是另一个页面。让页面的 canonical 始终指向不带参数的版本,可以把这些副本的信号合并回主地址。
问:www 和不带 www 选哪个?
选哪个都可以,重要的是只保留一个,并且在服务器层用 301 跳转强制统一,http 到 https 同理。这件事应该在服务器配置里解决,而不是靠每个页面的标签去兜。
问:分页的 canonical 该怎么设?
每一页指向自己。把第 2 页指回第 1 页会让第 2 页的内容从索引里消失,这是个后果很重的常见错误。分页序列不是重复内容,它们各自有独立的内容。
问:同一篇文章发在自己站和第三方平台,AI 会引哪个?
通常引它索引里权重更高、抓得更早的那一个,多数情况下是平台方而不是你的官网。想让引用落回自己的站,能做的是让官网那一版先被抓到、内容更完整,并在第三方那一版里注明原文出处。这件事无法强制,只能提高概率。
---
想知道你的站上有多少重复地址在互相稀释?免费诊断一次,我们会读你站点的可抓取性与收录状况并给出清单。