站点运营

站点运营:canonical 自查,别让一个标签把页面指向别处

canonical 标签写错,可能让蜘蛛把多个页面当成同一个地址。本文整理一套可执行的自查流程:从模板输出、分页、筛选页到移动端与多语言版本,逐个确认每个页面声明的是自己,改完后再用抓取工具和访问数据验证效果。

站点运营

站点运营:canonical 自查,别让一个标签把页面指向别处

canonical 标签大多由模板自动输出,装好 CMS 之后很少有人再回头看它。平时站点不出问题,但一旦改版、换域名、上线筛选参数,这个标签就可能把一批页面指向另一个地址。自查的目的不是追求完美,而是确认每个页面声明的是不是自己。

第一步:确认 canonical 指向的是当前页面

判断标准很直接:页面里的 canonical 地址,应当与浏览器地址栏中那个规范、希望被访问的地址一致。可以逐项对照:

  • 协议:HTTPS 页面的 canonical 不要写成 http,否则等于告诉蜘蛛还存在一个明文版本。
  • 域名:带 www 与不带 www 只能保留一个,全站统一。
  • 路径:结尾斜杠、大小写、默认首页写法要保持一种形式。
  • 参数:追踪参数、会话 ID 不应该出现在 canonical 里。

分页与列表页最容易出问题

  • 分页:第 2 页之后的 canonical 指向哪里,全站要一致。有的站点让每页指向自己,有的统一指向第一页,两种思路各有取舍,但不要一半指向自己、一半指向第一页。
  • 筛选页:颜色、价格、排序等参数组合会生成大量地址。要么让这些页面 canonical 到无参数的栏目页,要么用 robots 规则限制抓取,注意两种做法不要互相矛盾。
  • 标签与聚合页:内容单薄时可以考虑指向主栏目,但先确认这些页面确实没有独立价值,别顺手把所有聚合页都指走。

几个高频错误场景

全站模板写死一个地址

主题或模板里硬编码了首页的 canonical,结果每个页面都在声明自己是首页。这类问题通常出现在换主题、改版之后,用浏览器查看源码就能发现。

详情页指向栏目页

部分程序在文章页输出了所属栏目的 canonical,本意是合并权重,实际等于让蜘蛛忽略文章本身的地址。除非确实要做内容合并,否则不要这么做。

移动端与桌面端互指

如果站点有独立的移动域名,canonical 一般指向桌面版地址,移动版自身不要再指向自己,两套规则同时存在会让判断变乱。

多语言版本用错

语言版本应各自 canonical 到自己,再用 hreflang 互相标注。把英文页 canonical 到中文页,等于主动放弃英文页面的独立地址。

canonical 是建议而不是指令,蜘蛛会结合页面内容和其他信号做判断。写错不等于页面一定不被收录,但会让判断变复杂,也会让你排查问题时多绕几圈。

自查怎么落地

  1. 从栏目页、文章页、分页、筛选页、移动版各抽几条地址,用浏览器查看源码里的 canonical。
  2. 用抓取工具批量跑一遍,导出每个地址与其 canonical 的对照表。
  3. 筛出 canonical 与自身地址不一致的行,逐条判断是刻意设置还是模板错误。
  4. 修改模板或规则后,重新抓取一批地址确认输出正确。
  5. 过几周再看服务器日志和站长平台的抓取数据,确认没有明显异常波动。

改完之后别急着下结论

canonical 的调整不会立刻反映到抓取和收录上,通常需要一段时间。期间尽量不要再叠加其他大改动,否则很难判断是哪一步起了作用。如果只是修掉了明显的模板错误,保持观察即可,不必因为短期数据波动就来回改回去。

把这项自查放进改版清单里,每次换主题、换域名、上线新栏目时顺手过一遍,比事后猜原因要省事得多。