実例を基に問題を解決します
今回は実際に先日頂いたコメントの質問内容を、
実例に基づいた問題として対処法を載せます。
そのコメントと回答を見れば早いのですが、
こちらで大きく載せると同じ悩みを抱えた人が調べやすいでしょうから、
改めて記事としてアップさせて頂きます。投稿者の方勝手にすみません。
それでは質問の内容です。
質問:
以前から疑問であった質問を書かせてください。
携帯サイトを各キャリア対応で、似たようなページを3つずつ作るじゃないですか。
それでSEOを行いまして、実際に検索結果では、
エンジンにページ登録がされていれば検索結果はきちんと出ます。
この状況でAUの携帯でヤフーやグーグルでの検索を行います。
上位で出てくる自社サイトのページを確認すると、
たまにDOCOMO専用のページがの検索上位に出ていたりとか、当然にするんですよね。
これで、AUの携帯でDOCOMOのページに入ると、
タグがきちんと対応出来ていないので表示が壊れてしまう。
このような状況がありまして、対策を悩んでいます。
この問題はどうやって処理するのがよろしいのでしょうか。
回答:
早速ですが、まず前提としてクローラーはキャリア毎で存在しますが、
Googleインデックスなどではある程度共有していると考えられますので、
AUの携帯でdocomoのページが表示されてもおかしくはありません。
ユーザーエージェントによる振り分けを行っていますか?
対策としては、サーバーがapacheであれば、
URL書き換え(rewrite)で正しいパスに飛ばすことで解決できます。
ただし、この方法ですとクローラー的には同一内容の別インデックスという認識になりますので、
ユニークなページ、コンテンツを重視する検索エンジンとしては、
同じ内容が3つもあるのはよろしくない。
これの解決策としましては、インデックス化が進む前からURL書き換えを行い、
キャリアごとの差を与えないということですね。
さらにユーザーエージェントによる判別はクローラーはUAを偽装してきますので、
厳密にそれらも判別してやるともっと精度が高まります。
判別方法は過去の記事にも書いてありますので読んでみて下さい。
まとめると、3キャリア対応サイトの場合でもURLはひとつにする。
そのURLにアクセスがあった場合、
ユーザーエージェントでの判別を厳密に行い(キャリア名とクローラー名を合わせてチェックなど)、
URLの書き換えを行ってそれぞれのキャリアのページに誘導。
クローラーからそのURLにアクセスがあった場合は、3キャリアのうちどれか一つのページに誘導。
ただし先ほども記述したように、
UAの中の「docomo」とか「SoftBank」とかキャリア名だけで判別すると、
クローラーは偽装してきますので、それぞれのキャリアページに飛ばしてしまうことになります。
判別はGoogleならGooglebot-Mobile、YahooならY!Jで厳密に処理するということです。
以上のように、このような例は何度か見てきたのですが、
甘めで判別をしてることによって、
本来思った動作と全然違う動作をさせてしまっていることが多々あります。
結構簡単にできることではありますので、その辺りしっかり対応してあげればいいんじゃないかなと思います。