Ajaxクロールの推奨構成のサポートをGoogleがついに終了

[レベル: 上級]

Googleは、今からさかのぼること2009年に公開した、Ajaxクロールの推奨構成を終了することを公式にアナウンスしました。
以前の推奨構成を保持したままでもインデックスされ続けますが、現状に即した技術を利用するように促しています。

Ajaxクロールの推奨構成

ごく限られたJavaScriptしか実行できなかった当時、GoogleはAjaxによって生成されるコンテンツを確実にクロール、インデックスするために特殊な構成をウェブマスターに提唱しました。

この構成を、ざっと簡単に説明すると次のようになります。

  • ウェブページのレンダリングをすませた、いわゆる“スナップショット”を事前に作成しておき、AjaxページにGooglebotがアクセスしたときには準備済みのスナップショットを返す。
  • Googlebotにスナップショットを取得させるために、AjaxページのURLに含まれる「#」(ハッシュ、フラグメント)を「#!」に変更する必要がある。
  • 「#!」を見たGooglebotは、「#!」を「_escaped_fragment_」に置き換え、スナップショットを取得しようとする。
  • ウェブマスター側では、_escaped_fragment_ のURLでスナップショットを返すように構成しておく。

この構成のサポートを今回Googleは終了したのです。

推奨構成の手助けが不要に

現在のGooglebotは、非常に上手にJavaScriptを実行しCSSを解釈できます。
すなわち、僕たち人間が使うブラウザとほぼ同等にコンテンツをレンダリング可能になっています。

確実にレンダリング処理することを目的として、JavaScriptやCSSなどのリソースのクロールをrobots.txtでブロックしないように指示するために技術ガイドラインも更新しました。

こうした技術の進歩により、Googleは以前の推奨構成に頼ることなくAjaxコンテンツをクロール、インデックス可能になりました。
スナップショットの事前準備も必要なくなっていました。

そこで、Googlebotのためだけの特殊な構成をもはや採用せずに、たとえばHistory API pushState() のように、Progressive Enhancementプログレッシブ・エンハンスメント)の原則に即してウェブサイトを構成するようにGoogleは今は促しています。

サポート終了にともなう質問

これまでのAjaxクロール推奨構成のサポート終了にともなって出てくるであろう質問に公式アナンスが回答しています。
アナウンスを出したのが長山さんなので、すぐにでも日本語の翻訳記事が出てくる気もしますが一応触れておきます。

Q. サイトが現在、推奨構成に従っていて、_escaped_fragment_ をサポートしています。推奨構成を廃止してしまったので、もうインデックスされなくなってしまうのでしょうか?

A. いいえ。引き続きインデックスされるでしょう。しかしながら一般的に言って、サイトの次の更新のときに業界のベストプラクティスを実装することを勧めます。

Q. Ajaxクロールの提案から業界のベストプラクティスへの移行はサイトの移転としてみなされますか? リダイレクトを実装する必要がありますか?

A. 現在の設定が正しく機能しているなら、今すぐに何かを変更する必要はないでしょう。新しいサイトを作成していたり既存のサイトをリニューアルしていたりするなら、単純に、_escaped_fragment_ のURLを使うことは避けてください。

Q. JavaScriptフレームワークを使っていて、ウェブサーバーが事前にレンダリングしたページを配信しています。このままでも大丈夫ですか?

A. 一般的には、事前にレンダリングしたページをGoogleのためだけに返すべきではありません ―― しかしユーザーのパフォーマンス向上のために事前にレンダリングしていて、プログレッシブ・エンハンスメントのガイドラインに沿っているのならいいかもしれません。ページを事前レンダリングするなら、Googlebotに配信するコンテンツがユーザー体験と必ず一致するようにしてください。一般的なユーザーとは異なるコンテンツをGooglebotに配信すると、クローキングとみなされウェブマスター向けガイドラインに違反してしまうでしょう。

Ajaxクロールの推奨構成サポートをGoogleが終了することが明らかになったのが今年の3月でした。
近いうちにというニュアンスだったので、今か今か待ち構えていたのですが、ようやく公式な発表が出ました。

もっとも、実質的には、ほとんどの状況ですでにAjaxコンテンツをそのままでクロール、インデックスできるようにはなっていました。

なんにせよ、面倒な構成に従う必要がなくなったのは良いことです。
AjaxコンテンツはSEOに弱いという概念が、確実に消滅しつつあります。

もっともGooglebotがAjaxを完璧に解釈できるということではないでしょう。
しがたって、JavaScriptをGooglebotが処理できなかったとしてもコンテンツを取得できるように、アナウンスのなかで長山さんも触れていたプログレッシブ・エンハンスメントに沿うことも大切な施策なりそうです。
また、Fetch as Googleのレンダリング取得で、Googlebotに対しても思いどおりにレンダリングされているかのチェックも重要です。

【UPDATE】
日本版ウェブマスター向け公式ブログで翻訳記事が公開されました。