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é).
Pour HTML5:
Un lien avec alternate
type de lien indique que le document lié est une représentation alternative du document associé.
Un lien avec le hreflang
attribut indique la langue du document lié.
Un lien avec alternate
+ hreflang
indique que le document lié est une traduction du document de liaison ( voir ma réponse avec une citation de la spécification ; et pour référence, il y a - ne exception ).
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
hreflang
, mais la valeur doit être la langue actuelle du contenu, et non la langue dans laquelle il pourra être traduit à l'avenir (¹)alternate
car le document est une représentation alternativealternate
+ 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.
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/" />
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:
Inconvénients:
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>