J'aimerais supprimer les éléments multilingues dans les URL, c'est-à-dire obtenir site.com/page
au lieu de en.site.com/page
, site.com/en/page
et site.com/page?lang=en
.
La motivation est la suivante: les humains n'ont pas besoin de ces choses. Vous pouvez obtenir le lien page?lang=de
en cherchant une phrase allemande ou en naviguant dans une communauté germanophone. Qu'est-ce que Accept Language
a-t-il/elle? Ainsi, SE est le seul parti qui a besoin d'URL en désordre à cause d'un support médiocre (inexistant) Accept Language
. Les moteurs de recherche essaient de comprendre toutes les langues, tandis que les humains savent de quelle langue ils ont besoin. J'aimerais conserver uniquement les URL désordonnées réservées aux robots d'exploration et en montrer les plus propres aux humains, dans la mesure du possible.
Des questions:
window.location
? Est-il dangereux de nettoyer la barre d’URL via JS?<link rel="alternate" hreflang="...
soit un code interne. Dois-je synchroniser ces balises avec window.location
?Il n'y a rien de mal à vouloir nettoyer l'URL, mais je vais préciser certaines choses ici ...
Accept Language
dans leur navigateur, car ils ne le contrôlent pas (ordinateur public ou d'entreprise) ou ne savent pas comment le faire.La pratique courante, qui est également l'une des options prises en charge par Google, consiste à utiliser des sous-domaines pour vos codes de langue ou des domaines de premier niveau de code de pays (plus coûteux, car vous devez acheter un nom de domaine pour chaque traduction de votre site Web. ). Vous devez également inclure la méta rel="alternate" href-lang="..."
dans vos fichiers pour créer un lien vers la version traduite. Je vérifie également les en-têtes pour voir si l'en-tête Accept Language
est présent et correspond à la langue par défaut du site. Dans ce cas, je propose à l'utilisateur une option dans sa langue pour accéder au site traduit.