海外翻墙免费加速器:[入口]
管理多区域和多语言网站
如果您的网站以多种语言面向不同国家/地区或区域的用户提供不同的内容,您可以优化您网站的 Google 搜索结果。
多语言和多区域有何区别?
- 多语言网站是指使用多种语言提供内容的网站。例如,一家加拿大企业同时提供了英语版本和法语版本的网站。 Google 搜索会尝试查找与搜索用户的语言匹配的网页。
- 多区域网站是指明确地以不同国家/地区的用户为目标受众的网站。例如,一家产品制造商同时向加拿大和美国出售货物。 Google 搜索会尝试查找与搜索用户的语言区域匹配的网页。
有些网站既属于多区域网站,又属于多语言网站。例如:某个网站可能向美国用户和加拿大用户提供了不同版本,而该网站上面向加拿大用户呈现的内容又同时提供了英语版本和法语版本。
管理网站的多种语言版本
如果您的网站上有以多种语言提供的相同内容,请参阅以下提示,了解如何帮助用户(和 Google 搜索)找到正确的网页:
对不同的语言版本使用不同的网址
Google 建议对每种语言版本的网页使用不同的网址,而不是使用 Cookie 或浏览器设置来调整网页上的内容语言。
如果您对不同的语言版本使用不同的网址,请使用 hreflang
注释来帮助 Google 搜索结果链接到网页的正确语言版本。
如果您希望根据语言设置动态更改内容或重新路由用户,则请注意,Google 可能无法找到并抓取您的所有变体版本。这是因为,Googlebot 抓取工具通常来自美国。另外,该抓取工具在发送 HTTP 请求时并不会在请求标头中设置 Accept-Language
。
将不同语言版本告知 Google
Google 支持使用多种不同的方法为网页的语言或区域变体添加标签,包括 hreflang
注释和站点地图。请以适当的方式标记您的网页。
确保网页语言显而易见
Google 会依据网页的可见内容确定网页的语言。我们不会通过任何代码级语言信息(例如 lang
属性)或网址判断语言。您只需确保各网页的内容和导航元素都使用同一种语言,且避免原文和译文并行显示,就能帮助 Google 正确地确定网页语言。
如果仅翻译网页的样板文字,而以同一种语言显示网页的大部分内容(这种情况在包含用户生成的内容的网页中经常出现),则可能会导致同样的内容以不同的样板语言重复显示在搜索结果中,令用户体验大打折扣。
使用 robots.txt 阻止搜索引擎在您的网站上抓取自动翻译的网页。自动翻译的内容有时会让人觉得不知所云,而且还可能被视为网络垃圾。更重要的是,劣质或生硬的翻译可能会破坏访问者对网站的印象。
让用户切换网页语言
如果您的某个网页有多个版本:
- 避免自动将用户从网站的一个语言版本重定向到网站的另一个语言版本。例如,不要根据您认为用户可能会使用的语言来重定向。这些重定向可能会阻止用户(和搜索引擎)浏览网站的所有版本。
- 不妨考虑添加超链接以指向该网页的其他语言版本。这样,用户便可通过点击超链接选择网页的另一语言版本。
使用指定特定语言的网址
您可以在网址中使用已本地化的字词,或使用国际化域名 (IDN)。但是,请务必确保网址使用了 UTF-8 编码(实际上,我们建议尽可能使用 UTF-8),并在链接至这些网址时对其进行正确转义。
将网站内容定位到特定国家/ 地区(地理位置定位)
您可将整个网站或其中的部分内容定位到某个特定国家/地区境内说某种特定语言的用户。这样可以提高网页在目标国家/地区的排名,但目标用户将无法看到以其他语言区域或语言显示的结果。
如需在 Google 上对网站进行地理位置定位,请执行以下操作:
- 网页级或网站级:对网站或网页使用基于语言区域的网址。
- 网页级:使用
hreflang
或站点地图告知 Google 哪些网页适用于哪些地理位置或语言。
请注意,地理位置定位并不能做到完全精确,因此,应考虑到用户可能会访问您网站的“错误”版本。一种可解决此问题的方法是:在所有网页上显示各个语言版本的链接,以便用户选择自己的区域和/或语言。
请勿使用 IP 分析来调整内容。IP 位置分析难以实施,并且通常并不可靠。此外,Google 可能无法正确抓取网站变体。大多数(但不是全部)Google 抓取都来自美国,并且我们不会试图改变位置信息以检测网站变体。请使用以下任一显式方法:
hreflang
、备用网址和显式链接。
使用基于语言区域的网址
请考虑使用一种便于将您的整个网站或其中的部分内容定位到不同地理区域的网址结构。下表介绍了可用的选项:
网址结构选项 | |||
---|---|---|---|
针对特定国家/地区的网域example.de |
|
||
使用 gTLD 的子网域de.example.com |
|
||
使用 gTLD 的子目录example.com/de/ |
|
||
网址参数site.com?loc=de |
|
Google 如何确定目标语言区域?
Google 会根据众多因素确定网页的最佳目标受众群体:
- 国家/地区代码一级的顶级域名 (ccTLD)。这些域名都与特定的国家/地区相关联(例如,.de 代表德国,.cn 代表中国),因此可以明确告知用户和搜索引擎,您的网站是专门面向特定国家/地区的。某些国家/地区会对哪些用户可以使用 ccTLD 加以限制,因此请务必先调查清楚。我们也会将某些个性化 ccTLD(例如 .tv 和 .me)视为 gTLD,因为我们发现,用户和网站所有者经常会认为这些域名比定位到具体国家/地区的域名更通用。请参阅 Google 的 gTLD 列表。
hreflang
语句,无论是在标记、标头还是站点地图中。- 服务器位置(通过服务器的 IP 地址判断)。服务器的实际位置通常位于用户附近,因此可在某种程度上反映网站的目标受众。不过,由于某些网站使用的是分布式内容分发网络 (CDN),或者在拥有较好的网络服务器基础架构的国家/地区进行托管,因此服务器的位置并不能作为一种可靠的线索。
- 其他线索。有关网站目标受众群体的其他线索来源还包括:网页上的本地地址和电话号码、所使用的本地语言和货币、来自其他本地网站的链接或来自商家资料的线索(如果有)。
Google 不会做什么:
- Google 会从世界各地的不同地理位置抓取网页。但我们不会为了查找某个网页中所有可能的变体,而尝试改变对同一网站使用的抓取工具来源。因此,请务必使用本文所示的方法(例如
hreflang
条目、ccTLD 或显式链接)将您的网站会呈现的所有语言区域或语言变体明确告知 Google。 - Google 会忽略位置
meta
标记(例如geo.position
或distribution
),并忽略地理位置定位 HTML 属性。
处理多语言/ 多区域网站中的重复网页
如果您在同一个多区域网站的不同网址上以同一种语言提供类似内容或重复内容(例如,如果 example.de/
和 example.com/de/
都显示类似的德语内容),则设定一个首选版本,然后使用 rel="canonical"
元素和 hreflang
标记确保向搜索用户提供正确的语言或区域网址。
通用顶级域名
通用顶级域名 (gTLD) 是指未与具体地理位置关联的域名。 如果您的网站使用通用顶级域名(例如 .com、.org 或下方列出的任何域名),并想以特定地理位置的用户为目标受众,则使用上述方法之一明确地指定目标国家/地区。
Google 会将以下顶级域名视为 gTLD:
- 通用顶级域名:Google 会将通过 IANA DNS 根区进行解析的 TLD 视为 gTLD,不过已在 ICANN 注册为国家/地区代码一级的顶级域名 (ccTLD) 的顶级域名除外。示例:
- .com
- .org
- .edu
- .gov
- 还有更多…
- 通用区域性顶级域名:虽然此类域名会与具体地理区域关联,但一般仍会被视为通用顶级域名(与 .com 或 .org 很相似):
- .eu
- .asia
- 通用国家/地区代码一级的顶级域名 (ccTLD):Google 会将某些 ccTLD(例如 .tv 和 .me)视为 gTLD,因为我们发现,用户和网站所有者经常会认为这些域名比定位到具体国家/地区的域名更通用。下面列出了这些 ccTLD(该列表可能会不时更新)。
- .ad
- .ai
- .as
- .bz
- .cc
- .cd
- .co
- .dj
- .fm
- .io
- .la
- .me
- .ms
- .nu
- .sc
- .sr
- .su
- .tv
- .tk
- .ws
将您网页的本地化版本告知 Google
如果您的某个网页针对不同语言或区域提供了多个版本,请将这些不同变体告知 Google。这样一来,Google 搜索便可按语言或区域将想访问您网页的用户引导至最恰当的版本。
请注意,即使您没有采取上述措施,Google 仍可能会找到您网页的其他语言版本,但通常还是建议您明确指明您针对特定语言或区域提供的网页。
下面是一些建议指明备用网页的示例情形:
- 用单一语言显示网页的主要内容,只翻译了模板部分,例如导航和页脚部分。以用户生成的内容为主的网页(如论坛)通常会采取这种做法。
- 网页用单一语言为不同区域的用户提供相似的内容,且内容的区域性差异非常细微。例如,您可能会有面向美国、英国、爱尔兰用户提供的英语内容。
- 网站内容已完全翻译成多种语言。例如,您的每个网页都有德语版本和英语版本。
如果网页的主要内容未经翻译,则该网页的本地化版本仅会被视为它的重复网页。
指明备用网页的方法
您可通过以下三种方式向 Google 指明某个网页的多个语言/语言区域版本:
- HTML
- HTTP 标头
- 站点地图
从 Google 的角度来看,这三种方法是等效的,您可以选择最适合您网站的方法。虽然您可以同时使用这三种方法,但不会对网页在 Google 搜索中的表现带来任何好处(事实上,与仅选择一种实现相比,管理三种实现要困难得多)。
使用 hreflang
告知 Google 您的内容变体,以便我们了解这些网页是相同内容的本地化变体。Google 不会使用 hreflang
或 HTML lang
属性检测网页的语言;我们会使用算法来确定网页的语言。
针对所有方法的准则
- 每个语言版本都必须列出其自身以及所有其他语言版本。
- 备用网页的网址必须是完全限定的网址,包括传输方法 (http/https),例如:
https://example.com/foo
,而不是//example.com/foo
或/foo
- 备用网页的网址无需位于同一个网域中。
- 如果您有多个备用网址,分别面向使用相同语言但位于不同语言区域的用户,那么您最好也为使用该语言但地理位置不明的用户提供一个通用网址。例如,如果您为爱尔兰 (
en-ie
)、加拿大 (en-ca
) 和澳大利亚 (en-au
) 地区的英语用户提供了特定网址,则为美国、英国和所有其他英语区域的搜索用户提供一个通用英语版 (en
) 网页。您也可以从您的诸多特定网页中选择一个作为通用网页。 - 如果两个网页没有互指,系统将会忽略相关标记。这是为了确保另一网站上的某个用户无法随意通过创建一个标记将该网站指定为您的某个网页的备用版本。
- 如果您很难为每种语言分别维护一套完整的双向链接,则可在部分网页上省略一些语言;Google 仍会处理那些互指的网页。但是,请务必在新增的语言网页和源语言/主要语言网页之间建立双向链接。例如,如果您最初用法语创建了网站,并采用了
.fr
网址,那么当您新增面向墨西哥 (.mx
) 和西班牙 (.es
) 的网页后,应该优先将这两个新网页和曝光率很高的.fr
网页双向链接起来,而不是在这两个新增的西班牙语变体网页(.mx
和.es
)之间建立双向链接。 - 请考虑为不匹配的语言添加后备网页,尤其是在语言/国家/地区选择器中或是在会自动重定向的首页上。请使用
x-default
值:
<link rel="alternate" href="https://example.com/" hreflang="x-default" />
HTML 标记
您可以通过在网页标头中添加 <link rel="alternate" hreflang="lang_code"... >
元素,将网页的所有语言和区域变体告知 Google。如果您没有站点地图或无法为您的网站指定 HTTP 响应标头,此方法非常有用。
对于网页的每个变体,请在 <head>
元素中添加一组 <link>
元素,并使每个网页变体(包括网页自身)分别对应一个链接。网页的每个版本中,这组链接都应是相同的。查看其他准则。
以下是每个 link
元素的语法:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />
语法 | |
---|---|
lang_ |
此网页版本所针对的受支持的语言/区域代码,或 x-default (以与该网页上的 hreflang 标记未明确列出的任何语言匹配)。 |
url_ |
此网页的特定语言/区域版本对应的完全限定网址。 |
请将 <link>
标记放在 <head>
元素顶部附近。最起码,<link>
标记必须位于格式正确的 <head>
部分内,或位于可能会导致 <head>
过早结束的任何项目(例如 <p>
或跟踪像素)前面。如果不确定,请将所呈现的网页中的代码粘贴到 HTML 验证工具中,确保相关链接位于 <head>
元素内。
示例
例如,Widgets, Inc 有一个面向美国、英国和德国境内用户的网站。以下网址包含的内容大致相同,但具有区域性差异:
具有区域性差异的网址 | |
---|---|
https:/ |
通用英语版首页,包含与从美国运至全球各地的运费相关的信息。 |
https:/ |
英式英语版首页,显示以英镑为单位的价格。 |
https:/ |
美式英语版首页,显示以美元为单位的价格。 |
https:/ |
德语首页。 |
https:/ |
不针对任何语言或语言区域的默认页;它具有选择器,供用户选择自己的语言和区域。 |
请注意,Google 不会根据这些网址中针对特定语言的子网域(en
、en-gb
、en-us
、de
)确定网页的目标受众群体;您必须将网页明确地关联到对应的目标受众群体。
上方“具有区域性差异的网址”表格中列出的所有网页的 <head>
部分中都包含以下 HTML 代码。这会将美式英语、英式英语、通用英语和德语用户引导至对应的本地化网页,并将所有其他用户引导至通用首页。Google 搜索会根据用户的浏览器设置为他们返回适当的结果。
<head> <title>Widgets, Inc</title> <link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/page.html" /> <link rel="alternate" hreflang="en-us" href="https://en-us.example.com/page.html" /> <link rel="alternate" hreflang="en" href="https://en.example.com/page.html" /> <link rel="alternate" hreflang="de" href="https://de.example.com/page.html" /> <link rel="alternate" hreflang="x-default" href="https://www.example.com/" /> </head>
HTTP 标头
您可以返回包含网页 GET 响应的 HTTP 标头,以将相应网页的所有语言和区域变体告知 Google。这种方法对非 HTML 文件(如 PDF)很有用。
标头格式如下:
Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
语法 | |
---|---|
<url_ |
备用网页的完全限定网址,与分配给关联的 hreflang 属性的语言区域字符串对应。该网址必须位于 < 和 > 标记中。示例:<https:/ |
lang_ |
此网页版本所针对的受支持的语言/区域代码,或 x-default (以与该网页上的 hreflang 标记未明确列出的任何语言匹配)。 |
您必须为网页的每个版本(包括请求的版本)分别指定一组用英文逗号分隔的 <url>
、rel="alternate"
和 hreflang
值,如下例所示。网页的每个版本所返回的 Link:
标头都应相同。查看其他准则。
示例
下面是一个具有 3 个 PDF 文件版本的网站返回的 Link:
标头示例,这三个版本分别面向英语用户、瑞士境内的德语用户以及所有其他德语用户:
Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en", <https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch", <https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"
站点地图
您可以使用 XML 站点地图将每个网址的所有语言和区域变体告知 Google。为此,请添加一个指定单个网址的 <loc>
元素,其中的子 <xhtml:link>
条目应列出该网页的每种语言/语言区域变体(包括网页自身)。因此,如果某个网页有 3 个版本,那么站点地图中会有每个版本对应的网址条目,并且每个条目都包含 3 个相同的子条目。
站点地图规则:
- 按如下方式指定 xhtml 命名空间:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
- 为每个网址分别创建一个单独的
<url>
元素,这与任何其他站点地图一样。 - 每个
<url>
元素都必须包含一个指明网页网址的<loc>
子元素。 - 每个
<url>
元素都必须包含一个子元素<xhtml:link rel="alternate" hreflang="supported_language-code">
,其中应列出网页的每个备用版本(包括网页自身)。这些子<xhtml:link>
元素的顺序无关紧要,但您不妨让它们保持相同的顺序,以方便您检查错误。子元素不会计入站点地图的网址上限计数。 - 将站点地图上传到您网站上可应用该站点地图的目录。请注意,站点地图只能包含托管站点地图的目录的后代网址。
- 我们的站点地图文档也适用于站点地图扩展。请务必遵循站点地图常规指南。
- 查看其他准则。
示例
下面是一个以全球英语用户为目标用户的英语版网页,此网页有两个等效版本,分别面向全球的德语用户和瑞士境内的德语用户。网站中的所有网址如下所示:
www.example.com/english/page.html
以英语用户为目标用户。www.example.de/deutsch/page.html
以德语用户为目标用户。www.example.de/schweiz-deutsch/page.html
以瑞士境内的德语用户为目标用户。
以下是这 3 个网页的站点地图:
<?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://www.example.com/english/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="https://www.example.de/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="https://www.example.de/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/english/page.html"/> </url> <url> <loc>https://www.example.de/deutsch/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="https://www.example.de/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="https://www.example.de/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/english/page.html"/> </url> <url> <loc>https://www.example.de/schweiz-deutsch/page.html</loc> <xhtml:link rel="alternate" hreflang="de" href="https://www.example.de/deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="de-ch" href="https://www.example.de/schweiz-deutsch/page.html"/> <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/english/page.html"/> </url> </urlset>
受支持的语言和区域代码
hreflang
属性的值由一个或两个可选的值组成,各个值之间用短划线分隔。例如 en-US
。hreflang
属性的第一个代码是语言代码(采用 ISO 639-1 格式),后跟可选的第二个代码(采用 ISO 3166-1 Alpha 2 格式),表示备用网址的区域代码。
要定位到比利时的其他语言用户,您可以使用以下语言和地区代码:
- 良好(面向比利时用户的德语内容):
de-be
- 合适(面向比利时用户的荷兰语内容):
nl-be
- 合适(面向比利时用户的法语内容):
fr-be
- 不合适,因为第一个代码是语言代码(
be
是白俄罗斯语代码):be
要简化标记,您可以单独指定语言代码。例如:
de
:德语内容,不限区域en-GB
:英语内容,面向英国境内的用户de-ES
:德语内容,面向西班牙境内的用户
如果语言有多种文字变体,系统会根据国家/地区推断出适当的文字。例如,当针对台湾用户使用 zh-TW
时,系统会自动推断出语言文字(在此示例中,即中文 – 繁体)。您也可利用 ISO 15924 明确指定文字,例如:
zh-Hant
:中文(繁体)zh-Hans
:中文(简体)
与其他语言代码一样,您也可以指定可选区域。例如,使用 zh-Hans-US
为美国用户指定中文(简体)。
针对不匹配的语言使用 x-default
值
当任何其他语言/区域都与用户的浏览器设置不匹配时,系统会使用保留值 x-default
。如果用户的语言设置与您网站的任何本地化版本均不匹配,那么建议您使用此值来指定后备页面。虽然 x-default
值可以用于任何网页,但它是专为语言选择器网页设计的,因此最适合这些网页。
无需为 x-default
值指定语言代码;相应网页针对的是其浏览器设置的语言与您网站使用的语言不匹配的用户,因此网页所用的语言无关紧要。
如需实现 hreflang="x-default"
注解,请再向现有的 hreflang
注解添加一个 link
标记,并将 href
属性设置为您希望用户到达的网址(如果您的网站不支持用户的语言)。例如,HTML 实现可能如下所示:
<link rel="alternate" href="https://example.com/en-gb" hreflang="en-gb" /> <link rel="alternate" href="https://example.com/en-us" hreflang="en-us" /> <link rel="alternate" href="https://example.com/en-au" hreflang="en-au" /> <link rel="alternate" href="https://example.com/country-selector" hreflang="x-default" />
问题排查
常见错误
下面列出了使用 hreflang
时最常见的错误:
- 缺少返回链接:如果网页 X 链接到网页 Y,那么网页 Y 必须要链接回网页 X。如果所有使用
hreflang
注解的网页并未全部满足这项要求,系统可能会忽略或无法正确解译这些注解。例如,您可以考虑在https://de.example.com/index.html
上使用此链接:<link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/index.html" />
https://en-gb.example.com/index.html
上还必须要有一个hreflang
,以便指回到内容的de
版本:<link rel="alternate" hreflang="de" href="https://de.example.com/index.html" />
- 语言代码不正确:确保您使用的所有语言代码均标识出备用网址的语言(以 ISO 639-1 格式表示)和区域(可选,以 ISO 3166-1 Alpha 2 格式表示)。仅指定区域是无效的。
调试 hreflang
错误
您可以利用多种第三方工具调试 hreflang
注释。下面列出了一些热门的工具。这些工具不是由 Google 维护或检查的。
- Aleyda Solis 的
hreflang
标记生成器工具,可生成或修改hreflang
标记。 - Merkle SEO
hreflang
标记测试工具,可验证单个实际网页上的hreflang
标记。
Google 如何抓取语言区域自适应网页
如果您的网站包含语言区域自适应网页(也就是说,您的网站会根据检测到的访问者所在国家/地区或访问者首选语言返回不同的内容),Google 可能不会将您的不同语言区域网页的所有内容都纳入抓取/索引/排名范围。这是因为,Googlebot 抓取工具的默认 IP 地址看起来是位于美国境内的。另外,该抓取工具在发送 HTTP 请求时并不会在请求标头中设置 Accept-Language
。
重要提示:我们建议使用单独的语言区域网址配置,并为它们添加
rel="alternate"
hreflang 注解。
基于地理位置的抓取
除了使用美国境内的 IP 地址之外,Googlebot 还会使用美国境外的 IP 地址进行抓取。
正如我们一直建议的,当 Googlebot 看似来自特定国家/地区时,请像对待来自该国家/地区的任何其他用户一样对待它。这意味着,如果您阻止位于美国的用户访问您的内容,但允许来自澳大利亚的用户访问,那么您的服务器就会阻止看似来自美国的 Googlebot,但允许看似来自澳大利亚的 Googlebot 访问。
其他注意事项
- Googlebot 对所有抓取配置使用相同的用户代理字符串。详细了解 Google 抓取工具使用的用户代理字符串。
- 您可以使用 DNS 反向查找来验证 Googlebot 基于地理位置的抓取。
- 请确保您的网站对所有语言区域应用一致的 robots 协议。这意味着,漫游器
meta
标记和 robots.txt 文件必须为每个语言区域指定相同的规则。
未经允许不得转载:陈海飞博客 » 谷歌优化之多语言优化