Understand 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. This document describes the features and APIs that are explicitly disabled or limited in the WRS.

Googlebot and WRS prioritize essential page content

Googlebot is designed to be a good citizen of the web. Crawling is its main priority, while making sure it doesn't degrade the experience of users visiting the site. Googlebot and WRS continuously analyze and identify resources that don’t contribute to essential page content and may not fetch such resources. For example, reporting and error requests that don’t contribute to essential page content, and other similar types of requests are unused or unnecessary to extract essential page content.

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 does not support ES6

Chrome M41 does not support ES6 features (for example classes). If you are using ES6 make sure to transpile your JavaScript to ES5.

WRS has limited support for web components

Put your content into light DOM whenever possible and use shadow DOM to encapsulate and hide implementation details. Essential content such as navigation elements, links, headings, and your main text and images should always be in light DOM. This maximizes compatibility for clients that may not support web components or don't execute JavaScript.

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.

WRS and Googlebot doesn't support WebSocket protocol

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

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.

Send feedback about...