同一篇内容被多个 URL 访问(带/不带 www、带/不带参数、http/https)时,canonical 告诉搜索引擎"哪个才是正主",避免权重被稀释。
-
保留参数数
-
剔除参数数
-
规范链接长度
-
规范链接 = 协议 + 域名(按 www 策略处理)+ 路径(按末尾斜杠策略处理)+ 保留下来的查询参数。canonical 必须使用绝对地址,且应当是可直接访问的 200 页面。
什么是重复内容问题
搜索引擎把每个 URL 视为独立页面。当同一篇内容可以通过多个 URL 访问时,权重会被分散到这些 URL 上,任何一个都难以获得应有的排名——这就是"重复内容"问题的核心。
常见的重复来源:
- http://example.com/a 与 https://example.com/a
- example.com/a 与 www.example.com/a
- /a 与 /a/ 与 /a?utm_source=xx
- 列表页分页、排序参数、会话 ID 参数(?sid=abc123)
- 打印版本、移动版独立域名
canonical 的正确用法
| 要点 | 说明 |
|---|---|
| 必须是绝对 URL | 写 /a 无效,要写完整 https://example.com/a |
| 指向 200 页面 | canonical 指向 404 或重定向页是错误配置,会被忽略 |
| 每页唯一 | 同一页面出现多个 canonical 标签,搜索引擎会全部忽略 |
| 自引用是正常的 | 规范页面本身也应有指向自己的 canonical,这能明确表达"我就是正主" |
| 不能跨站滥用 | 把 A 站的 canonical 指向 B 站,相当于把权重送人 |
canonical 与 301 的区别
两者都能处理重复内容,但性质完全不同:
- 301 重定向:强制跳转,用户和搜索引擎都会被带到目标 URL。适合确定要废弃的 URL。
- canonical:仅作建议,用户仍停留在原 URL。适合必须保留多个 URL 可访问的场景(如带参数的分享链接、A/B 测试页面)。
能用 301 的就用 301,canonical 是"不能重定向时的折中方案"。对于 http→https、无 www→有 www 这类规范化,应当以 301 为主、canonical 为辅。
哪些参数不该进 canonical
营销追踪参数(utm_*、gclid、fbclid 等)一定会造成重复内容,应全部剔除。分页参数(page)和筛选参数则要看策略:
| 参数类型 | 建议 |
|---|---|
| utm_source / utm_medium 等追踪参数 | 剔除 |
| gclid / fbclid / msclkid | 剔除 |
| sessionid / sid 等会话参数 | 剔除(最好从源头避免写入 URL) |
| 排序参数 sort / order | 剔除,指回默认排序 |
| 分页参数 page | 保留(或使用 rel=prev/next 配合) |
| 商品规格参数 sku / color | 保留,通常是独立可索引页面 |
你可能还想问
规范链接是做什么的?
告诉搜索引擎哪一个地址是页面的首选版本,避免同一内容因多个地址被分散权重而互相竞争。
写绝对地址还是相对地址?
建议用完整的绝对地址,且协议与域名要与站点最终访问方式一致,避免因协议混用导致识别失败。
配错了有什么后果?
可能让搜索引擎抓取错误的规范版本,甚至影响收录;上线前逐页核对,避免批量生成时漏掉带参数的地址。
速查在线工具箱