Google hreflang language confusion: Do I have to add hreflang for the page ITSELF?

六眼飞鱼酱① 提交于 2019-12-23 16:17:35

问题


On Google's hreflang documentation, in the 2-language example, it says:

Imagine you have an English language page hosted at http://www.example.com/, with a Spanish alternative at http://es.example.com/. You can indicate to Google that the Spanish URL is the Spanish-language equivalent of the English page in one of three ways:

  • HTML link element in header. In the HTML <head> section of http://www.example.com/, add a link element pointing to the Spanish version of that webpage at http://es.example.com/, like this:

    <link rel="alternate" hreflang="es" href="http://es.example.com/" />
    

But in its 3-language example, it says:

If you have multiple language versions of a URL, each language page must identify all language versions, including itself. For example, if your site provides content in French, English, and Spanish, the Spanish version must include a rel="alternate" hreflang="x" link for itself in addition to links to the French and English versions. Similarly, the English and French versions must each include the same references to the French, English, and Spanish versions.

The above is an example for a 3-language site. My website consists of only 2 languages - the default/main ENGLISH and THAI. Do I have to add the tag for the page itself? Google's documentation is not clear about this point and in its example for 2-language site, it is not mentioned.

For example, this is what I put in 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>

Is the above correct? Or should I use:

<!-- 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>

回答1:


If your intention is to show them the English page for Chinese speaking users, you can indeed use your second example:

<!-- 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">

The new x-default hreflang attribute value signals to Google's algorithms that the page doesn’t target any specific language or locale and is the default page when no other page is better suited - Google




回答2:


Their documentation page is somewhat lousy because they always refer to hreflang="x" where x is just a placeholder for a language tag. The language tag x on its own is not valid, as it has to be followed by a hyphen and an alphanumeric string (x-foo):

privateuse    = "x" 1*("-" (1*8alphanum))

So "[…] the Spanish version must include a rel="alternate" hreflang="x" link for itself […]" doesn’t make sense.

x-default is such a (valid) private language tag, and if you want to follow Google’s interpretation of it, x-default should only be used for language-independent pages that serve as language selectors/redirectors.

So neither of your examples is correct.

You should either

  • include only the link to the translation:

    <!-- on the English page <http://janwawa.com/en/contact.php> -->
    <link rel="alternate" hreflang="th" href="http://janwawa.com/th/contact.php">
    
  • or include both, the link to the translation and the self-referencing link:

    <!-- 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">
    

It is beyond me why Google would recommend to have a self-referencing alternate link in the first place, and assuming that it makes any sense, why they don’t recommend this self-referencing link in case of only two languages.

HTML5 defines that the alternate link type references "an alternate representation of the current document". So, using alternate for a link to the current document doesn’t make sense, because it’s not an "alternate representation of the current document", it is the current document.




回答3:


Although I agree with Unor that it is not clear why Google recommend to use a self-referencing alternate link, Google's advice (2017) is a clear statement:

If you have multiple language versions of a URL, each language page should identify different language versions, including itself.

For languages or locales not specified by alternate links Google says:

For the default page that doesn’t target any specific language or locale, add rel="alternate" hreflang="x-default".

So, I would use another URL here.

Additionally, I would also recommended to add a canonical link to each page.

Examples

Your English page could look like this:

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

Your Thai page could look like this:

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


来源:https://stackoverflow.com/questions/27598355/google-hreflang-language-confusion-do-i-have-to-add-hreflang-for-the-page-itsel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!