网站收录

canonical 指错之后:收录会往哪个方向走

canonical 常被当成合并页面的开关,但它只是一份声明。本文梳理三种常见走向:被标记页被合并、仍然单独收录、目标页本身不可索引,并说明内链、sitemap、重定向等信号该怎么与它对齐,以及发现异常时的自查顺序。

网站收录

canonical 指错之后:收录会往哪个方向走

canonical 标签的定位是:在一组内容相近的页面里,告诉搜索引擎你希望哪一个作为代表版本保留在索引中。它是一份声明,不是一个开关。写上去之后会不会按你想的走,取决于页面之间的实际关系。

canonical 是被参考的信号,不是指令

通常搜索引擎会参考 canonical,把权重和信号往目标页集中,被标记的页面可能不再单独出现在索引里。但最终是否合并,还要看内容是否真的高度相似、内链怎么指、sitemap 里列了谁,以及其他技术信号是否一致。

所以经常出现的情况是:canonical 指向 A,B 页面却依然被单独收录。这不一定是“没生效”,而可能是引擎判断两者差异足够大,或者存在相反的信号。

几种常见走向

被标记页被合并

当 B 的内容与 A 确实高度重合,B 又通过 canonical 指向 A,内链和 sitemap 也没有把 B 当作独立页面推送,那么 B 通常会被合并,收录归到 A 上。这是 canonical 最典型的用法。

被标记页仍单独被收录

常见原因有这几类:

  • 两页内容差异不小,比如各自有独立正文、参数或信息,引擎认为不该合并。
  • B 有大量内链指向自己,或被外部引用,外部信号与 canonical 相冲突。
  • sitemap 里同时提交了 A 和 B,且两者都标注为可索引。
  • canonical 写成相对路径、链到 404 或重定向地址,被直接忽略。

指向的目标页本身有问题

如果 A 自己是 noindex、被 robots.txt 拦住,或者返回 404,那这份声明基本等于无效。更麻烦的是,B 的内容还在,信号却指向一个拿不到的东西,两边都不占便宜。所以除了写标签,还要确认目标页可索引、可访问、能被抓取。

canonical 要与其它信号对齐

canonical 很少单独起作用,它需要和几件事保持一致:

  1. 内链:站内链接尽量指向你希望收录的版本,而不是两个地址混着链。
  2. sitemap:只提交代表版本,别把近似页面一股脑塞进去。
  3. 重定向:如果旧地址确定不再使用,301 比 canonical 更干脆。
  4. hreflang:多语言版本之间用 hreflang 对应,不要用 canonical 把不同语言的页面互相指。
一句话:canonical 适合处理“同一内容、多个地址”,不适合用来解决内容本来就不同的页面。

几个容易踩的坑

  • 站点的多个入口(www 与非 www、带与不带尾斜杠)没有统一,却在每个页面上写 canonical,等于把混乱往下传。
  • 把列表页 canonical 到详情页,或反过来,两边结构差异明显,通常合不掉。
  • 用 canonical 指向一个不存在的地址,期望“删除”页面,这不是它的用途。
  • 分页页面全部 canonical 到第一页,后面几页里的内容链接容易收不到。

自查顺序

发现 canonical 没按预期走,可以按这个顺序看:先确认目标 URL 是否可访问、可索引;再对比两个页面的正文重合度;然后检查内链和 sitemap 是否指向同一个版本;最后才看标签本身写得对不对。多数问题出在前两步,而不是标签的写法。