做了好多年SEO,你肯定踩过这个坑:产品页一上颜色、尺码、参数,URL就噼里啪啦冒出一堆;结果搜自家关键词,首页看不到主推款,反倒是某个“深灰+XL+包邮”的冷门链接排在前面——点进去内容几乎一样,但转化率低得离谱。更糟的是,百度站长后台天天弹“重复内容”警告,你点开一看,全是自己家的页面在互掐。
这事儿真不怪爬虫笨,是你没给它指清楚:谁才是正主。
为什么你的网站必须面对“多版本”这个坑?
电商、内容站、企业官网……只要URL能因颜色、尺寸、排序、来源渠道(比如?utm_source=weibo)或打印模式(?print=1)而变,就天然长出了多版本。
爬虫不会主动判断哪个更权威。它看到 /product/123、/product/123?color=blue、/product/123?size=m,就当是三个独立页面来抓、来存、来打分。
结果就是:
- 主页面的权重被摊薄,排名忽高忽低;
- 后台收录量虚胖,点进去全是“差不多”的页面;
- 严重时,整站被贴上“重复内容”标签,新页面进索引都变慢。
一个做定制礼盒的品牌就吃过亏:每种包装色生成一个独立URL,结果搜“高端定制礼盒”,首页前三全是小众配色页,主推的哑光黑款反而掉到第5页——因为没设 canonical,搜索引擎根本不知道该信谁。
如何判断哪个版本才是“主心骨”?
别靠感觉。盯住三件事:
用户从哪进来?
导航栏点“产品详情”,默认打开的是 /product/123,那它就是主线。带参数的都是支线,不该抢C位。
哪个页面信息最全?
删掉所有变体,只留一个URL,用户还能看全产品图、参数表、买家评价、售后政策吗?能的那个,就是主心骨。颜色筛选页只有图+一句“黑色款”,其他文字全抄主页面?那它不该当主。
URL干不干净?/product/123 是稳的;/product/123?color=red&sort=price 是临时工。静态路径优先,参数路径让路。
真实案例:手工皮具站,一款托特包有5个颜色URL,比如 /bags/tote-black、/bags/tote-brown。最初全没设 canonical,搜“tote包”,5个页面平分秋色,全卡在3–5页。后来他们选了销量最高、评价最多、图文最全的 /bags/tote-black 作主版本,其余4个页面的 canonical 全指向它。几个月后,/bags/tote-black 稳进前3页,其他颜色页也陆续出现在第1页,但统一显示为“已合并的重复版本”——流量和权重,终于聚起来了。
给每个URL贴对canonical标签的3个方法
主版本定了,怎么贴标签?不讲原理,只说你能马上做的:
方法一:在HTML头部硬编码
打开页面模板或单页编辑器,在 <head> 里加一行:
<link rel="canonical" href="https://你的域名/主版本URL" />
注意两点:
href必须是完整地址(带https://),别写/product/123这样的相对路径;- 一个页面只能有一条 canonical,多了等于没写。
方法二:用服务器响应头设置
如果你用 Nginx 或 Apache,可以在配置里加一行:
Link: <https://你的域名/主版本>; rel="canonical"
适合没有 HTML 头的资源,比如 PDF、Excel 下载页。一个电子书站就用这招,把英文PDF、中文PDF、日文PDF 的 canonical 全指向英文主版,避免多语言PDF被当成重复内容处理。
方法三:靠 sitemap 引导爬虫
XML sitemap 里,只提交你认定的主版本 URL,别把带参数的、筛选页、分页全塞进去。
同时,主版本的 sitemap 条目里可以加:
<xhtml:link rel="alternate" hreflang="zh" href="https://你的域名/zh/product/123"/>
这不是 canonical 替代方案,但能帮爬虫更快理清“谁是谁的翻译版”。
避坑提醒:别用 robots.txt 屏蔽多版本页面来“假装没这事”。屏蔽=不让爬,也不传权,那些页面会直接从索引里蒸发。
分页和筛选页的canonical怎么设才不翻车?
分页(博客第2页、第3页)和筛选页(按价格、品牌、库存筛选的结果页)最容易设错。
常见错误:把第2页的 canonical 指向第1页,以为能“集中权重”。
后果:第2页内容实际没被索引,用户搜“XX专题 第2页”点进来,可能看到空列表,或者跳转到第1页——体验崩,排名也崩。
正确做法:
- 分页每一页,canonical 都指向自己。第2页就写
/blog/page/2。 - 再补上
<link rel="prev" href="/blog/page/1">和<link rel="next" href="/blog/page/3">。Google 虽已弱化 prev/next,但百度、Yandex 还认,留着不吃亏。
筛选页要看内容价值:
- 如果只是换了个排序(比如“价格从低到高”),内容和主列表页几乎一样 → canonical 指向主列表页;
- 如果筛选本身构成独特场景(比如“露营必备装备”“办公室静音键盘”),页面有专属标题、描述、推荐逻辑 → canonical 就指向自己。
真实案例:户外装备站的产品列表页,有“按销量排序”和“价格从低到高”两个筛选入口。一开始全指向默认页,结果“按销量排序”页自然流量归零,主列表页也没涨。后来他们让“按销量排序”页保留自有 canonical,并在页面顶部加了一行:“本周销量TOP20——真正卖爆的装备都在这儿”,这个页面的搜索流量很快翻了几倍。
移动端和AMP页面的canonical,90%的人搞反了
m.域名、响应式页面、AMP页,本质都是桌面版的“衍生品”。
所以规则很简单:所有衍生版的 canonical,必须统一指向桌面主URL。
不是“移动版 → 桌面版”,也不是“AMP → 移动版”,而是:
- 桌面版:
<link rel="canonical" href="https://www.你的域名.com/xxx" /> - 移动版(m.域名或响应式):同样指向
https://www.你的域名.com/xxx - AMP版:也指向
https://www.你的域名.com/xxx
为什么?因为桌面版通常内容最全、更新最及时、结构最稳定。把它当唯一信源,爬虫解析起来最省力。
同时,桌面版 <head> 里要加上:
<link rel="amphtml" href="https://www.你的域名.com/xxx/amp" />
告诉爬虫:“我还有个加速版,地址在这。”
避坑:检查移动端页面的 <head>,确认里面没有漏掉指向桌面版的 canonical,也没有误写成指向 AMP 版。一个新闻站就因移动页 canonical 错指 AMP 页,导致 AMP 权重虚高,桌面版在百度PC端排名掉了两三级,修复后才慢慢爬回来。
多语言多地区版本,canonical和hreflang怎么配合?
中/英/日站,美/英/澳站——这类站点,canonical 和 hreflang 不是二选一,是搭档上岗。
铁律只有一条:每个语言/地区版本的 canonical,必须指向自己,不能跨语言指向。
比如:
- 中文页
/zh/product/123→ canonical 是https://你的域名/zh/product/123 - 英文页
/en/product/123→ canonical 是https://你的域名/en/product/123
然后,两个页面里都要用 hreflang 互相标注:
<link rel="alternate" hreflang="zh" href="https://你的域名/zh/product/123" />
<link rel="alternate" hreflang="en" href="https://你的域名/en/product/123" />
<link rel="alternate" hreflang="x-default" href="https://你的域名/zh/product/123" />
千万别把英文页 canonical 设成中文页。那样搜索引擎会认为英文是中文的镜像,直接忽略英文内容。
一个跨境电商品牌就栽在这儿:日本站所有页面 canonical 全指向美国站,结果在日本 Google(google.co.jp)上,自家产品页几乎搜不到。改完一周,首页就开始陆续出现日文页。
实操建议:用 WordPress 的 WPML 或 Polylang 插件时,别全信“自动设置 canonical”选项。进几个典型页面,右键“查看源代码”,手动核对 <head> 里的 canonical 和 hreflang 是否都准确、无遗漏。
今天就能执行的一个操作:扫描并修复你的canonical
不用等大改版,现在就能动手。
今天打开你的百度搜索资源平台(或 Google Search Console),做这一步:
→ 在“网页分析”或“索引状态”里,导出最近7天被索引的Top 20页面(通常是流量最高的产品页、爆款文章);
→ 把这些URL粘贴进 Screaming Frog(免费版够用),跑一遍;
→ 在结果里点开“Canonical”列,看每一行的 canonical 指向是否是你定的主版本;
→ 发现指向错误(比如指向了带参数页、指向了404、指向了移动版)?立刻登录你的CMS后台,在对应页面的SEO设置或HTML编辑区,把 canonical 改成绝对路径的主URL;
→ 改完,回到百度搜索资源平台,用“链接提交”功能,把这20个页面逐个重新提交。
每周坚持扫10个页面,一个月后,重复内容警告会少一大半,主推页面的排名也会开始松动、上浮。