站点运营

站点运营:canonical 标签自查,同一篇内容只留一个主地址

同一篇内容出现多个地址,是站内很常见的现象。canonical 标签用来指明主地址,但模板套错、指向 404、多层链条都会让它失去意义。本文梳理需要 canonical 的典型场景、写法要点、日常自查清单和常见误区,帮站点运营把重复地址的信号理顺。

站点运营

站点运营:canonical 标签自查,同一篇内容只留一个主地址

同一篇内容在站内出现多个地址,是很常见的事:带参数的列表页、打印页、分页、移动端独立域名、HTTP 与 HTTPS 并存,都可能指向同一份内容。地址一多,点击和权重就会被摊薄。canonical 标签的作用,就是告诉搜索引擎“这一份内容的主地址是哪个”。

什么时候需要 canonical

不是每个页面都要写。真正需要处理的是那些“内容相同、地址不同”的场景。

  • 列表页的筛选、排序、跟踪参数产生的地址,主列表其实只有一条。
  • 内容被拆成多页(如第 1 页、第 2 页),需要明确主页面与后续页的关系。
  • 同一篇文章同时存在于两个栏目下,或者新旧两套目录并存。
  • 移动端与 PC 端使用不同域名,且没有做自适应时。
  • 商品或文章存在多个变体页面,但主推一个入口。

写法上的几个要点

指向绝对地址

canonical 里写完整 URL,包含协议与域名,避免相对路径带来的解析歧义。地址要和线上实际可访问的版本一致,包括是否带 www、是否带结尾斜杠。

指向自己也是一种声明

页面本身就写自己,是正常的做法,可以防止参数拼接后产生的副本被当成主版本。

不要形成链条

A 指向 B,B 又指向 C,会让判断变得含糊。尽量一步到位,所有副本直接指向同一个主地址。

内容不同就不要硬指

两个页面主体内容差异较大时,用 canonical 把其中一个“隐藏”掉,通常两头不讨好。这种情况更适合考虑合并内容,或者让它们各自独立。

日常自查清单

  1. 抽取一批带参数的地址,看返回的 HTML 里 canonical 是否统一指向无参数版本。
  2. 检查分页:第二页之后是自指还是指向第一页。通常建议各自自指,主入口单独处理,具体按站内实际情况定。
  3. 核对 canonical 指向的地址是否返回 200,而不是 301、404 或软 404。
  4. 检查是否存在多个 canonical 标签。浏览器一般只认第一个,多余的容易造成困惑。
  5. 确认 canonical、站点地图里的地址、内链指向的地址三者一致。
  6. 改版或换域名后重新过一遍 canonical,别让旧域名残留在标签里。

常见误区

  • 用 canonical 代替 301。页面已经不打算保留了,应该做跳转,而不是标注。
  • 标签写在 JS 里。依赖脚本渲染的 canonical 不一定能被稳定读取,尽量放在 HTML 头部。
  • 认为写了就一定会生效。canonical 是建议不是命令,最终判断还会参考内链、站点地图、跳转等多种信号。
  • 批量生成时套模板出错。模板变量取错,会让整站页面都指向同一个地址,这是最容易出大问题的地方。
自查的顺序建议是:先确认主地址能正常访问,再看各种信号是否一致,最后才处理细节。方向错了,细节再规范也没有意义。

和其他信号配合

canonical 只是线索之一。内链都指向主地址、站点地图只提交主地址、副本页面做 301 跳转,这三件事和 canonical 方向一致时,判断才会更明确。如果内链一半指向 A、一半指向 B,标签写什么都会打折扣。

建议每隔一段时间抽查一次,尤其是调整栏目结构、上线新模板、接入新的参数之后。把这件事纳入日常巡检,比出问题后再回头排查要省力得多。