hreflang 语言码误区: 双语博客为什么在部分地区搜索排名不稳

我的博客同时有中文版和英文版. 搜索引擎靠 hreflang 标签来理解"哪个页面是中文, 哪个页面是英文". 这个声明如果含糊, 会在不知不觉中伤到搜索排名, 我一开始也没当回事, 直到排查排名问题才发现它的坑.

搜索引擎怎么知道有两个版本

同一个站, 中文和英文各一份, 搜索引擎凭什么知道它们是同一篇内容的两种语言?

靠的就是 hreflang 标签. 它长这样:

<link rel="alternate" hreflang="en" href="https://example.com/en/page/">
<link rel="alternate" hreflang="zh" href="https://example.com/zh/page/">

中文页面声明"英文版在哪", 英文页面也声明"中文版在哪". 互相指认, 搜索引擎就知道这两页是同一内容的不同语言版本, 不会把它们当成重复内容互相打架.

最常见的坑: 用地区码

很多站点为了省事, 直接把语言声明写成"中文(中国大陆)“和"英文(美国)”.

<hreflang="zh-CN">   <!-- 中文(中国大陆) -->
<hreflang="en-US">   <!-- 英文(美国) -->

听起来没毛病, 但问题来了: 新加坡的华人, 台湾的用户, 英国的开发者, 都既不属于"中国大陆"也不属于"美国". 他们搜东西的时候, 搜索引擎不知道该显示哪个版本. 两个版本在那些地区会互相抢排名, 结果两边都不稳定, 该有的流量白白丢了.

所以内容不分地区时, 语言声明就该用纯语言码:

<hreflang="zh">
<hreflang="en">

只有当内容明确按国家区分时 (比如美版文案和英版文案不一样), 才用地区码.

还有个容易漏的: 兜底声明

当用户的语言跟站点的语言都对不上时 (比如阿拉伯语用户), 该显示哪个版本? 这是 x-default 声明负责的.

有个细节值得注意: 这个兜底答案最好全站统一. 如果中文页面说"兜底到中文版", 英文页面说"兜底到英文版", 搜索引擎会无所适从. 全站一致地指到某一个版本, 行为才稳定.

改完容易忘

hreflang 属于那种"配一次, 很久不用管"的东西. 但正因为配一次就忘, 很多人压根没意识到自己的站点还带着一个含糊的声明在跑.

这次的教训是: 博客加了多语言版本后, 如果发现排名在某些地区莫名其妙不稳, 先检查一眼语言声明. 也许问题就出在这儿.

文章链接:

https://time-friend.com/zh/archive/blog-multilingual-seo-hreflang/

# 相关文章推荐