在本文中,我们将探讨什么rel="alternate" hreflang="x"是链接属性,为什么它对 SEO 很重要,以及如何使用它来告知搜索引擎您的目标受众。
什么是 hreflang 属性?
该rel="alternate" hreflang="x"属性用于指示您的内容使用的语言以及您的内容适用于哪个地理区域。
通常,该rel="alternate" hreflang="x"属性被错误地称为rel="alternate" hreflang="x"标签。为了简洁起见,我们hreflang从这里开始将其称为属性。
如果您的网站提供多种语言版本,则该hreflang属性是引导搜索引擎的重要工具,以便它们可以将您的内容提供给正确的受众。
使用 hreflang,必须记录最初遵循的实施范围和规则,以建立最佳实践并在新市场发布时对其进行修改。每当添加新的本地化部分、发布受影响语言和/或国家/地区的页面或更改其 URL 时,都应考虑这些最佳实践。这对于能够相应地更新和验证 hreflang 注释很重要。
哪些搜索引擎支持它?
目前只有 Google 和 Yandex 支持该hreflang属性。
必应和百度没有。相反,他们依赖于内容语言元标记。例如,如果您想向他们表明您的内容是针对美国英语观众的,那么您可以使用以下方式定义:
<meta http-equiv="content-language" content="en-us">
或者,Bing 也支持通过 HTTP 标头定义内容语言.
为什么要关心 hreflang 属性?
如果您的网站提供多种语言版本,您希望搜索引擎将您的内容展示给正确的受众。为了帮助搜索引擎这样做,您应该使用该hreflang属性来指示内容所使用的语言,以及它所代表的区域(可选)。
假设您使用两种语言为客户提供服务:英语和西班牙语。您已经用两种语言编写了内容,现在您想向搜索引擎表明,他们应该向讲英语的受众提供英语内容,向讲西班牙语的受众提供西班牙语内容。做到这一点的方法是使用属性hreflang。
另一个示例用例是使用地理定位时。想象一下,您的目标客户是美国和加拿大的讲英语的客户,并且拥有针对这两个市场的本地化内容。现在,您可以通过将语言定义与您的目标区域相结合来明确表示这两种变体都存在。您将使用该hreflang属性使搜索引擎列出两种变体(en-us在en-ca本例中)。
hreflang 属性的剖析
让我们hreflang用一个例子来看看属性的外观:
<link rel="alternate" hreflang="en" href="https://www.example.com/" />
让我们一步一步来:
- 该link rel="alternate"部分描述了有一个替代页面。在本文中,我们重点关注该hreflang属性,但还存在许多其他链接关系,例如分页、移动变体和AMP 变体。
- 该hreflang="en"部分描述了受众定位。您可以只定义语言或语言和地理位置的组合。在这种情况下,目标是英语世界。
- 该href部分描述了上一部分中定义的受众的页面 URL。在这种情况下是https://www.example.com.
如何实现hreflang属性
该hreflang属性可以使用以下方式实现:
- HTML 中的链接元素
- HTTP 标头
- XML 站点地图
在 HTML 中实现 hreflang 属性
通常实现hreflang属性的最简单方法是将其包含在<head>HTML 页面的部分中。
定义 hreflang 属性时,您不仅要描述当前页面的受众目标,还要描述页面的本地化变体。
例如,假设西班牙语主页也有英式英语和法语版本,您希望默认回退为西班牙语主页。然后完整的定义将出现在西班牙语主页的所有变体上:
<link rel="canonical" href="https://www.example.com/es/" /> <link rel="alternate" hreflang="es" href="https://www.example.com/es/" /> <link rel="alternate" hreflang="en-gb" href="https://www.example.com/uk/" /> <link rel="alternate" hreflang="fr" href="https://www.example.com/fr/" /> <link rel="alternate" hreflang="x-default" href="https://www.example.com/es/" />
图片来源:Ahrefs
hreflang 属性表示页面的翻译版本
当没有页面可供您的目标受众使用时,您可以定义后备页面。这是使用x-default值完成的。
在 HTTP 标头中实现 hreflang 属性
类似于可以通过 HTTP 标头定义的规范链接和机器人指令hreflang,这也可以为属性完成。
最常见的用例是为非 HTML 文档(例如 PDF 文件)定义受众定位。PDF 文件也会被抓取和编入索引,如果您有多种语言的文件,定义它们的受众是有意义的。
hreflang下面是一个示例,说明在此处定义属性时 HTTP 标头的哪一部分看起来像:
HTTP/1.1 200 OK Content-Type: application/pdf Link: <https://example.com/interesting-whitepaper.pdf>; rel="alternate";hreflang="x-default", <https://example.com/interesting-whitepaper.pdf>; rel="alternate";hreflang="en", <https://example.com/interesting-whitepaper-spanish.pdf>; rel="alternate";hreflang="es"
在 XML 站点地图中实现 hreflang 属性
该属性也可以通过您的XML 站点地图hreflang实现。
以下是面向美国观众的主页的外观,该主页也适用于英国和加拿大观众:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>https://example.com/</loc> <xhtml:link rel="alternate" hreflang="en-CA" href="https://example.com/en-ca/" /> <xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" /> <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/" /> <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" /> </url> <url> <loc>https://example.com/en-ca/</loc> <xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" /> <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/" /> <xhtml:link rel="alternate" hreflang="en-CA" href="https://example.com/en-ca/" /> <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" /> </url> <url> <loc>https://example.com/en-gb/</loc> <xhtml:link rel="alternate" hreflang="en-CA" href="https://example.com/en-ca/" /> <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/" /> <xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/" /> <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" /> </url> </urlset>
如果可能,我建议通过您的 XML 站点地图实施 hreflang。这是一种更可持续的方式,并且使用正确的脚本,可以比页内代码更容易维护。确保获得一个 Search Console 帐户,因为如果您在 hreflang 中犯了任何错误,Google 会告诉您!还要记住 hreflang 中的“lang”代表语言。您可以使用未定义区域的语言,但不能使用未定义语言的区域。
hreflang 属性的最佳实践
实现属性的最佳实践hreflang如下:
- 引用页面本身及其翻译的变体。
- 确保具有双向 hreflang 属性引用。
- 正确定义语言和区域组合。
- 始终设置 hreflang="x-default"。
- hreflang 属性和规范 URL 必须匹配。
- 定义 hreflang 属性时使用绝对 URL。
- 只使用一种方法来实现 hreflang 属性。
解释该属性最佳实践的最佳方式hreflang是使用上面提到的示例以及针对美国、加拿大和英国用户的英文网站。
hreflang这是该示例的完整属性定义:
<link rel="alternate" hreflang="en-us" href="https://www.example.com/" /> <link rel="alternate" hreflang="en-ca" href="https://www.example.com/ca/" /> <link rel="alternate" hreflang="en-gb"href="https://www.example.com/uk/" /> <link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
如果您的内容在多个区域设置中以特定语言提供,请确保以其中一种没有区域设置的变体为目标。示例:如果您有美国、英国和澳大利亚的英文内容,请将其中之一定义为具有通用值的英文内容的主要站点hreflang="en",而不是hreflang="en-us". 这将使该变体与世界各地的英语用户相关,同时仍然在各自的语言环境中优先考虑英国和澳大利亚变体。
引用页面本身和所有翻译的变体
我们再重复一遍也不为过:该hreflang属性需要为页面本身及其翻译变体定义首选语言(和区域)。
https://www.example.com/所以如果我们从上面的例子来看,翻译的变体是:https://www.example.com/ca/和https://www.example.com/uk/
我经常看到的 hreflang 常见错误:没有遵循谷歌对 T 的指导方针(特别是有国家+语言代码,例如而de-de不是 just de)和忘记自我引用 hreflang 属性。
双向 hreflang 属性引用
每个hreflang属性引用应该是双向的。这意味着每个变体都指向其他变体。
正确定义语言和区域组合
属性值hreflang标识语言(采用ISO 639-1 格式) 和可选的区域(采用ISO 3166-1 Alpha 2 格式) 的 URL。
仔细检查 hreflang 语言代码be代表白俄罗斯语而不是比利时语。比利时语既可以nl-be用于荷兰语部分,也fr-be可以用于法语部分。请停止引用en-uk英国,它是en-gb!
始终首先定义语言,然后是可选区域。如果反过来,搜索引擎将无法理解该hreflang属性。
此外,不定义语言就无法定义区域。换句话说,以下定义无效,不应使用:
<link rel="alternate" hreflang="us" href="https://www.example.com/" />
始终设置 hreflang="x-default"
始终定义要用作后备的页面。使用hreflang="x-default".
在上面提到的例子中,我们看到:
<link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
这意味着这https://www.example.com/是除加拿大和英国以外的所有国家/地区的用户使用所有其他语言进行搜索时的默认回退。
hreflang 属性和规范 URL 必须匹配
该属性的使用hreflang不能替代为页面定义规范 URL。两者都需要定义。例如:
<link rel="canonical" href="https://www.example.com/" /> <link rel="alternate" href="https://www.example.com/" hreflang="en-us" /> <link rel="alternate" href="https://www.example.com/ca/" hreflang="en-ca" />
在此示例中,加拿大页面 ( https://www.example.com/ca/) 是当前页面的替代变体。在该页面上,定义如下所示:
<link rel="canonical" href="https://www.example.com/ca/" /> <link rel="alternate" hreflang="en-ca" href="https://www.example.com/ca/" /> <link rel="alternate" hreflang="en-us" href="https://www.example.com/" />
但是,当规范 URL 指向与当前页面不同的页面时,hreflang属性必须反映这一点。例如,如果https://www.example.com/home是 的替代 URL https://www.example.com/,那么变体的完整定义如下所示/home:
<link rel="canonical" href="https://www.example.com/" /> <link rel="alternate" hreflang="en-us" href="https://www.example.com/" /> <link rel="alternate" hreflang="en-ca" href="https://www.example.com/ca/" /> <link rel="alternate" hreflang="en-gb" href="https://www.example.com/uk/" />
https://www.example.com/ca/然后https://www.example.com/uk/应该都引用<link rel="alternate" href="https://www.example.com/" hreflang="en-us" />.
总而言之:属性定义/home中从未引用非规范 URL(在此示例中)hreflang。
定义 hreflang 属性时使用绝对 URL
尽管这并不违反元素规范link,但普遍的共识是:在定义属性时不要使用相对 URL hreflang。相对 URL 更有可能被搜索引擎错误解释。同样的最佳实践适用于该link元素的其他用途:规范 URL、分页属性、AMP 和移动属性。
不要只是翻译,本地化!
多语言网站不仅仅是内容翻译。他们旨在提供完全本地化的体验,包括文化参考、货币、时区以及对当地受众有意义的任何其他内容。
请务必记住,hreflang 标签与规范标签一样,是强烈的提示而非指令。众所周知,如果谷歌认为实施不正确,他们会忽略 hreflang 标签。Hreflang 并非旨在用作捷径 - 正确的国际定位需要付出努力,在构建网站形象的方式以及在本地化网站内容方面走多远。不要半途而废,因为它根本不会获得适当的排名和流量。
只使用一种方法实现hreflang属性
hreflang仅使用一种方法定义属性。因此,例如,不要在 HTML 和 XML 站点地图中结合实施它,因为这很容易导致在您犯错或出现错误时发送混合信号。
hreflang 属性有助于防止重复内容
该hreflang属性有助于防止重复内容。虽然我们始终建议真正本地化内容(请参阅有关本地化的部分hreflang),但在正确设置属性后,您不必担心使用完全相同的内容,例如英式英语、美式英语和加拿大英语受众.
有关 hreflang 属性的常见问题
- 为什么搜索引擎会忽略我的 hreflang 属性?
- 我可以在一个页面上使用多个 hreflang 属性吗?
???? 为什么搜索引擎会忽略我的 hreflang 属性?
该hreflang属性是一个信号而不是指令。搜索引擎不需要真正遵循您的hreflang属性定义,尽管它们通常会这样做。
???? 我可以在一个页面上使用多个 hreflang 属性吗?
是的,您可以为一个页面使用多个hreflang属性,以表明该页面要针对多个国家或地区显示。例如,如果您有一个要向德国和奥地利的人显示的页面,那么您可以按如下方式指示:
<link rel="alternate" hreflang="de-de" href="https://www.example.de/" /> <link rel="alternate" hreflang="de-at" href="https://www.example.de/" />