站点运营

站点运营:canonical 标签自查,别让同一内容向蜘蛛发出矛盾信号

canonical 标签看着简单,却是最容易埋坑的地方:模板自动生成、改版忘记更新、分页和多语言混用,都可能让同一个页面向搜索引擎发出互相矛盾的信号。本文给出一套可以落地的自查流程,从抽样看源码到全站导出比对,帮你在改版前后把这件事理清楚。

站点运营

站点运营:canonical 标签自查,别让同一内容向蜘蛛发出矛盾信号

canonical 标签的作用只有一句话:当一个内容存在多个可访问的 URL 时,告诉搜索引擎哪个是主版本。听起来简单,但它出错的方式特别多,而且大多不会报错,只会在索引里慢慢表现成“这个页面好像不太对”。

为什么 canonical 容易出错

因为它通常不是人工写的,而是模板输出的。模板一旦写死,栏目改结构、URL 改规则、换域名,它都不会自动跟着变。再加上它属于“看不见的标签”,日常没人会盯着看,问题往往积累很久才被发现。

常见问题清单

  • 指向了一个已经 404 的旧地址;
  • 指向的地址本身还要经过 301 才能到达;
  • 同一页面输出了两个甚至更多 canonical;
  • 分页列表的每一页都 canonical 回第一页;
  • 列表页与详情页互相指向,形成回路;
  • 写的是相对路径,协议、www 与根域名混用;
  • 移动端页面 canonical 指向桌面端,但两边内容并不一致;
  • 多语言站点把所有语种都指向主语言版本。

一次能落地的自查流程

  1. 先抽样。从首页、栏目页、详情页、分页、带参页各挑几个,直接看源码里的 canonical 是什么。
  2. 再全站导出。用爬虫工具跑一遍,把 URL 与 canonical 两列导出成表格。
  3. 做比对。把结果分成几类:自引用、指向站内其他页、指向 404 或 5xx、缺失、重复输出。
  4. 核对一致性。canonical 指向的地址,是否和 sitemap、内链、重定向目标说的是同一件事。
  5. 修模板而不是修页面。发现问题优先改模板,避免下次更新又回到原点。

判断时可以参照的几条准则

  • 用绝对 URL,带上协议和域名,减少歧义;
  • 每页只保留一个;
  • 自引用是正常且推荐的,不需要刻意去掉;
  • 需要整页替换时用 301,canonical 处理的是“同一内容的多份副本”;
  • 不要指望用 canonical 掩盖结构问题,它只是一个建议信号。
canonical 是提示,不是命令。搜索引擎完全可以忽略它。如果你需要靠它来“救”一个本该修好的结构,那说明真正的问题在别处。

几个容易忽略的地方

分页是一个典型。列表的第二页、第三页各自有独立内容,把它们全部 canonical 到第一页,等于告诉搜索引擎后面几页不用单独看。除非你确实打算让它们合并,否则保持自引用更合适。

多语言是另一个。hreflang 负责说明语种之间的关系,canonical 负责说明同一语种内的主版本,两者分工不同,不要用 canonical 把不同语种合并成一个。

最后是改版节点。换域名、改 URL 规则、调整栏目结构之后,模板里的 canonical 往往还指向旧地址。把这项检查放进上线清单,比事后翻索引省事得多。

这套自查不需要一次做完全站。先抽样,再导出比对,把明显的矛盾和指向失效地址的情况清掉,通常就能解决大部分问题。