網站收錄

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 是否指向同一個版本;最後才看标簽本身寫得對不對。多數問题出在前两步,而不是标簽的寫法。