Google hreflang语言混乱:我是否必须为页面ITSELF添加hreflang?

时间:2014-12-22 07:30:35

标签: html seo multilingual google-webmaster-tools

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>

3 个答案:

答案 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">