这里,我不会深入阐述各自的优势。简单说来,HTML的<head>标签内通常是实现hreflang标签的最简单策略,尽管它会大大增加用户下载所需的数据量。HTTP也是如此。
XML会有不错的效果,但它需要比HTML更多的标记。不管怎样,无论你决定在哪个部
分实施hreflang标签,标签的实现方法和原则都保持不变。
Hreflang最佳实践
当构建hreflang标签时,你总是需要首先选定标的语言,然后再选定标的区域。在许多情况下,实际上并不需要考虑区域。这就是为什么你不能在没有定义语言标的的情况下定义区域标的的原因。
在hreflang标签内,你需要填入一个两字母长度的语言编码,用于指定文档的语言。这些编码可以在ISO 639-1中找到。而标的区域是可选的,相应编码可以从ISO 3166-1 Alpha 2中找到。
以下是你需要遵守的最重要的hreflang属性规则:
* 所有alternate型标签都需要自引用。
* 所有alternate型标签指向的页面都需要有canonical标签。
* 所有alternate型标签都需要是双向的。
* 始终插入默认版本链接
1. 自引用的Hreflang标签
确保所有hreflang属性都是自引用的,这一点非常重要。简要说,每个alternate型标签对应的区域/语言别链接所指向的页面上都应该有一个canonical型标签。
例如,对于
<link rel =“alternate”hreflang =“en-ca”href =“https://www.example.com/ca/”/>而言,显然会有不同的区域选项,例如:
<link rel =“alternate”hreflang =“en-us”href =“https://www.example.com/us/”/><link rel =“alternate”hreflang =“en-gb”href =“https://www.example.com/uk/”/>
在加拿大版的页面上,你将实现指向自身的canonical标签:
<link rel =“Canonical”href =“”/>。你还必须确保每个alternate型标签指向的页面上还包括以上分组中的其他两个URL。这意味着你的美国版网页需要其加拿大版和英国版网页的链接。但是在美国版网页上,canonical型标签也将被插入到
<link rel =“alternate”hreflang =“en-us”href =“https://www.example.com/us/”/>指向的页面以使其自引用。它看起来会是这样的:
<link rel =“canonical”href =“”/><link rel =“alternate”hreflang =“en-us”href =“https://www.example.com/us/”/>
<link rel =“alternate”hreflang =“en-gb”href =“https://www.example.com/uk/”/>
<link rel =“alternate”hreflang =“en-ca”href =“https://www.example.com/ca/”/>
而在加拿大版页面上,它看起来是这样的:
<link rel =“canonical”href =“https://www.example.com/ca/”/><link rel =“alternate”hreflang =“en-us”href =“https://www.example.com/us/”/>
<link rel =“alternate”hreflang =“en-gb”href =“https://www.example.com/uk/”/>
<link rel =“alternate”hreflang =“en-ca”href =“https://www.example.com/ca/”/>
2. 正确使用canonical型标签
回看之前的示例我们会发现,加拿大版网页上的canonical型标签不应该指向https://www.example.com。然而不恰当的canonical型标签使用会破坏hreflang标签组的一致性,并且浪费了几乎所有的艰苦工作。另一个常见的错误是选择一种语言版本并让多种语言版本网页上的canonical型标签指向那个版本的URL。简要说,alternate型标签是说明,“我是...的备用版本”,而canonical型标签是说“我是你期望搜索到的URL的版本。”
对于alternate型标签,需要引用的是基于单一语言的包含指向该版本URL的canonical型标签的着陆页。因而,你不应在hreflang标签中引用没有包含指向所引用链接的canonical型标签的网页。例如,如果你设置了指向的canonical型标签和指向的alternate型标签,那么你可以这样为每种语言版本设置alternate型标签,例如: <link rel =“alternate”hreflang =“en-ca”href =“”/>,等等。但是,你不应在hreflang标签中引用这个地址。
3. 确保链接是双向的
同样,你需要确保所有语言版本的页面都引用其他语言版本,以确保你的编码一致。
这对应于在Google Search Console中显示的“返回标记错误”。总的说来,如果页面A上有指向页面B的alternate型标签,那么页面B上应该有指向页面A的alternate型标签。重申一下,页面A还应该有指向自己的canonical型标签并列出所有引用了它的页面对应的alternate型标签,而B页面也应这样做。
4. 当所有其他标签失效时插入默认版本
现在,你可能会注意到在一堆hreflang属性的末尾会出现
<link rel =“alternate”hreflang =“x-default”href =“https://www.example.com/”/>。