今回もGoogleが発表したスマートフォンサイト構築の最適化に関する、ドキュメントに明記されていない注意事項についての話題を扱いたいのですが、本題に入る前に、私の意見を少し述べておきます。
各種アノテーションは本当にウェブマスターの役に立っているの?
一昔前のGoogleを含む検索エンジンのオーガニック(自然)検索は、原則としてランキングはもちろん表示するURLなど諸々すべてが検索アルゴリズムによって決定されており、ウェブマスター側の希望や意図を反映する余地はありませんでした。しかし、rel=canonical, href lang, XML Sitemaps, next/prev, alternate/canonical など、(実質Google主導による)検索エンジンに関連する様々な新仕様・機能の登場により、ウェブマスターが自らの希望や意図を、オーガニック検索に反映することが可能となってきました。
これは本来、ウェブマスターにとって歓迎すべき動きのはずでした。しかし現実のところ、本当にウェブマスターにとって有益な機能となっているのでしょうか。たとえばアノテーション(記述)系の機能。多くのアノテーションは、現実には実装が難しい、仕様がわかりにくく間違えやすい(e.g. 自己参照canonicalタグ問題、使いどころがよくわからない (e.g. rel=next rel=prev問題、といった具合で、実は世間一般のウェブマスターの多くはこれら機能のメリットを享受できていないのではないのでしょうか。
無論、ウェブマスターサイドの技術スキルや知識・ノウハウに依存する面があるのは仕方がないものの、せめて Google はヘルプセンターを通じて公式に発信する、各種ウェブマスター向けの検索機能・最適化情報は、できるだけ丁寧な説明と、一般的な情報は網羅していてほしいと考えています。
不明点が多いGoogleのスマートフォンサイト最適化のための推奨事項
その点、Googleは(日本語版は翻訳作業や情報アップデートに遅れがあるためやむを得ないとしても)英語版はおおよそ充実しており、随時ビデオ解説も交えてウェブマスターが理解しやすいような工夫を試みるなど、よくがんばっているという印象を持っています。
だからこそ、理解に苦しむのが先月(2012年6月)に発表された、スマートフォン最適化のベストプラクティスのドキュメントの完成度です。これ、どうしてGoogle担当者はこの内容で一般公開を許可してしまったのでしょうか?
今月私は、サーチフレンドリーなスマートフォンサイト構築のためのドキュメント整備を行う仕事をしているのですが、Googleが公開したヘルプ文書を読んでも不明点が数多くあり、ドキュメント化が難航しています。理由は簡単で、新機能についての作用・役割が明記されていないことと、Googleがこの文書を作成した時点で想定していたであろうケースが限定的すぎて、一般のサイト制作時にそのまま適用できないケースが数多くあることが原因です。Google担当者からの回答を得なければ基本的な実装すらできないような、そんなヘルプ文書なら公開されていない方がマシだと思うのですよ。default-Googlebotはスマホ版もクロールさせなければならないとか、明記してくれなければわかるはずありません。
スマホサイトの別URL運用時におけるHTTP Vary headerの役割
・・・と、Googleに苦言を呈したところで本題に入ります。その問題の"Building Smartphone-Optimized Websites"を読み解いていきますと、Separate mobile URLs、つまりスマートフォンサイトを(デスクトップ版とは)別のURLで運用する場合の推奨事項の欄に、Redirects and the HTTP Vary header という項目があります。この項目では別途"Googlebot and caching: the Vary HTTP header with automatic redirects" を参照せよという記載があるのでそこに目を通すと、次のような記載があります。
If your site serves content or redirects users depending on the user-agent, i.e. the response varies, we strongly recommend that your server also send the Vary HTTP header on URLs that serve automatic redirects. This helps with ISP caching and is another signal for Googlebot and our algorithms to discover and understand your website's configuration. [Googlebot and caching: the Vary HTTP header with automatic redirects, Building Smartphone-Optimized Websites]
下線部の強調は私が追加しています。その強調部分ですが "strongly recommend" と記載してあります。つまり、この文書全体にざっと目を通すと、スマホサイト別URL運用時のケースにおいては、alternate/canonicalによるスマホ版とデスクトップ版の関係性明示に加えて、Vary HTTP header も必要であるかのような解釈ができます。
しかし、本当にこのケースで Vary HTTP header は必要なのでしょうか。なぜなら、alternate/canonical により、デスクトップ版とスマホ版が互いに関係性をdefault-Googlebotに伝達すれば、同クローラはデバイス毎のURLを認識できるのだから、Vary HTTP header は不要、少なくとも strongly recommend と言えないのではないでしょうか。
Vary HTTP header の役割
Vary HTTP header とは、サーバがクライアントに返す HTTP header に文字列 "Vary: User-Agent" を含めることにより、当該URLには別デバイス用のコンテンツが用意されていることを示すものです。
default-Googlebot がアクセスした時に、この Vary HTTP header 情報を受け取ると「ここにはモバイル用のコンテンツも用意されているんだね、わかった、後で Mobile-Googlebot を送り込むよ!」という判断をしてくれます。つまり、モバイルコンテンツを適切に、素速くインデックスさせることができます。
この Vary HTTP header は、同一URLながらUAの違いにより異なるコンテンツをサーバ側から配信する、ダイナミックサービング(Dynamic serving)のアプローチをとっている場合は必須となります。 Vary HTTP header がなければ、Mobile-Googlebot に巡回させるという判断ができないからです。
しかし、デスクトップ版とスマホ版が別URLに存在するケースでは、それぞれのURL-コンテンツが独立しているのですから、 Vary HTTP header がなくても Google は Mobile-Googlebot による巡回必要性の有無を判断できるはずなのです。なぜベストプラクティスを解説した文書には、あえて "strongly recommend" と記載があるのでしょうか。
そんな疑問があって、米Googleに問い合わせをしました。
スマホ別URL運用時、実は Vary HTTP header は不要
Googleによると、スマホ別URL運用時に alternate/canonical を使用している場合「Vary HTTP header は不要」ということでした。私が上記で示した理屈の通り、alternate/canonicalにより必要条件を満たしますので、Vary HTTP header がなくても支障はありません。
別に alternate/canonical と Vary HTTP header の両方を実装して頂いても特に不利益は生じないのですが、両方やったからといって特にメリットもありませんので、皆様各自の事情にあわせて、楽な手段を選択してください。
#
「スマホサイトと検索エンジンの親和性をどう高めていくか」という課題はきっと多くの人が関心を持っていそうな気がするのですが、皆さんあまり情報を発信されていないようなので、定期的にこの話題は扱っていきたいと思います。ここが知りたい!というリクエストがありましたら、Twitter, Facebook などでお寄せくださいませ。