Googlebotはレンダリング機能としてChrome41相当の性能を持つ

[レベル: 上級]

ウェブページをレンダリングするときに Googlebot が利用する仕様を解説するページを Google はデベロッパー向けサイトに公開しました。
レンダリングする仕組みとして Chrome 41 相当の仕様を Googlebot は 実装しているとのことです。

Googlebot は Chrome 41 相当

解説ページは次の説明で始まります。

Googlebot uses a web rendering service (WRS) that is based on Chrome 41 (M41). Generally, WRS supports the same web platform features and capabilities that the Chrome version it uses

Googlebot は、Chrome 41 (M41) に基づいた ウェブ レンダリング サービス (WRS) を使用します。一般的には、そのバージョンの Chrome が使っているものと同じウェブプラットフォームの機能と性能を WRS は サポートします。

「ウェブ レンダリング サービス (WRS)」というのは、僕は初めて聞く用語です。
SEO を専門にやっている人は覚えておきましょう。

さて、この説明にあるように WRS として Googlebot は、Chrome 41 と同等の性能を持っています。

この記事を書いている時点での Chrome(安定版) の最新バージョンは 60 です。
41 が正式リリースされたのは、おそらく2015年1月です。
けっこう古いなというのが個人的な感想です。

バージョンアップも検討しているようですが、いつを予定してるかの情報は公式には出ていません。

若干の相違あり

Googlebot は Chrome 41 相当とはいえ、完全に一致しているわけではありません。
いくつかの相違があります。

WebSocket プロトコルをサポートしない

WebSocket(ウェブソケット)の説明は省くとして、Googlebot と WRS がサポートする通信は、HTTP/1.x と FTP です。
TLS (つまり、HTTPSとFTPS) もサポートします。

余談ですが、Googlebot は今のところは HTTP/2 をサポートしていません。

無効なインターフェイスと機能あり

Chrome 41 では有効な、次のインターフェイスまたは機能が Googlebot と WRS では無効になっています。

  • IndexedDB と WebSQL のインターフェイス
  • Service Worker の仕様によって定義されたインターフェイス
  • WebGL――3D と VR は現状ではインデックスされない

ステートレス

WRS はページをロードした際に状態を管理しません。

  • ローカルストレージとセッションストレージはページがロードされる際にクリアされる
  • HTTP Cookie はページがロードされる際にクリアされる

Googlebot は Cookie を受けれないというのは僕たちがよく知るところですね(でも例外はある)。

パーミッションリクエストの拒否

許可を求める要素があるときは、自動的に拒否します。

たとえば、カメラへのアクセス権や位置情報へのアクセス権、通知の許可などをアクセスした際に求めるページに出くわすことがあります。
これらは、自動的に拒否されます(Googlebotにはカメラは付いていませんものねw)。

デバッグ方法

検索でウェブページが想定どおりにレンダリングされない場合に調査する方法もデベロッパーサイトは、紹介しています。
次の2つです。

  • Fetch as Google レンダリングでの検証
  • JavaScript エラーログの分析

Fetch as Google でのレンダリング検証は鉄板です。

この記事では主要な点を紹介しました。

一般のウェブ担当者は、「Googlebot は Chrome 41 相当の性能」だけを知っておけばいいでしょう。

一方で、開発に関わっている人はデベロッパーサイトをくまなく読むことをオススメします。
Googlebot にコンテンツを的確にレンダリングしてもらうために知っておくべき情報が載っています。

P.S.
ちなみに、細かなことを言うと、Googlebot と WRS は別物です。
レンダリングするのは、Googlebot ではなく、Caffeine
WRS は Caffeine のサブシステムとのこと。