多言語サイトを正しくインデックス化

0

Posted on 30-12-2009 | Development - 開発日誌 |

ちょっとしたウラ話。

えそらサイトは同一の URL で英語と日本語が切り替えられるようになっています。
例えば、http://esaura.cc/ で、ページ右上の English または 日本語 のリンクを
押すとそのままの URL でナビゲーション部分などの言語が切り替わりますね。

ログインした後は、この設定が保存されるようになっていて、

  • 1. DB に保存した設定 (ログインユーザーの場合)
  • 2. ブラウザの Cookie (ゲストユーザー&2回目以降のアクセス)
  • 3. ブラウザの言語設定(ゲストユーザー&はじめてのアクセス)

の優先順位で設定を参照し、表示する言語が自動で切り替わるようになっています。
うん、便利!(たぶん)

でも、実はこうしていると一つ問題が生じるんですよね。

「トップページの meta タグ(サイトの紹介文)を各言語用に用意していても、
Google や Yahoo! の検索結果にはいずれか一つの言語しか載らない」

例えば、Google のクローラーの Googlebot は、クローリングするときに
Accept-Language を送らないので、どの言語のページが返されるかはサーバや
アプリケーションのデフォルト設定によるのですが、いずれの言語が返されるにせよ
その一つの言語のみが Google の検索結果にインデックス化されることになってしまいます。

うーん、これは良くない。

他のサイト(同一 URL で多言語切り替えに対応しているサイト)ではこの問題に
どのように対処しているかを調べると、

サンプルがえらく少ないですが、同一 URL に限るとだいたいこんなパターンでしょうか。

共通点は何らかの形で各言語のページを用意しているというところですね。これにより、
例えば google.co.jp で Facebook と検索すると、ja-jp.facebook.com(紹介文が日本語) が
一番上に表示され、www.facebook.com(紹介文が英語)が二番目に表示されます。
両方表示されてて、かつ日本語が上になっていて良い感じですね。

というわけで、前置きがずいぶん長くなりましたが…

えそらでも http://ja.esaura.cc/ を用意し、同様の対策(http://esaura.cc/ に
302 転送し、このときは日本語を強制選択)をしてみることにしました。

しばらく様子を見て、結果はまたここでお知らせしたいと思います!

参考

Official Google Webmaster Central Blog: How to start a multilingual site
mod_alias – Apache HTTP サーバ