Rendering on Google Search

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 — for a full list refer to chromestatus.com, or use the compare function on caniuse.com.

However, there are a few exceptions and differences that you should keep in mind. The following features and APIs are explicitly disabled or limited in the WRS:

WRS and Googlebot doesn't support WebSocket protocol

Googlebot and WRS only speaks HTTP/1.x and FTP, with and without TLS.

WRS disables some interfaces and capabilities

Use feature detection to identify supported APIs and capabilities of the WRS, and polyfills where applicable — just as you would for any other browser — as the capabilities of WRS may update at any time:

  • IndexedDB and WebSQL interfaces are disabled.
  • Interfaces defined by the Service Worker specification are disabled.
  • WebGL interface is disabled; 3D and VR content is not currently indexed.

Googlebot and WRS are stateless across page loads

WRS loads each URL (refer to Introduction to Indexing for an overview of how Google discovers content), following server and client redirects, same as a regular browser. However, WRS does not retain state across page loads:

  • Local Storage and Session Storage data are cleared across page loads.
  • HTTP Cookies are cleared across page loads.

WRS declines permission requests

Any features that requires user consent are auto-declined by the Googlebot. For a full list of affected features, refer to the Permission Registry. For example, Camera API, Geolocation API, and Notifications API.

Track errors and debug rendering problems

In addition to using feature detection and polyfills, be sure to collect and analyze client-side errors that may prevent your application from behaving correctly when accessed by users and Googlebot.

Next: Debug rendering problems

Send feedback about...