重复内容不一定是你抄别人,更多是自己造成的:带参数和不带参数、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 到自己,而不是全部指向第一页。否则第二页之后的内容很难被收录,里面的文章也少了被发现的机会。
如果分页内容确实重复度高,可以在第二页起加 noindex,follow——既不占索引,又能让蜘蛛顺着链接继续走。
参数页、筛选页用 canonical 指向主页面,不要每个参数都单独收录。重复内容收敛后,抓取预算才够用。
常见问题
canonical 会被忽略吗
会。如果搜索引擎认为你的 canonical 不合理(比如指向不相关页面),会忽略它,自己判断。
跨域 canonical 有用吗
有用,比如内容同时发布在自己站和合作媒体上,可以 canonical 到原创站。但对方要配合。
百度支持 canonical 吗
支持,但识别能力不如谷歌。百度更认 301。
重复内容的整体治理,见站内结构优化。