GET パラメータを使用して異なる言語バージョンとクライアントのブラウザ言語を区別できる多言語アプリケーションがあります。言語がサポートされていないか不明な場合は、代わりに英語を使用します。現在サポートされている言語は英語とドイツ語です。
したがって、ブラウザ言語が「en」(「es」、「zh」など - 「de」を除く)の訪問者は、説明したように英語になります)は、異なる URL に対して次の言語バージョンを取得します。
- mydomain.com --> 英語版
- mydomain.com?language=en --> 英語版
- mydomain.com?language=de --> ドイツ語版
これは今のところうまくいきますが、Google のインデックスに問題があります:
ドイツから、または google.de を使用してサイトを検索すると、1 人 (少なくとも顧客) はドイツ語で結果が得られることを期待します。
ただし、Google はドイツ語のテキストではなく英語のテキストを使用して結果 (ページの抜粋/メタ説明) を表示します。
「mydomain」を検索する例 (プログラマー アートを許してください :) ):
My Domain Title
http://www.mydomain.com
Here's the english meta description even if we search from Germany.
問題は、GoogleBot が英語を使用するか、言語情報を提供しないため (これが当てはまると思います)、「mydomain.com」の英語版を取得することです。
私たちは GoogleBot を支援し、ページ ヘッダーに「代替」リンクを配置しようとしました。
<link rel="alternate" hreflang="en" href="http://www.mydomain.com?language=en" />
<link rel="alternate" hreflang="de" href="http://www.mydomain.com?language=de" />
ただし、理論的には (これを理解している限り)、GoogleBot はそのページのさまざまな言語バージョンを認識する必要がありますが、それでも英語の結果が返されます。
また、「canonical」タグを使用することも考えましたが、インデックスに登録するために 1 つの言語バージョンを選択する必要があるということではないでしょうか?
私たちの最終的な目標は、Google が、海外のユーザーには英語版のページを返し、ドイツ語のユーザーにはドイツ語版を返すようにすることです。
どうすればそれを達成できるかについてのヒントはありますか?
アップデート:
この問題に対処するためにこれまでに行ったことは次のとおりです。
まず、言語をサイトのパスに移動し、言語が欠落している場合は常にドイツ語を想定しています。
したがって、次の結果が得られます。
http://www.mydomain.com --> 301 to "http://www.mydomain.com/de/"
http://www.mydomain.com/de/ --> German, alternatives are "http://www.mydomain.com/de/" and "http://www.mydomain.com/en/"
http://www.mydomain.com/en/ --> English, alternatives are "http://www.mydomain.com/de/" and "http://www.mydomain.com/en/"
ドイツ語の Google は期待どおりにドイツ語の結果を表示するようになりましたが、英語の Google (または英語の結果を表示するように設定されたドイツ語の Google) もドイツ語の結果を表示します。その理由は、リダイレクトの間違いか、Google があまり気にしていないかのどちらかだと思います。