许多网站会根据用户的语言或地区提供不同版本的网页。hreflang
链接用于告知搜索引擎网页的所有版本的网址,以便搜索引擎针对每种语言或地区显示正确的版本。
Lighthouse hreflang
审核失败的原因
Lighthouse 会标记不正确的 hreflang
链接:
Lighthouse 会在网页的 head
和响应标头中检查 hreflang
链接。
然后,Lighthouse 会检查 hreflang
链接中是否存在有效的语言代码。Lighthouse 会报告语言代码无效的所有 hreflang
链接。
Lighthouse 不会检查地区代码或站点地图。
如何为网页的每个版本定义 hreflang
链接
假设您有以下三个网页版本:
- 英文版:
https://example.com
https://es.example.com
中的西班牙语版本https://de.example.com
上的德语版本
您可以通过以下三种方式告知搜索引擎这些网页是等效的。 请根据您的具体情况选择最简单的方法。
方法 1:将 hreflang
链接添加到每个网页的 <head>
:
<link rel="alternate" hreflang="en" href="https://example.com" />
<link rel="alternate" hreflang="es" href="https://es.example.com" />
<link rel="alternate" hreflang="de" href="https://de.example.com" />
网页的每个版本都必须链接到所有其他版本(包括网页自身)。否则,搜索引擎可能会忽略 hreflang
链接或对其进行错误解读。
对于允许用户选择语言的网页,请使用 x-default
关键字:
<link rel="alternate" href="https://example.com" hreflang="x-default" />
方法 2:向 HTTP 响应添加 Link
标头:
Link: <https://example.com>; rel="alternate"; hreflang="en", <https://es.example.com>;
rel="alternate"; hreflang="es", <https://de.example.com>; rel="alternate"; hreflang="de"
方法 3:向站点地图添加语言版本信息。
<url>
<loc>https://example.com</loc>
<xhtml:link rel="alternate" hreflang="es"
href="https://es.example.com"/>
<xhtml:link rel="alternate" hreflang="de"
href="https://es.example.com"/>
</url>
hreflang
值准则
hreflang
值始终必须指定语言代码。- 语言代码必须采用 ISO 639-1 格式。
hreflang
值还可以包含可选的地区代码。例如,es-mx
适用于墨西哥的西班牙语用户,es-cl
适用于智利的西班牙语用户。- 地区代码必须采用 ISO 3166-1 alpha-2 格式。