重复内容不一定是你抄别人,更多是自己造成的:带参数和不带参数、www 和非 www、分页、打印页、筛选页。每个版本都是一个 URL,权重被摊薄。
canonical 的作用是告诉搜索引擎:"这几个地址里,以这一个为准。"
一、什么时候该用
| 场景 | 是否用 canonical |
|---|---|
| 带跟踪参数的 URL | 是 |
| 筛选/排序页 | 是(指向主列表页) |
| 打印版页面 | 是 |
| 内容分页 | 否(每页指向自己) |
| 移动版与 PC 版 | 否(用 alternate 互指) |
| 真正不同的内容 | 否 |
二、正确写法
四个要点:
- 用绝对地址,带协议和域名。
- 指向的页面必须返回 200,不能是 301 或 404。
- 每个页面只写一个 canonical。
- canonical 指向的页面,自身也要 canonical 到自己(形成闭环)。
三、五个常见错误
1. 全站 canonical 都指向首页
这是最严重的错误。等于告诉搜索引擎"所有页面都是首页的副本",内页会全部掉出索引。
2. 分页页 canonical 指向第一页
会导致第 2 页之后不被收录,那些页面上的文章也就难以被发现。
3. canonical 指向 404 或重定向地址
信号失效,搜索引擎会忽略这条 canonical。
4. canonical 与 noindex 同时用
矛盾。要么规范化,要么不收录,二选一。
5. 动态插入 canonical
用 JS 插入的 canonical,可能不被识别。必须在 HTML 源码里。
四、canonical 和 301 怎么选
核心区别:301 是"这个地址不要了",canonical 是"这个地址还在,但请以另一个为准"。
- 旧地址永久不用了 → 301。
- 两个地址都需要能访问(比如带参数的分享链接)→ canonical。
能用 301 就用 301,信号更强。canonical 是次优方案。
五、怎么验证
- 查看页面源码,确认 canonical 存在且地址正确。
- 用
curl -I确认 canonical 指向的 URL 返回 200。 - 在搜索资源平台的"索引"报告里看"重复网页,用户未选定规范网页"的数量。
- 谷歌在 Search Console 的"网页索引编制"里会显示"已选择其他规范网页"的原因。
六、从源头减少重复
canonical 是补救,更好的做法是根本不产生重复 URL:
- 统一 www 和非 www(301)。
- 统一 http 和 https(301)。
- 筛选页用参数时,加 robots 屏蔽或 noindex。
- 分页 URL 规范化,避免
?page=1和/并存。
canonical 与分页的配合
列表分页的每一页都应该 canonical 到自己,而不是全部指向第一页。否则第二页之后的内容很难被收录,里面的文章也就少了被发现的机会。
如果分页内容确实重复度高,可以在第二页起加 noindex,follow——既不占索引,又能让蜘蛛顺着链接继续走。
分页的 canonical 写法
参数页、筛选页用 canonical 指向主页面,不要每个参数都单独收录。重复内容收敛后,抓取预算才够用。
canonical 和 301 不是二选一。已经确定要废弃的 URL 用 301,让权重完整转移;只是参数不同、内容相同的页面用 canonical,保留访问能力。两者混用时,301 优先级更高,只要发生跳转,页面上的 canonical 就不再生效。
常见问题
canonical 会被忽略吗
会。如果搜索引擎认为你的 canonical 不合理(比如指向不相关页面),会忽略它,自己判断。
跨域 canonical 有用吗
有用,比如内容同时发布在自己站和合作媒体上,可以 canonical 到原创站。但对方要配合。
百度支持 canonical 吗
支持,但识别能力不如谷歌。百度更认 301。
重复内容的整体治理,见站内结构优化。