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 で多言語切り替えに対応しているサイト)ではこの問題に
どのように対処しているかを調べると、
- Facebook: ja-jp.facebook.com(サブドメインから www.facebook.com に 302 転送)
- Twitter: twitter.jp(別ドメインを持ち、twitter.com に 302 転送)
- YouTube: www.youtube.com/?gl=JP&hl=ja(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 サーバ
