Google のサーバーが
Susan Wojcicki のガレージで動いていた
1998 当時は、JavaScript や CSS はあまり気にかける必要もありませんでした。それらはあまり使用されておらず、JavaScript はページ要素にちょっとした動きなどを加えるために使用されてるだけでした。そのときと今では状況が大きく変わりました。今やウェブの世界は、JavaScript を最大限に活用したリッチでダイナミックで魅力的なウェブサイトであふれています。今回は、よりリッチなウェブサイトをレンダリングする Google の能力についてご紹介します。Google は現在、最新のウェブ ブラウザに近いコンテンツの表示、外部リソースの追加、JavaScript の実行、CSS の適用を実現しています。
以前は、HTTP レスポンスのボディから取得されるテキスト形式のコンテンツだけが認識されており、JavaScript が動作する一般的なブラウザにどのようなコンテンツが実際に表示されているかを解釈することは行っていませんでした。JavaScript を使用した時にのみ表示される価値のあるコンテンツを表示するページ群が登場しても、検索ユーザーにそのコンテンツの情報を伝えることはできませんでした。これは検索ユーザーとウェブマスターの両方にとって悲しい結末です。
この問題を解決するために、Google では JavaScript を実行してページを把握する方法を試すことにしました。現在のウェブの規模でそれを行うことは困難ですが、やるだけの価値はあると判断したのです。これを実現するため、Google のシステムは、時間をかけて徐々に改良されてきました。ここ数か月間、Google のインデックス登録システムは、かなりの数のウェブページを JavaScript が有効な一般ユーザーのブラウザのようにレンダリングしています。
場合によっては、レンダリング時の処理が完全にはうまくいかないこともあり、皆様のサイトの検索結果に影響を及ぼす可能性があります。その場合の考えられる原因と、その問題の回避方法(可能な場合)の例を以下にご紹介いたします。
別々のファイルにある JavaScript や CSS などのリソースが(robots.txt などにより)Googlebot をブロックしている場合、Google のインデクシング システムは、そのサイトを一般ユーザーと同様には認識できません。皆様のコンテンツをインデックス登録できるように JavaScript や CSS の取得を Googlebot に許可することをおすすめします。これは、モバイル向けのウェブサイトでは特に重要です。あるページが
モバイル向けに最適化されているかを Google のアルゴリズムが識別するうえで、CSS や JavaScript などの外部リソースが必要になるためです。
ウェブ サーバーが一定数のクロール リクエストを処理できない場合、ページをレンダリングする Google の機能に影響を及ぼす可能性があります。Google がページをレンダリングできるかどうかを確認したい場合は、ご利用のサーバーでリソースのクロール リクエストを処理できるかどうかをご確認ください。
常に有効なのは、JavaScript 非対応の環境にも対応しておくことです。この方法を使えば、ユーザーのブラウザが互換性のある JavaScript を実装していなくてもコンテンツを表示できます。JavaScript が無効またはオフになっていても、JavaScript をまだ実行できない検索エンジンでも大丈夫です。
場合によっては、JavaScript が複雑すぎたり特殊すぎたりして、Google で実行できないこともあります。このような場合は、ページを完全に正しくレンダリングすることはできません。
JavaScript によっては、コンテンツを追加するのではなく削除するものもあります。こういった場合、コンテンツのインデックス登録はできなくなってしまいます。
現在 Google ではデバッグがより簡単にできるように、ウェブマスターの皆様が Google によるサイトのレンダリング状況を詳しく把握できるようなツールの開発に取り組んでおります。近いうちに
ウェブマスター ツールで皆様にご提供する予定です。
ご不明な点がありましたら、お気軽に
ウェブマスター ヘルプ フォーラムをご利用ください。
Posted by Erik Hendriks and Michael Xu, Software Engineers, and Kazushi Nagayama, Webmaster Trends Analyst
Original version: Official Google Webmaster Central Blog: Understanding web pages better