私は、ユーザーの出身州/州に応じて異なるコンテンツを持つWebサイトで作業しています。
以下のようにhreflang
にサブディビジョンコードを追加することは有効ですか?
<link rel="alternate" hreflang="en-ca-ab" href="https://www.example.com/ca/ab/example/"/>
そうでない場合、コンテンツが特定の州/州に固有であることを検索エンジンに知らせる別の方法はありますか?
要するに、いいえ。 Googleのhreflangガイドライン の「サポートされる言語/地域コード」セクションは、かなり明確です:
Hreflang属性の値は、代替URLの言語(ISO 639-1形式)およびオプションで地域(ISO 3166-1 Alpha 2形式)を識別します。
「地域」という言葉の使用は、おそらく紛らわしいでしょう。 ISO 3166-1 Alpha 2コードは、countriesを示します1。
おそらくやりたいことは、ローカルSEOとして知られています。ローカルSEOは、コンテンツとオフサイトの最適化に依存して、ローカルインテントで検索クエリをターゲットにします。ここでそれをカバーするのはあなたの質問の範囲を超えています。
1 本当に用心深くなるには、これでさえ意味的に面倒です。たとえば、英国の構成国は、国(州または県ではない)であるにもかかわらず、独自のコードを持ちません。
HTML5仕様では、hreflang
を次のように定義しています。
ハイパーリンクを作成する要素のhreflang属性は、存在する場合、リンクされたリソースの言語を提供します。それは純粋に助言です。値は有効なBCP 47言語タグである必要があります。 [BCP47]ユーザーエージェントはこの属性を信頼できるものと見なしてはなりません。リソースを取得する際、ユーザーエージェントはリソースに関連付けられた言語情報のみを使用して言語を決定します。リソースへのリンクに含まれるメタデータは使用しません。
( https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang を参照)
BCP47はIETFドキュメント「 言語を識別するタグ 」です。言語タグがどのように形成されるか、およびその可能なコンテンツの詳細を示します。
解析は基本的にlanguage[-script][-region]*("-" variant)*("-" extension)
です:
en
にはオプションの拡張言語サブタグがあり、CA
、したがって、en-ca-ab
は有効ではないようです。カナダのアルバータ州のISO 3166-2コードは「CA-AB」ですが、ハイフンと各バリアントがレジストリに登録されているため、そのままバリアントとして使用することはできません。
実際、 http://unicode.org/cldr/utility/languageid.jsp で文字列を入力すると、無効としてラベル付けされていることがわかります。 https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry に「Alberta」の登録もありません
要するに、あなたはカナダの英語をアルバータで話されていると定義/本当に定義する必要があると思いますか?それは有効なen-CA
言語タグであるカナダの英語とは大きく異なるからです。
地理ではなく言語を特定していることに注意してください。 Webサイトの一部がこの特定の州のみに関連するように指定する場合(たとえば、そこでのみサービスを提供する場合)、言語の問題ではないため、hreflang
とは関係ありません。
Hreflangに関しては、言語と国のスキーマのように、コンテンツをより詳細に指定することはできません。
ただし、特に https://schema.org/audience および https://schema.org/spatialCoverage の構造化データを使用することを強くお勧めします。両方のプロパティを使用すると、対象地域を非常に正確に伝えることができます。
答えはありませんが、疑問は次のとおりです。異なるコンテンツを異なる地域に技術的に配信するにはどうすればよいですか。 IPベース?あなたにとって正確に機能していますか?