
The three measures
Core Web Vitals are Google’s measures of real-world page experience. They are judged on what actual visitors see, at the 75th percentile: the result three out of four visits meet or beat, measured separately for phones and desktops.
- Largest Contentful Paint (LCP): how long until the biggest thing in view, usually a headline or a hero image, has appeared. Good is 2.5 seconds or less; poor is over 4 seconds.
- Interaction to Next Paint (INP): how long the page takes to respond after a tap, click or key press. Good is 200 milliseconds or less; poor is over 500 milliseconds. INP replaced First Input Delay as the responsiveness measure in 2024.
- Cumulative Layout Shift (CLS): how much the page jumps while it loads. Good is 0.1 or less; poor is over 0.25. It is unitless: a score of 0.1 means a modest shift, 1 means a large part of the screen moved.
Do they affect search ranking?
They are part of Google’s page experience signals, which matter less than relevance and quality of content. A fast page will not outrank a much better one. A slow, unstable page loses visitors before they read anything, which hurts regardless of ranking.
Lab data and field data
A lab test (Lighthouse, PageSpeed Insights’ top section) loads the page once in a simulated device and is repeatable. Field data comes from real Chrome users over the previous 28 days and is what Google actually judges. Both are useful: the lab test tells you why, the field data tells you whether visitors feel it. A page with too little traffic may have no field data at all.
Fixing a slow LCP
- Find the largest element first. It is often an image: serve it as a correctly sized WebP or AVIF, not a full-size original.
- Do not lazy-load the main image, and give it fetchpriority="high" so the browser fetches it first.
- Make the server and the first byte fast: cache pages at a CDN, avoid long redirect chains.
- Cut what blocks the first paint: large stylesheets and synchronous scripts in the head.
Fixing a poor INP
- Look at long tasks: JavaScript that keeps the page busy for more than about 50 milliseconds blocks taps. Split the work, or move it off the main thread.
- Load third-party scripts (chat, tags, heatmaps) after the page is usable, and remove the ones nobody reads.
- Keep event handlers short. Do the visible change first and the heavy work after.
Fixing layout shift
- Give every image and video a width and height, or a CSS aspect ratio, so the space is reserved before it loads.
- Reserve room for banners, embeds and anything inserted late. Never push content down after the visitor has started reading.
- Avoid animating properties that change layout. Use transform and opacity.
On our own homepage, a scroll-pinned section produced a layout shift above 2 in our lab test, because pinning switches the section to fixed positioning. Replacing the pin with sticky positioning brought it to almost zero. The cause was one line of behaviour, not the design.
Measure yours
Our page speed tool runs Google’s lab test on a phone and adds checks Google’s report does not make: how the files are served, compression, caching and third-party scripts, each with the fix first. For a wider check, ask for the free website review.
Quick answers
What are good Core Web Vitals scores?
LCP 2.5 seconds or less, INP 200 milliseconds or less and CLS 0.1 or less, measured at the 75th percentile of real visits.
What replaced First Input Delay?
Interaction to Next Paint (INP), which measures the delay across all interactions on a visit, not only the first.
Why is my score different in PageSpeed Insights and Search Console?
PageSpeed Insights shows a lab test from one simulated load; Search Console shows field data from real visitors. They answer different questions.