在Google's hreflang
documentation上,在双语示例中,它说:
想象一下,您有一个英语语言页面 http://www.example.com/,西班牙语替代 http://es.example.com/。您可以向Google表明西班牙语 URL是其中一个英语页面的西班牙语等价物 三种方式:
标题中的HTML链接元素。在http://www.example.com/的HTML
<head>
部分,添加指向西班牙语的link
元素 http://es.example.com/上该网页的版本,如下所示:<link rel="alternate" hreflang="es" href="http://es.example.com/" />
但在其3个语言的例子中,它说:
如果您有多个语言版本的网址,则每个语言网页 必须标识所有语言版本,包括其自身。对于 例如,如果您的网站提供法语,英语和 西班牙语,西班牙语版本必须包含rel =&#34; alternate&#34; 的hreflang =&#34; X&#34;链接自己除了链接到法国和 英文版。同样,英语和法语版本必须各自 包括对法语,英语和西班牙语的相同引用 版本
以上是3种语言网站的示例。我的网站只包含2种语言 - 默认/主要ENGLISH和THAI。我是否必须为网页本身添加标记?谷歌的文档并不清楚这一点,在它的双语网站示例中,没有提及。
例如,这就是我放在http://janwawa.com/en/contact.php
中的内容<!-- GOOGLE INTERNATIONAL LANGUAGE TARGETING -->
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
<link rel="alternate" hreflang="x-default" href="http://janwawa.com/en/contact.php">
</head>
以上是否正确?或者我应该使用:
<!-- GOOGLE INTERNATIONAL LANGUAGE TARGETING -->
<link rel="alternate" hreflang="en" href="http://janwawa.com/en/contact.php">
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
<link rel="alternate" hreflang="x-default" href="http://janwawa.com/en/contact.php">
</head>
答案 0 :(得分:0)
他们的文档页面有些糟糕,因为他们总是引用hreflang="x"
,其中x
只是语言标记的占位符。语言标记x
本身无效,因为has后面跟一个连字符和一个字母数字字符串(x-foo
):
privateuse = "x" 1*("-" (1*8alphanum))
所以“[...]西班牙语版本必须包含rel="alternate" hreflang="x"
链接本身[...]”没有意义。
x-default
是一种(有效)私人语言标记,如果您想要遵循Google对其的解释,x-default
只应使用for language-independent pages that serve as language selectors/redirectors。
所以你的例子都不正确。
你应该
仅包含翻译链接:
<!-- on the English page <http://janwawa.com/en/contact.php> -->
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
或同时包含翻译链接和自引用链接:
<!-- on the English page <http://janwawa.com/en/contact.php> -->
<link rel="alternate" hreflang="en" href="http://janwawa.com/en/contact.php">
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
为什么Google会建议首先使用自引用alternate
链接,并假设它没有任何意义,为什么他们不推荐这种自引用链接。只有两种语言。
HTML5定义alternate
link type引用“当前文档的替代表示”。因此,使用alternate
作为当前文档的链接是没有意义的,因为它不是“当前文档的替代表示”,它是当前文档。
答案 1 :(得分:0)
如果您打算向他们展示中文用户的英文页面,您确实可以使用第二个例子:
<!-- GOOGLE INTERNATIONAL LANGUAGE TARGETING -->
<link rel="alternate" hreflang="en" href="http://janwawa.com/en/contact.php">
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
<link rel="alternate" hreflang="x-default" href="http://janwawa.com/en/contact.php">
新的x-default hreflang属性值向Google的算法发出信号,表明该网页没有针对任何特定语言或区域设置,并且是没有其他网页更适合的默认页面 - Google
答案 2 :(得分:0)
虽然我同意Unor的观点,但为什么 Google建议使用自引用候补link
并不清楚,Google's advice (2017)是一个明确的声明:
如果您有多个语言版本的网址,则每个语言网页都应标识不同的语言版本,包括其自身。
对于未由备用链接指定的语言或区域设置Google说:
对于未针对任何特定语言的默认页面或 locale,add rel =&#34; alternate&#34;的hreflang =&#34; X-默认&#34;
所以,我会在这里使用另一个网址。
此外,我还建议为每个页面添加canonical
链接。
<强>实施例强>
您的英文页面可能如下所示:
<link rel="canonical" hreflang="en" href="http://janwawa.com/en/contact.php">
<!-- Alternate links are the same for all pages -->
<link rel="alternate" hreflang="en" href="http://janwawa.com/en/contact.php">
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
<link rel="alternate" hreflang="x-default" href="http://janwawa.com/default/contact.php">
您的泰语页面可能如下所示:
<link rel="canonical" hreflang="th" href="http://janwawa.com/th/contact.php">
<!-- Alternate links are the same for all pages -->
<link rel="alternate" hreflang="en" href="http://janwawa.com/en/contact.php">
<link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
<link rel="alternate" hreflang="x-default" href="http://janwawa.com/default/contact.php">