Key takeaways
- LCP under 2.5 seconds, CLS under 0.1, INP under 200 milliseconds, measured at the 75th percentile of real visits.
- Lab tests find causes. Field data from real visitors is what Google uses.
- Most slow LCP comes from a slow server, render blocking resources or a heavy hero image.
- Reserve space for images and embeds and layout shift mostly disappears.
On this page
The three metrics
| Metric | Measures | Good | Poor |
|---|---|---|---|
| Largest Contentful Paint (LCP) | When the largest image or text block in view is painted | 2.5 s or less | over 4 s |
| Cumulative Layout Shift (CLS) | How much visible content moves while the page loads | 0.1 or less | over 0.25 |
| Interaction to Next Paint (INP) | The delay between an interaction and the next frame | 200 ms or less | over 500 ms |
Google assesses each metric at the 75th percentile of real page loads: three out of four visits must be good for the page to pass.
Lab data and field data
Field data comes from real Chrome users and is published in the Chrome UX Report, which Search Console and PageSpeed Insights show. It is what Google uses. It needs traffic, and it lags by 28 days.
Lab data comes from loading the page once in a controlled browser, as the page speed test does. It is repeatable and available for any page, which makes it the tool for finding causes and checking fixes. It cannot measure INP, which needs real interactions, so lab tests report Total Blocking Time as a stand in.
Improving LCP
LCP is the sum of four parts: the server response, the delay before the LCP resource starts loading, its load time and the render delay.
- Fast server response. Aim for a time to first byte under 0.8 seconds. Cache pages at a CDN, cache database queries, avoid redirects.
- Start the hero early. If the LCP element is an image, reference it in the HTML with a plain
<img>andfetchpriority="high", not as a CSS background or a lazily loaded image. - Make it small. Serve the hero in WebP or AVIF at the size it is displayed.
- Unblock rendering. Inline the critical CSS, defer the rest, and load scripts with
deferorasync.
Improving CLS
Layout shift happens when something appears or resizes above content that is already visible.
- Give every image and video
widthandheightattributes, or anaspect-ratio. - Reserve space for ads, embeds and banners before they load.
- Load web fonts with
font-display: swapand a fallback with matching metrics, or preload them. - Never insert content above existing content unless the visitor asked for it.
Improving INP
INP suffers when the main thread is busy when someone clicks or types.
- Ship less JavaScript. Remove unused libraries and third party tags.
- Break long tasks into smaller ones and yield to the browser between them.
- Do less work in event handlers. Show feedback first, then do the heavy part.
- Avoid rendering huge DOM trees at once.
Measure, fix, monitor
- Run the page speed test on your key templates: home, category, article, product.
- Fix the biggest cause first. The test lists page weight, compression, caching, image formats and render blocking resources.
- Re-test to confirm the fix.
- Watch the field data in Search Console over the following month.
- Keep a monitor running, because a new script or a plugin update can undo the work silently.
Check your own site
The Page Speed Test runs the checks from this guide on any public page, free and without an account.
Open the Page Speed TestFrequently asked questions
Are Core Web Vitals a ranking factor?
They are part of Google's page experience signals. They matter most when competing pages are similar in relevance. They always matter to visitors.
Why does my lab score differ from Search Console?
A lab test is one load on one simulated device. Search Console shows the 75th percentile of real visits over 28 days, across real devices and networks. Use the lab to find causes and the field data to judge results.
What replaced First Input Delay?
Interaction to Next Paint, in March 2024. INP measures the delay of all interactions during a visit, not just the first.
Can a CDN fix Core Web Vitals?
A CDN lowers time to first byte and speeds up assets, which helps LCP. It does not fix layout shift or heavy JavaScript.