web-dev-qa-db-fra.com

Comment gérer le contenu fictif réservé à un site multilingue?

Je travaille sur un site où nous avons beaucoup de langues différentes (environ 24). Lorsqu'un élément de contenu est rédigé en anglais, il est automatiquement copié sur tous les sites linguistiques où il sera traduit ultérieurement dans la langue appropriée. Actuellement, nous utilisons hreflang<link> éléments dans le head comme ceci:

<link rel="alternate" hreflang="da" href="http://server/da/wiki/some-page/" />
<link rel="alternate" hreflang="de" href="http://server/de/wiki/some-page/" />
<link rel="alternate" hreflang="et" href="http://server/et/wiki/some-page/" />
<link rel="alternate" hreflang="en" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="es" href="http://server/es/wiki/some-page/" />
<link rel="alternate" hreflang="fr" href="http://server/fr/wiki/some-page/" />
<link rel="alternate" hreflang="is" href="http://server/is/wiki/some-page/" />
<link rel="alternate" hreflang="it" href="http://server/it/wiki/some-page/" />
<link rel="alternate" hreflang="lv" href="http://server/lv/wiki/some-page/" />
<link rel="alternate" hreflang="lt" href="http://server/lt/wiki/some-page/" />
<link rel="alternate" hreflang="hu" href="http://server/hu/wiki/some-page/" />
<link rel="alternate" hreflang="nl" href="http://server/nl/wiki/some-page/" />
<link rel="alternate" hreflang="no" href="http://server/no/wiki/some-page/" />
<link rel="alternate" hreflang="pl" href="http://server/pl/wiki/some-page/" />
<link rel="alternate" hreflang="fi" href="http://server/fi/wiki/some-page/" />
<link rel="alternate" hreflang="sv" href="http://server/sv/wiki/some-page/" />
<link rel="alternate" hreflang="tr" href="http://server/tr/wiki/some-page/" />
<link rel="alternate" hreflang="ru" href="http://server/ru/wiki/some-page/" />
<link rel="alternate" hreflang="ar" href="http://server/ar/wiki/some-page-2/" />
<link rel="alternate" hreflang="th" href="http://server/th/wiki/some-page/" />
<link rel="alternate" hreflang="ja" href="http://server/ja/wiki/some-page/" />

D'après ma compréhension, il est préférable d'utiliser x-default plutôt que canonical - est-ce correct? De plus, avons-nous besoin de balises supplémentaires pour les pages non encore traduites (telles que noindex ou nofollow)? Un grand nombre des ressources que j'ai trouvées sont contradictoires ou ne savent pas clairement quoi faire dans le cas d'un contenu non traduit (dupliqué).

7
phatskat

Pour HTML5:

Si vous souhaitez créer un lien vers une page contenant le même contenu (dans la même langue, car elle n’a pas encore été traduite), vous devez

  • peut utiliser hreflang, mais la valeur doit être la langue actuelle du contenu, et non la langue dans laquelle il pourra être traduit à l'avenir (¹)
  • peut utiliser alternate car le document est une représentation alternative
  • alternate + hreflang (en raison de l’exception liée ci-dessus: il ne s’agit pas d’une traduction si l’attribut lang de l’élément html du document de liaison a la même valeur que l’attribut hreflang du lien)

En d’autres termes, le balisage de votre question est invalide, car a) le hreflang dénote la langue fausse, et b) il découle de cela que vous indiquez que le document lié serait une traduction bien que ce ne soit pas (du moins pas encore).

À mon avis, la meilleure solution serait et non de créer un lien vers des pages non traduites. Un tel lien n’est généralement pas utile pour vos visiteurs: un utilisateur allemand atterrit sur votre page anglaise, note que vous créez un lien vers une traduction allemande, suit ce lien et se termine sur une autre page avec le même contenu toujours en anglais. Même idée avec les robots: vous leur donnez un mauvais signal.

Ajoutez plutôt le lien dès que la page est traduite.

Si cela n’est pas possible, il peut être judicieux de ne pas indexer les pages non traduites en utilisant un élément meta-robots avec la valeur noindex ou l’en-tête équivalent X-Robots-Tag ( examples ), et/ou à utilisez le type de lien nofollow pour les liens vers des pages non traduites ( en fonction du sens utilisé ), en particulier si la traduction du contenu peut prendre beaucoup de temps.


(¹) Pour hreflang, la spécification HTML5 définit uniquement le type de "langue de la ressource liée". La valeur à utiliser pour, par exemple, une page en allemand (en-tête, pied de page, navigation, barre latérale) avec contenu principal en anglais. Si vous pensez que la valeur doit être de à cause de l’en-tête/pied de page/etc. (au lieu de en en raison du contenu principal), l’utilisation de l’étiquette de langue pour la langue dans laquelle il sera traduit pourrait être appropriée. Dans ce cas, l’exception pour alternate + hreflang n’est pas pertinente, car vous lieriez des traductions (bien que le contenu principal ne soit pas traduit).

FWIW, Google cite un cas similaire comme premier exemple pour leurs hreflang guidelines :

Vous conservez le contenu principal dans une seule langue et ne traduisez que le modèle, tel que la navigation et le pied de page. Les pages qui présentent un contenu généré par l'utilisateur, comme les forums, le font généralement.

1
unor

Utilisez x-default pour la version par défaut de votre site Web que vous n'avez pas encore ciblée par un autre hreflang. Pour votre information, Google ne mentionne pas canonique.

référence: https://googlewebmastercentral.blogspot.fr/2013/04/x-default-hreflang-for-international-pages.html

De votre code que vous avez ajouté à votre question, je peux voir une mauvaise configuration

<link rel="alternate" hreflang="en" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />

Votre ligne x-default pointe déjà en anglais. Vous n'avez donc pas besoin de l'ajouter à nouveau, sauf si vous souhaitez également mentionner la région. Par exemple, si vous souhaitez que des personnes du monde entier parlant anglais se retrouvent sur votre page par défaut et si vous souhaitez que des personnes du Royaume-Uni se retrouvent sur une page spécifique:

<link rel="alternate" hreflang="en-gb" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />
1

Dans la mesure où il s’agit uniquement des moteurs de recherche qui communiquent où trouver votre site, vous pouvez transférer tout ce code dans votre plan Sitemap et soumettez-le dans le moteur de recherche de l'interface Webmaster de votre choix.

Avantages:

  • Faites-le aussi gros que vous voulez, sans gonfler votre code HTML. Il n'y a pas de limite!
  • Pas besoin de s'inquiéter de la confusion des structures de liens en-tête.
  • Vous pouvez explorer votre propre site plus facilement et toujours cacher les liens des autres robots d'exploration en nommant votre plan Sitemap quelque chose d'obscur.
  • Générez-le par programme pour l'ensemble de votre site.
  • Il est facile de faire analyser par le Webmaster les erreurs éventuelles (indexation et analyse).
  • Une solution de fichier pour ce qui sera plusieurs pages que vous devez indexer et marquer.
  • Un script peut le mettre à jour automatiquement lorsque vous ajoutez du contenu.

Inconvénients:

  • Plus de temps à configurer si vous ne faites que quelques pages.
  • Vous devez le mettre à jour séparément du HTML si vous n'utilisez pas de script.

Voici la documentation officielle de Google: https://support.google.com/webmasters/answer/2620865?hl=fr

Voici un exemple XML, avec les trois premiers liens de votre message:

<url>
    <loc>http://server/en/wiki/some-page/</loc> <!--The Original Page-->
    <xhtml:link 
             rel="alternate"
             hreflang="da" <!--Alternate language code-->
             href="http://server/da/wiki/some-page/" <!--Link to alt page-->
             />
<xhtml:link 
             rel="alternate"
             hreflang="de"
             href="http://server/de/wiki/some-page/"
             />
<xhtml:link 
             rel="alternate"
             hreflang="et"
             href="http://server/et/wiki/some-page/"
             />
</url>
1
L Martin