web-dev-qa-db-ja.com

ルートとi18nのクエリ文字列のロケールコード

そのため、ロケールコードをWebサイトのルートに追加するのに役立つライブラリに出会いました。例:website.com/en-US/about/

ライブラリは、「Googleは言語ごとにページをクロールしてレンダリングするために異なるURLを必要とする」ため、このようにする必要があると主張しています。これは正しいです?

また、ロケール文字列をクエリ文字列に入れるだけで同じことを達成できますか?例:website.com/about/?locale=en-US

より一般的には、ルートベースとクエリベースの長所と短所は何ですか?

4

SEOの観点からは、問題ではありません。ただし、一般的な場合、クエリベースの言語構成を使用すると、サーバーコードがいたるところで複雑になります。フォームの処理がやや複雑になり、テンプレート処理が複雑になり、静的な言語ベースのファイルの可能性がなくなります(たとえば、各言語のバナー画像を想像してください。ファイルシステムにダンプすることはできません。提供するファイルを決定します...)。

全体的に、クエリベースのi18nセットアップを特に利用するプラットフォームを使用している場合を除き、単純に無数の面白くない方法でサーバーコードが複雑になるため、そうしないでください。また、ほぼすべての主要なパッケージ(WordPressなど)がルートベースの言語構成を使用しているため、信じられないほど非標準です。簡単に使用できます。

3
phyrfox

GoogleはURLを調べて言語を判断しないため、SEOに関する限り、これらは同一である必要があります。テキストコンテンツ自体で機械学習を実際に使用する言語を判断するためです。

SEOの重要な部分は、次のようなメタタグを使用して、各ページの異なる言語バージョンをGoogleに認識させることです。

<head>
  <title>Your Website</title>
  <link rel="alternate" hreflang="en-us"
        href="http://website.com/en-US/about/" />
  <link rel="alternate" hreflang="de"
        href="http://website.com/de/about/" />
</head>

詳細については、 Webページの言語を指定するためのGoogleのガイドライン を参照してください。