web-dev-qa-db-fra.com

Hreflang pour les régions (comme les états et les provinces) d'un pays

Je travaille sur un site Web dont le contenu varie en fonction de la province/de l'État d'origine de l'utilisateur.

Est-il valide d’ajouter le code de subdivision à la hreflang comme ci-dessous?

<link rel="alternate" hreflang="en-ca-ab" href="https://www.example.com/ca/ab/example/"/> 

Sinon, y a-t-il un autre moyen de faire savoir aux moteurs de recherche que le contenu est spécifique à une province ou à un État donné?

5
Brad Thiessen

Bref non. La section "Codes de langue/région pris en charge" de Consignes de Google concernant les règles de fonctionnement est relativement claire:

La valeur de l'attribut hreflang identifie la langue (au format ISO 639-1) et éventuellement la région (au format ISO 3166-1 Alpha 2) d'une autre URL.

L'utilisation du mot "région" est peut-être source de confusion. Les codes ISO 3166-1 Alpha 2 désignent pays 1.

Ce que vous voulez probablement faire est connu sous le nom de référencement local, qui repose davantage sur des optimisations de contenu et hors site pour cibler les requêtes de recherche avec une intention locale. Votre question dépasse le cadre de votre question.


1 Pour être vraiment pédant, même cela est sémantiquement gênant. Par exemple, les pays constitutifs du Royaume-Uni n'ont pas leurs propres codes, même s'ils sont des pays (et non des États ou des provinces).

3
GDav

La spécification HTML5 définit hreflang comme ceci:

L'attribut hreflang sur un élément qui crée des hyperliens, s'il existe, donne le langage de la ressource liée. C'est purement consultatif. La valeur doit être une balise de langue BCP 47 valide. [BCP47] Les agents d'utilisateur ne doivent pas considérer cet attribut comme faisant autorité. Lors de la récupération de la ressource, il ne doit utiliser que les informations de langue associées à la ressource pour déterminer sa langue, et non les métadonnées incluses dans le lien vers la ressource.

(voir https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang )

BCP47 est un document IETF " balises d'identification de langues ". Il détaille la manière dont une étiquette de langue est formée et son contenu éventuel.

L’analyse est fondamentalement language[-script][-region]*("-" variant)*("-" extension):

  1. la première partie est la langue telle que définie dans les codes ISO 639-1 Alpha-2, donc en de votre cas, avec des sous-étiquettes de langue étendues facultatives,
  2. le script est composé de 4 caractères, donc ce n'est pas votre cas ici (c'est optionnel),
  3. la région provient de l'ISO 3166-1, Codes de pays, et il est préférable de la mettre en majuscule, d'où CA,
  4. les variantes de sous-étiquettes sont définies comme utilisées pour indiquer des variantes additionnelles bien reconnues qui définissent une langue ou ses dialectes qui ne sont pas couverts par les autres sous-étiquettes disponibles. , mais ils avoir au moins 4 caractères (voir point 4 du 2.2.5)

Donc, en-ca-ab ne me semble pas valable. Le code ISO 3166-2 pour l’Alberta au Canada est "CA-AB", mais vous ne pouvez pas l’utiliser tel quel (en raison de son trait d’union et du fait que chaque variante est enregistrée dans un registre).

En fait, si vous entrez votre chaîne à l’aide de http://unicode.org/cldr/utility/languageid.jsp , vous verrez qu’elle est étiquetée comme non valide. Je ne vois également aucune inscription pour "Alberta" dans https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

En bref, pensez-vous/avez-vous vraiment besoin de définir la langue canadienne anglaise telle qu'elle est parlée en Alberta, parce qu'elle est si différente de la langue canadienne anglaise, quelle serait la balise valide en-CA language?

Rappelez-vous que vous identifiez une langue et non une géographie. Si vous souhaitez spécifier qu'une partie de votre site Web n'est liée qu'à cette province spécifique (par exemple, si vous ne fournissez que des services là-bas), il ne s'agit pas d'un problème de langue et ne devrait donc rien avoir à faire avec hreflang.

1
Patrick Mevzek

En termes de hreflang, vous ne pouvez pas spécifier votre contenu de manière plus détaillée, comme pour le schéma de langue et de pays.

Je recommanderais toutefois vivement d'utiliser des données structurées, spécialement https://schema.org/audience et https://schema.org/spatialCoverage . Avec les deux propriétés, vous êtes capable de communiquer très exactement avec la région couverte.

La question qui reste sans réponse pour moi est la suivante: comment fournir techniquement du contenu différent à différentes régions? Basé sur IP? Cela fonctionne-t-il assez précisément pour vous?

1
Evgeniy