Core Web Vitals explained in plain English (LCP, INP and CLS)
What Google’s three page-experience metrics measure, the scores to aim for, and the fixes that make the biggest difference on ordinary websites.
Core Web Vitals are three measurements Google uses to judge how a page feels to real visitors: how fast the main content appears, how quickly the page responds when you tap something, and whether things jump around while it loads.
They’re one of many signals in Google’s ranking systems, so a great score won’t rescue weak content. But slow, jumpy pages lose visitors, and that costs you whether or not rankings change.
The three metrics
Largest Contentful Paint (LCP): loading. How long it takes for the biggest visible thing (usually a hero image or headline) to appear. Good: 2.5 seconds or less.
Interaction to Next Paint (INP): responsiveness. How quickly the page visibly reacts after you click, tap or type. INP replaced the older First Input Delay metric in March 2024. Good: 200 milliseconds or less.
Cumulative Layout Shift (CLS): visual stability. How much content moves unexpectedly while the page loads, like a button that jumps just as you go to tap it. Good: 0.1 or less.
Google assesses each metric at the 75th percentile of real visits, so most of your visitors, not just those on fast connections, need a good experience.
Lab data vs field data
There are two ways to measure these:
- Field data comes from real Chrome users visiting your site over 28 days. It’s what Google uses, and you’ll find it in Search Console’s Core Web Vitals report once your site has enough traffic.
- Lab data comes from a single simulated visit. It’s available instantly for any page, which makes it ideal for testing fixes. INP needs real interactions, so lab tools report Total Blocking Time (TBT) as a stand-in: a high TBT usually means a poor INP.
The fixes that matter most
For LCP:
- Compress and resize your largest image. A 3 MB photo displayed 800px wide is the most common cause of slow LCP.
- Use modern formats like WebP.
- Don’t lazy-load the main image at the top of the page; lazy-load images further down instead.
For INP / TBT:
- Remove scripts you don’t need, especially third-party widgets.
- Load non-essential scripts with
defer.
For CLS:
- Always give images and videos
widthandheightattributes so space is reserved before they load. - Reserve space for ads and embeds.
- Avoid inserting banners above existing content after the page appears.
Measure, fix, measure again
Run any page through the Core Web Vitals Checker to get Google’s lab scores in under 30 seconds. If LCP is the problem, shrink your biggest image with the Image Compressor and test again. Small, measured changes are the fastest route to a green score.