[レベル: 中級]
現在のGooglebotはJavaScriptを解釈し実行できます。
そしてJavaScriptによって生成されたコンテンツをクロールしインデックスします。
しかしJavaScriptの処理はHTMLのクロールとは別プロセスで行われます。
より時間が必要なため、少しでも速くインデックスさせたいコンテンツには多用しないほうがよさそうです。
JavaScriptの実行は別プロセス
2か月程前になりますが、GoogleのJohn Mueller(ジョン・ミューラー)氏がウェブマスター向けオフィスアワーでJavaScriptの処理について説明していました。
JavaScriptは、HTMLのクロールの次のサイクルとしてある意味処理される。
HTMLのコンテンツは非常に素速くクロールするが、JavaScriptを実行してそれによってできあがるコンテンツをクロールするのは別のサイクルで、より時間がかかることがある。
確実に、すべてのJavaScriptを取得しどのJavaScriptもrobots.txtでブロックされていないことを確認し、最終的に、そのJavaScriptがどういったものなのかを理解してから実行しなければならない。したがって、できるだけ速く検索結果に出したいのであればHTMLとしてコンテンツを作ったほうがいい。
静的なHTMLのクロール/インデックスとは別のプロセスとして、動的なJavaScriptは処理されるそうです。
通常のクロールと同時進行で実行されるわけではないということですね。
WebComponentsとPolymer、JSONで構成されるページのコンテンツが、Fetch as Googleレンダリングでは正常にコンテンツが表示されるけれど、実際に検索結果に出てくるまでにはそのページのインデックスから時間差があるという検証も存在します。
Googleのマイリーさんは、リソースを事前にキャッシュしているとSMX Advancedで言っていました。
JavaScriptファイルを更新した場合、すぐには反映されずに古い状態でのJavaScriptが実行されてしまうなんていうこともひょっとしたらありえそうです。
JavaScriptを処理するGooglebotのレンダリング能力は格段に向上しています。
とはいえ、ことインデックススピードという観点だけに絞っていえば、使い過ぎないほういいのかもしれませんね。