「accept language header」からロケールを設定する際にHTMLのlang属性の値が間違っています

Microsoft AppSource に製品の一部を掲載しようとしています。掲載には英語での体験が必須です。ただし、当社のフォーラムはバイリンガルであり、AppSource の掲載ページに英語カテゴリへのリンクを含めたいと考えています。

「Accept-Language ヘッダーからロケールを設定」機能を有効にし、インドからのユーザーが二次コンテンツを英語(「Laatste nieuwsberichten」ではなく「Last topics」など)で表示できるようにしています。

しかし、Postman でテストし、Accept-Language を「nl」から「en」に切り替えても、生成される HTML が正しくありません。

en の場合:

<!DOCTYPE html>
<html lang="nl">

<head>

nl の場合:

<!DOCTYPE html>
<html lang="nl">

<head>

実際のラベルはオランダ語から英語に正しく変更されていますが、HTML タグの言語属性は依然としてオランダ語として表示され、コンテンツの言語を反映していません。

Locale-Adaptive Pages Testing Tool | TechnicalSEO.com でも同様のテストを実施し、同じ結果となりました:

Google によるインデックス作成を考慮すると、<html> の lang 属性を Accept-Language から設定するか、カテゴリから導出できるようになると良いでしょう。なお、Google のクローラーは通常、Accept-Language を設定した状態で米国からアクセスします。

明確にさせておきますが、ご指摘の課題はクローラーと API リクエストでのみ発生しているのでしょうか。

Google のドキュメント によると:

さらに、クローラーはリクエストヘッダーに Accept-Language を設定せずに HTTP リクエストを送信します。

Google は Accept-Language ヘッダーを設定しないため、このアプローチでは Google に関する課題を解決することはできません。

html タグの lang 属性は、常にサイトのデフォルトロケールに設定されます。これは、ユーザーが設定ページからサイトのデフォルトロケール以外のロケールを選択した場合も同様です。

「いいね!」 2

申し訳ありません。もしかすると、間違った URL を貼り付けたのかもしれません。Crawling and indexing of locale-adaptive pages  |  Google Search Central Blog  |  Google for Developers をご覧ください。

2015 年以降、Google は accept-language を使ったクロールをサポートしています。

「いいね!」 1