[レベル: 上級]
Ajaxで生成されたコンテンツを確実にクロール、インデックスするためのガイドラインをGoogleは公開しています。
このガイドラインで推奨している構成のサポートをGoogleは近いうちに終了するとのことです。
先日、米サンノゼで開催されたSMX WestでGoogleのGary Illyes(ゲイリー・イリーズ)氏が明らかにしました。
GooglebotにAjaxをクロールさせるための構成
AjaxコンテンツをGooglebotにクロール、インデックスさせるには、”#!“や”?_escaped_fragment_=“、”HTMLスナップショット“などの独特な仕様に従う必要があります。
Googleが推奨するこの構成のサポートを近々終了するらしいのです。
サポート終了の詳細は不明
ガイドラインのサポートを打ち切ることとその後はどうすればいいのかなど、詳しいことは早ければ”来週”にも公式ブログで発表するとのことでした。
SMX Westが開催されたのは、2015年3月3日〜5日です。
“来週”はすでに過ぎています。
しかし発表はまだありません。
したがって詳細は依然として不明です。
何もしなくていい?
GooglebotはJavaScriptを実行できるようになっています。
能力をさらに向上させてAjaxのコンテンツも簡単に処理できるようになったのでしょうか?
「AJAXのよくある質問」のヘルプ記事には次のような説明があります。
Google では、Googlebot がよりブラウザに近い動作をするよう対応を続けています。サイトで必要な機能が実装されていくにつれて、特に何もしなくても Googlebot によってページが適切にインデックスに登録されるようになる可能性はあります。
特別な構成をしていないAjaxコンテンツをGoogleがインデックスしているのを発見した出来事もありました。
robots.txtでリソースのクロールをブロックしていなければ、GooglebotはAjaxも実行できるようになったのでしょうか?
つまり、Ajaxでコンテテンツを生成していたとしても何もしなくてよくなったのでしょうか?
話はそれほど単純ではないらしい
そのページで必要なすべてのJavaScriptファイルのクロールが許可されていれば、GooglebotはAjaxコンテンツを見ることができるのか?
この質問に対して、イリーズ氏は次のように答えてそうです。
答えはもっと複雑だ。
だが簡単にいえば、ライトボックスを見るためにユーザーが何もする必要がないなら、私たち(Googlebot)もそれを見ることができるべきだ。
レンダリングしている間に私たちがクリックすることはないから、クリックによるイベントは無視されるだろう。しかし、たとえばonLoadイベントによって実行されるJavaScriptは確かに実行できる。
質問者は、Ajaxによってライトボックスを表示するページを例としてイリーズ氏に見せていました(具体的なURLは伏せられている)。
クリックのようなユーザーの明示的なアクションが必要なものに関しては、Googlebotはクロールしない、でもonLoadイベントのようにページの表示と同時に実行されるものに関してはクロールでできるとイリーズは言っています。
とはいえ、イリーズ氏の回答は詳細を説明していません。
一部のAjaxコンテンツは、特別な構成をとらなくてもクロール、インデックスできるようになったということなのでしょうか?
詳細はGoogleの発表待ち
サポートを終了するといっても、打ち切るということではないでしょう。
これまでの推奨構成を使っているサイトも多いはずで影響が大きくなりそうです。
「推奨から外す」という意味ではないかと僕は推測します。
何もしなくてもクロールできるAjaxがある一方で、そうではないものについてはpushStateを使いなさいとでも言ってくるんでしょうかね?
そう遠くない将来にGoogleが公式に発表するのを待つしかありません。
「#!、?_escaped_fragment_=、HTMLスナップショット」の構成をあなたのサイトで採用しているなら、特に注視しておく必要があります。