web-dev-qa-db-fra.com

Des hreflangs sont-ils nécessaires dans le sitemap XML s'ils sont utilisés dans l'en-tête de chaque page?

J'ai un site Web multilingue comme celui-ci:

example.com/de/about
example.com/fr/about
example.com/about (English)

J'ai décidé de mettre les éléments de lien hreflang dans le <head> de chaque fichier. Maintenant, je me demande s'il suffit de mettre l'URL anglaise par défaut dans le sitemap comme ceci:

<url>
  <loc>example.com/about</loc>
</url>

ou dois-je mettre chaque version linguistique dans le sitemap:

<url>
      <loc>example.com/de/about</loc>
    </url>
  <url>
      <loc>example.com/fr/about</loc>
    </url>
  <url>
      <loc>example.com/about</loc>
    </url>
1
Adam

Où que vous mettiez le hreflang est bon, vous devez utiliser une seule des méthodes ci-dessus. Trouvez les méthodes suggérées par Google ici: Informez Google des versions localisées de votre page

Méthodes pour indiquer vos pages de remplacement Il existe trois façons d'indiquer à Google plusieurs versions d'une même langue ou de plusieurs paramètres régionaux:

  1. Balises HTML
  2. En-têtes HTTP
  3. Plan du site

D'après mon expérience personnelle, je suggérerais d'utiliser la méthode de la tête

Sitemap:

Avantages: Plus de contrôle sur les pages qui ont une langue alternative Configuration facile (exploration et définition)

Inconvénients: mise à jour mensuelle

Tête:

Avantages: le processus peut être automatisé à l'aide d'une variété de plug-ins et de scripts

Inconvénients: vous pouvez facilement avoir des problèmes hreflang sur des pages sans autre langue (sauf si c'est fait manuellement, ignorer ceci)

Remarque: je ne suis pas vraiment sûr de ce qui se passera si vous conservez les deux, mais je trouve cela inutile, simple et sain pour éviter les erreurs et, éventuellement, ignorer votre hreflang sur Google.

Exemples

Utilisation de hreflang sur un sitemap.

Sitemap devrait ressembler à ceci:

<url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>

L'en-tête ne devrait pas inclure hreflang car nous l'avons sur le sitemap.

<head> no hreflang </head>

Utiliser hreflang sur l'en-tête

Sitemap devrait ressembler à ceci

<url>
    <loc>http://www.example.com/english/page.html</loc>

  </url>

L'en-tête devrait ressembler à ceci:

<link rel="alternate" href="http://www.example.com/deutsch/page.html" hreflang="de">
<link rel="alternate" href="http://www.example.com/schweiz-deutsch/page.html" hreflang="de-ch">
<link rel="alternate" href="http://www.example.com/english/page.html" hreflang="en">
<link rel="alternate" href="http://www.example.com/english/page.html" hreflang="x-default">
3
John Could

Vous devez spécifier chaque URL spécifique à la langue dans votre sitemap. Google a publié un article sur sa page webmasters que vous pouvez vérifier. Il contient une section spécifique consacrée aux sitemaps et aux versions localisées de votre site, avec un exemple détaillé. Dans cette section, on lit:

Vous pouvez utiliser un plan Sitemap pour indiquer à Google toutes les variantes de langue et de région pour chaque URL. Pour ce faire, ajoutez un élément spécifiant une URL unique, avec des entrées enfants répertoriant toutes les variantes de langue/paramètres régionaux de la page, y compris la personne elle-même. Par conséquent, si vous avez 3 versions d'une page, votre sitemap aura 3 entrées, chacune avec 3 entrées enfants identiques.