SEO 百科
hreflang
本页目录
hreflang 是一种标注,用来告诉 Google 一个网页有哪些语言或区域变体,以及每个变体面向的是哪种语言或区域[1]。比如 <link rel="alternate" hreflang="en-US" href="/en/">,就指明了英文美国版。
它让 Google 搜索能把用户引导到最合适的那一版[1]。因为同一个网页可能有多个变体,搜索引擎需要知道它们之间的关系[1]。也就是说,hreflang 管的是一组网页之间的对应关系。
传达的内容
每个 hreflang 的值由语言代码和可选的区域代码组成,中间用短划线分隔[1]。
语言代码采用 ISO 639-1 格式,区域代码采用 ISO 3166-1 Alpha 2 格式[1]。例如 en-US 表示面向美国的英语内容[1]。这个值不区分大小写,但区域代码按惯例写成大写[1]。只指定区域是不成立的,因为区域是可选的后缀[1]。
标记的写法
每个变体都要写出全部版本的对应关系,包括它自己[1]。下面这份清单,要原样放进英文版、中文版和后备版各自的 <head> 里:
<link rel="alternate" hreflang="en" href="https://example.com/en/">
<link rel="alternate" hreflang="en-AU" href="https://example.com/en-au/">
<link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
第一行只指定语言,第二行加了区域,第三行换成中文,第四行是后备版本。
也可以改用 HTTP 标头声明[1]:
Link: <https://example.com/zh/>; rel="alternate"; hreflang="zh-CN"
或者在站点地图里逐条列出[1]:
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/"/>
三种写法效果相同,挑一种用就可以,不必同一组关系写两遍[1]。
双向互指的要求
每个语言版本都要列出自身以及所有其他语言版本[1][2][3]。
如果两个网页没有互相指向,系统会忽略相关标记[1]。这样设计是为了防止别的网站随便写一个标记,就把自己指定成你某个网页的备用版本[1]。所以网页 X 链到网页 Y 时,网页 Y 也必须链回网页 X[1]。
通用后备版本
当用户的语言与网站的任何本地化版本都不匹配时,系统会用到保留值 x-default[1]。
它专门为语言选择器一类的网页设计,用来指定一个后备页面[1]。因为它面向语言不匹配的用户,所以这个页面用什么语言并不重要[1]。
语言判断的方式
Google 依据网页的可见内容确定语言,不用 hreflang 或 HTML 的 lang 属性来判断[1]。
也就是说,标记用来表达版本之间的关系,而版本本身的语言以网页的可见内容为准[1]。
附录
参见
参考资料
官方(境外)
- 《将网页的本地化版本告知 Google》,Google 搜索中心。
第三方
- 《What are Hreflang Tag Attributes And How To Implement Them》,Moz。
- 《4 Hidden Hreflang Challenges for International SEO》,Search Engine Journal。
外部链接
无。