Tarotas By Inithouse: 1つのドメインで5言語を管理する方法

私たちはInithouseでツールを開発しています。製品の一つに、タロットカードアプリのTarotasがあります。私たちは、チェコ語、英語、ポーランド語、スロバキア語、ドイツ語の5言語でコンテンツを提供しています。これらすべては1つのドメイン上で運用されています。

多言語設定のための構造を選択する必要がありました。私たちは以下の3つの選択肢を検討しました。

  • 国別コードTLD (example.cz)
  • サブドメイン (cs.example.com)
  • サブディレクトリ (example.com/cs/)

私たちはサブディレクトリを選択しました。その理由は以下の通りです。

サブディレクトリなら、すべてを1か所にまとめて管理できます。デプロイ、SSL証明書、Search Consoleのプロパティを1つずつ用意するだけで済みます。また、リンクの権威性(link authority)を1つの場所に集約できるのも利点です。これは、立ち上げ初期の製品にとって非常に重要です。

他の選択肢には高いコストがかかります。

  • TLDは強力な地域ターゲティングが可能ですが、複数のドメインとDNSレコードを管理しなければなりません。これにより、運用上のオーバーヘッドが膨大になります。
  • サブドメインは、半独立したサイトとして機能します。そのため、リンクの権威性が分散してしまいます。また、それぞれに対して個別のSearch Consoleプロパティが必要になります。

技術スタックもこの選択に影響を与えました。TarotasはReactを使用しています。サブディレクトリは単なるルート(route)であり、私たちのルーターで簡単に処理できます。一方、サブドメインを使用する場合は、複雑なDNS設定やデプロイの変更が必要になります。

これを実現するために、私たちはhreflangタグを使用しています。これらのタグは、検索エンジンに対してどの言語を表示すべきかを伝えます。しかし、その実装は一筋縄ではいきません。

多言語SEOを台無しにするよくある間違い:

  • 双方向リンクの欠如。ページAがページBにリンクしている場合、ページBからもページAへリンクを返す必要があります。
  • 誤ったcanonicalタグ。各言語のページは、そのページ自身をcanonical URLとして指定しなければなりません。すべての言語のページを1つの英語のURLに向けてしまうと、Googleは他の言語のページをインデックスから削除してしまいます。
  • クライアントサイドでのインジェクション。JavaScriptだけでタグを注入している場合、検索エンジンがタグを認識できない可能性があります。メタタグが初期HTMLに含まれるようにする必要があります。
  • x-defaultの指定漏れ。言語が一致しないユーザーのために、フォールバック言語(代替言語)を用意しておく必要があります。

多言語製品を展開する際のアドバイス:

  • シンプルさと権威性の共有を重視するなら、サブディレクトリを使用してください。
  • 言語よりも地域ターゲティングや現地価格の設定が重要な場合は、TLDを使用してください。
  • すべての言語において、canonical URLが自己参照(self-referencing)になっていることを確認してください。
  • コンテンツが国境を越えて通用するものであれば、言語のみのタグを使用してください。
  • 重複コンテンツの警告が出ていないか、Google Search Consoleを監視してください。
  • 結果が出るまで数週間は待ってください。Googleがこれらのシグナルを処理するには時間がかかります。

海外からのトラフィックが少ないと感じる場合は、まずcanonicalタグを確認してください。通常、エラーの原因はそこにあります。

出典: https://dev.to/jakub_inithouse/tarotas-by-inithouse-how-we-handle-5-languages-on-one-domain-without-hreflang-disasters-1nc1