多语言、多地区站点在收录上最容易出的问题,不是“收录太少”,而是“收错版本”:英文页挤掉了中文页,香港版和台湾版互相替代,或者反过来,同一语言的多套 URL 各收一份,把索引撑得乱七八糟。要理清这件事,先把两个概念分开:hreflang 解决的是“给哪个地区的用户看哪个版本”,canonical 解决的是“哪个 URL 是这套内容的正式版本”。
hreflang 不是合并指令
很多人以为加了 hreflang,搜索引擎就会把几个语言版本合成一条结果。实际上它发挥作用的前提是几个版本都已经被收录,用来告诉搜索引擎“这几个 URL 是同一内容的不同语言或地区版本,请把合适的那个展示给对应用户”。也就是说,hreflang 既不负责收录,也不负责去重。如果英文页本身没进索引,hreflang 标得再全也没有意义。
哪些情况算重复内容,哪些不算
- 同一篇文章的中文版与英文版:不算重复,是两个独立内容,各自应该有自己的收录。
- 简体与繁体,正文措辞基本一致:属于高相似度,需要先想清楚是分开运营还是只保留一套。
- 同一语言、同一措辞,只换了货币或联系方式:大概率会被当成重复,这时候才轮到 canonical 出手。
- 机器翻译后未做人工调整的多个语言版本:容易被判为低质,即使收录了也很难带来流量。
URL 结构决定后续维护成本
语言和地区建议放在路径最前面,例如 /zh-cn/、/zh-tw/、/en/,层次清晰,便于规则统一。/zh-cn/ 与 /cn/ 混用、地区码大小写不一致,都会让后续的 hreflang 配置和日志排查变得很累。用子域名或独立域名也可以,但意味着要分别维护抓取与收录,成本更高。
canonical 与 hreflang 的分工
canonical 只在同一语言内部使用。中文页的 canonical 指向中文版,英文页指向英文版,不要出现“英文页 canonical 指向中文页”这种跨语言指定,那等于告诉搜索引擎只保留中文版。hreflang 则要求返回链接:A 页面标注 B,B 页面也必须标注 A,同时每个页面都要自引用一条。缺少返回链接的 hreflang 集群,通常会被整体忽略。
另外建议加一条 x-default,指向没有语言匹配时的兜底版本,一般用英文页或语言选择页。
上线后的自查顺序
- 先看各语言版本是否都已收录,只有一条收录的集群等于没生效。
- 检查 hreflang 是否成对、是否自引用,代码里的地区码是否与实际 URL 一致。
- 检查 canonical 有没有跨语言指错。
- 用站点地图按语言分开提交,便于分辨每个版本的抓取情况。
- 观察搜索结果的落地页:如果搜中文词长期落到英文页,多半是版本信号混乱。
常见串位现象怎么处理
如果某语言版本长期被另一版本替代,先按上面的顺序确认各类信号是否一致;如果多个版本内容确实高度重复,就明确保留一个主版本,其余用 canonical 收敛,不要既保留全部版本又指望搜索引擎自己挑。结构调整之后,索引里的版本更新需要时间,短期内仍看到旧版本并不代表改动没有生效,可以结合抓取日志观察后续变化。
版本切换和 canonical 调整属于结构性改动,建议分批做,一次只动一类信号,这样更容易从日志和搜索表现里判断哪一步起了作用。