很多站点在排查重复内容时,会把 canonical 标签当成一个开关:只要页面上写了指向,就默认问题解决了。实际核对中更常见的失效原因,不是标签写错,而是标签指向的那个地址本身状态不对。所以收录核对里有一件事值得单独做一遍——顺着 canonical 指针走到目标地址,看它能不能承担“正本”这个角色。
canonical 是指针,不是结论
canonical 表达的是“这几份内容里,我认为哪一份是主版本”。它是给搜索引擎的提示,不是强制指令,最终是否合并、合并到哪一份,仍由对方判断。既然如此,指针指向的地址如果自己都进不了索引,这次合并就等于把副本往一个空容器里送。
核对顺序建议是:先确认目标地址可访问、可抓取、可索引,再看来源页标签写得对不对。顺序反了,就容易出现“标签全站都规范,收录却不动”的情况。
顺着指针走一遍:六个检查点
- 状态码:目标地址返回 200 才算合格。301、302 会绕一圈,404、410 直接判死,5xx 属于临时不可信。
- 可抓取性:robots.txt 有没有拦住目标路径,页面 meta robots 有没有写 noindex,响应头里的 X-Robots-Tag 也要看一眼。
- 是否二次跳转:目标页自己又写了一个 canonical 指向第三个地址,就形成链式指向;如果绕回原页,就是环。两种情况都要收敛成指向唯一终点的直连写法。
- 是否被争抢:多个主题不同的页面都把 canonical 指向同一个地址,属于过度合并。目标页和来源页内容差得太远时,这个指向基本无效,还可能让整批页面都失去独立入选的机会。
- 写法是否归一:http 与 https、带 www 与不带、结尾斜杠、大小写、跟踪参数,只要标签里的地址和实际可访问版本不是同一个字符串,就要统一。
- 目标页自身质量:目标页是不是空壳,是不是只有列表没有正文,是不是被模板挤到只剩几行字。指针指向一个内容单薄的页面,合并后也撑不起一个好结果。
三类高频错法
指向一个已经消失的地址
改版、下线栏目、合并页面时常见的遗留问题。来源页还在,标签还指着老地址,老地址已经 404。这种状态下来源页等于没有有效正本,核对时要优先处理。
指向一个被禁止索引的地址
目标页某次调整时加了 noindex,来源页的 canonical 没跟着改。结果是两边都进不去,原本想保的那一份也被一起放弃。
环形与链式
A 指 B、B 指 C、C 又指回 A。这种情况系统通常直接忽略全部指向,按各自内容独立判断,重复问题原样保留。
核对时怎么记
建议按来源页分组记录,每条至少保留四个字段:来源 URL、canonical 写的目标、目标的实际状态(状态码加是否可索引)、最终应该保留哪一份。只记一句“已加 canonical”没有意义,过两周再看还是不知道当时判断的是什么。
canonical 只解决“我想让谁当代表”的问题,不解决“代表页自己够不够格”的问题。前者是标签,后者是页面本身。
改完之后再做什么
指针修正属于结构性调整,不会立刻反映在索引里。可以先把改动过的 URL 集中列出来,观察后续抓取是否正常、目标页是否稳定留在索引中。如果一段时间后来源页仍然出现在索引里,再回头检查是不是还有别的入口(内链、sitemap、外链、历史提交)在持续把旧地址送出去。
顺序上,先把 canonical 指向修对,再去谈 sitemap 提交和抓取引导,比反过来省事得多。