Metrics
Metrics in CrUX are powered by standard web platform APIs exposed by browsers. In the BigQuery dataset in particular, this data is aggregated to origin-resolution. Site owners requiring more detailed (e.g. URL-level resolution) analysis and insight into their site performance can use the same APIs to gather detailed real user measurement (RUM) data for their own origins. Note that while all APIs are available in Chrome, other browsers may not support the full set of metrics.
Most metrics are represented as a histogram aggregation, allowing visualization of the distribution and approximation of percentile values.
First Paint
"First Paint reports the time when the browser first rendered after navigation. This excludes the default background paint, but includes non-default background paint. This is the first key moment developers care about in page load - when the browser has started to render the page."
First Contentful Paint
"First Contentful Paint reports the time when the browser first rendered any text, image (including background images), non-white canvas or SVG. This includes text with pending webfonts. This is the first time users could start consuming page content."
DOM Content Loaded
"The DOMContentLoaded reports the time when the initial HTML document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading."
Largest Contentful Paint
"Largest Contentful Paint (LCP) is an important, user-centric metric for measuring perceived load speed because it marks the point in the page load timeline when the page's main content has likely loaded — a fast LCP helps reassure the user that the page is useful."
Onload
"The load event is fired when the page and its dependent resources have finished loading."
Cumulative Layout Shift
"Cumulative Layout Shift (CLS) is an important, user-centric metric for measuring visual stability because it helps quantify how often users experience unexpected layout shifts — a low CLS helps ensure that the page is delightful."
First Input Delay
"First Input Delay (FID) is an important, user-centric metric for measuring load responsiveness because it quantifies the experience users feel when trying to interact with unresponsive pages—a low FID helps ensure that the page is usable."
Interaction to Next Paint
"Interaction to Next Paint (INP) is a field metric that assesses responsiveness. INP logs the latency of all interactions throughout the entire page lifecycle. The highest value of those interactions—or close to the highest for pages with many interactions—is recorded as the page's INP. A low INP ensures that the page will be reliably responsive at all times."
Interaction to Next Paint (INP) was added to the CrUX dataset in February 2022. This new metric captures the end-to-end latency of individual events and offers a more holistic picture of the overall responsiveness of a page throughout its lifetime.
Navigation types
The navigation types metric provides a breakdown of the percentage of page views of the following navigations:
Type | Description |
---|---|
navigate |
A page load, which does not fit into any of the other categories. |
navigate_cache |
A page load for which the main resource (the main HTML document) was served from the HTTP cache. Sites often make use of caching for sub-resources, but the main HTML document is often cached considerably less and when it can be, it can result in noticeable performance improvements from being able to be cached locally and at a CDN. |
reload |
The user reloaded the page, either by hitting the reload button, by hitting enter in the address bar, or by undoing a tab close. Page reloads often result in revalidation back to the server to check if the main page has changed. A high percentage of page reloads may indicate user experience frustrations. |
restore |
The page was reloaded after a browser restart, or a tab that had been removed for memory reasons. For Chrome on Android these are reported as 'reload' instead. |
back_forward |
A history navigation, meaning that the page was seen and returned to recently. With correct caching, these should be reasonably fast experiences but still require the page to be processed and JavaScript to be executed—both of which the bfcache avoids. |
back_forward_cache |
A history navigation which was served from the bfcache. Optimizing your pages to take advantage of the bfcache, by removing blockers, should result in faster experiences, so sites should look |
prerender |
The page was prerendered which—similar to bfcache—can result in near-instant page loads. |
In some cases, a page load can be a combination of multiple navigation types. In that case, CrUX reports the first match in reverse order of the table (from bottom to top).
More information can be found in the navigation types announcement post.
Experimental metrics
Experimental metrics are available in the CrUX dataset using BigQuery, with some also available in the CrUX API. These metrics are likely to change regularly as they evolve based on user feedback. Check the release notes to keep up to date on the latest changes.
Time to First Byte
TTFB in CrUX is only collected on full page loads, unlike other timers (such as LCP) which are also collected on back-forward navigations and prerendered pages. As such, the sample size of TTFB can be smaller than other metrics and may not necessarily be compared directly with them.
CrUX measures TTFB as the first bytes of the document resource are received from the server. The conventional view of TTFB has been to measure when the document response starts but when Early Hints are used the "first bytes" will be earlier than this. In future CrUX may be updated to ignore Early Hints.
TTFB is not a direct measure of server response time as it does include measures before that, including redirect time and be affected by whether a response is served from cache or CDN or from server. This is particularly apparent in field data like CrUX, whereas lab testing typically is less affected by these factors since the end URL is tests and often repeatedly negating caching changes.
Popularity
The popularity rank metric is a relative measure of site popularity within the CrUX dataset, measured by the total number of navigations on the origin. Rank is on a log10 scale with half steps (e.g. top 1k, top 5k, top 10k, top 50k, top 100k, top 500k, top 1M, etc.) with each rank excluding the previous (e.g. top 5k is actually 4k URLs, excluding top 1k). The upper limit is dynamic as the dataset grows.
Popularity is provided as a guide for broad analysis, for example to determine performance by country for the top 1,000 origins.
Notification Permissions
For websites that request permission to show users notifications, this metric represents the relative frequency of users' responses to the prompts: accept, deny, ignore, or dismiss.
Round Trip Time
Provides an estimate of the HTTP (application layer) round trip time at the start of the navigation, based on recent network connections. This metric is also known as the rtt property of the Network Information API, which is the same API responsible for the Effective Connection Type (ECT) dimension.
This metric is only available in the CrUX API and the CrUX History API, aggregated to the 75th percentile. Histograms are not available. It's also not available in BigQuery.