Core Web Vitals Fixes: Pass LCP, INP and CLS for Real Users
Core Web Vitals are three measurements Google uses to describe how a page feels to real visitors: how quickly the main content appears (LCP), how quickly the page reacts when someone taps or types (INP), and how much the layout jumps about (CLS).
Our Core Web Vitals checker pulls real-user field data from the Chrome UX Report alongside a Lighthouse lab test, and points to the code and assets behind each failure. This page explains the three metrics, why your two sets of numbers often disagree, and which guide fixes each finding.
The three metrics and their thresholds
Each Core Web Vital answers one question a visitor would ask. Largest Contentful Paint asks "when can I see the thing I came for?" It records the moment the biggest image, video poster or block of text in the viewport finishes rendering. Interaction to Next Paint asks "does the page respond when I use it?" It watches clicks, taps and key presses across the whole visit and reports one of the slowest delays between the input and the next frame the browser draws. Cumulative Layout Shift asks "does the page stay still?" It scores unexpected movement of content that was already on screen.
| Metric | What it describes | Good | Needs improvement | Poor |
|---|---|---|---|---|
| LCP | Loading of the main content | 2.5 s or less | 2.5 s to 4 s | Over 4 s |
| INP | Responsiveness to input | 200 ms or less | 200 ms to 500 ms | Over 500 ms |
| CLS | Visual stability | 0.1 or less | 0.1 to 0.25 | Over 0.25 |
A page passes only when all three are in the good band at the 75th percentile of visits. In plain terms, at least three out of every four page loads must meet each threshold. Mobile and desktop are assessed separately, so a page can pass on one and fail on the other.
INP became a Core Web Vital in March 2024, replacing First Input Delay. FID only measured the wait before the browser started handling the very first interaction, which most pages passed easily. INP covers every interaction and includes the time spent running your event handlers and painting the result, so sites that looked fine under FID sometimes fail now.
Field data and lab data: why the numbers disagree
The checker shows two kinds of result, and understanding the difference saves a lot of wasted effort.
Field data comes from the Chrome UX Report, known as CrUX. Chrome collects anonymous timings from real users who have opted in, and Google publishes them per URL and per origin once there is enough traffic. The figures are a rolling 28-day window, reported at the 75th percentile. This is the data Google uses when it assesses your pages, and it is what the Core Web Vitals report in Search Console is built on.
Lab data comes from a single Lighthouse run on a simulated device and connection. It is repeatable and gives detailed diagnostics, which makes it ideal for testing a change before and after. But it is one visit, with an empty cache, no logged-in state, no cookie banner choice and no real interactions. Lighthouse cannot measure INP at all because nobody clicks anything during the test; it reports Total Blocking Time as a stand-in.
Common reasons the two disagree
- Timing. You fixed something last week, the lab test passes, but CrUX still shows three weeks of the old behaviour.
- Devices. Your visitors may use older phones than the device Lighthouse simulates, or much faster ones.
- Journeys. Real people scroll, open menus, accept cookies and add to basket. Layout shifts and slow interactions that happen after load never appear in a load-only lab test.
- Traffic mix. Low-traffic URLs may have no field data of their own, so Search Console groups them with similar pages or falls back to origin-level data.
When the numbers conflict, trust the field data for deciding whether you have a problem, and use lab data for working out why. Adding your own real-user monitoring, for example with Google's open-source web-vitals JavaScript library sending results to your analytics, closes the gap and shows results within days instead of weeks.
The fix guides
Each guide takes one finding from the checker and walks through the causes, how to confirm which applies to you, and the fix, with code where it helps.
The three Core Web Vitals
Fixing slow Largest Contentful Paint covers
finding your LCP element, why it should never be lazy-loaded, preloading it, using fetchpriority="high",
and removing the render-blocking CSS and slow server responses that hold it back. Fixing
poor Interaction to Next Paint covers event handlers that monopolise the main thread, breaking long
tasks into smaller pieces, deferring non-urgent work until after the next paint, moving heavy computation
into a Web Worker and virtualising very long lists. Fixing
layout shift covers images and embeds without reserved space, web fonts that swap late, ads and banners
that push content down, and components that render after the rest of the page.
Supporting measurements
Fixing slow Time to First Byte deals with
the server end: hosting location, caching whole pages at the edge, slow database queries and serving
pre-rendered HTML. Fixing slow First Contentful Paint
covers the first thing a visitor sees, which depends on a fast response and a short list of blocking
files in the <head>. Fixing high
Total Blocking Time covers the long JavaScript tasks during load that make a page unresponsive, including
third-party tags and tracking that could wait for consent.
Devices and data sources
Fixing mobile-only failures explains why a page that feels fast on your laptop can fail for phone users on mid-range hardware and patchy connections, and how to test under realistic conditions. Fixing a CrUX vs lab mismatch explains how to read the 28-day window, when to expect Search Console to update, and how to set up real-user monitoring.
By platform
The platform guides apply the same principles where you have less control over the code. WordPress covers hosting, caching and optimisation plugins, page-builder weight and lighter themes. Shopify covers theme weight and the scripts that installed apps inject into every page. Next.js and Nuxt covers choosing static, server or incremental rendering per route, the image and font components, and hydration cost.
Which metric to fix first
Start with whichever metric is failing in the field for the pages that matter most to your business, usually the home page, key category or service pages and your best-performing landing pages. If more than one metric fails, this order tends to give the most benefit for the least effort:
- CLS, if it is poor. Layout shift fixes are often small changes to templates: dimensions on images, reserved space for an ad slot or banner, a better font-loading setting. They are quick to ship and the improvement shows in field data as soon as the old visits age out.
- LCP. This is the metric most sites fail. Check TTFB first, because no front-end work can rescue a page whose HTML takes two seconds to arrive. Then look at how the LCP element is discovered and prioritised.
- INP. Responsiveness problems usually trace back to JavaScript: too much of it, handlers that do too much work, or third-party scripts competing for the main thread. The fixes are real engineering work, so measure carefully before you start and target the interactions people actually use.
Within each metric, fix the template rather than the page. If every product page shares one layout, one change to that layout fixes all of them, and Search Console groups similar URLs together for exactly this reason.
If your site has very little traffic and no field data, you cannot pass or fail in Google's eyes. Use lab results to build good habits, but put more of your effort into content and crawlability until traffic grows.
Order of work
- Run the checker. Test your key pages with the Core Web Vitals checker and note, for each, the field result on mobile and desktop and the lab diagnostics.
- Confirm in Search Console. Open the Core Web Vitals report and see which URL groups are poor or need improvement. This tells you how widespread each problem is.
- Pick one metric and one template. Changing several things at once makes it impossible to tell what worked.
- Diagnose with lab tools. Use the checker's diagnostics, Lighthouse and the Performance panel in Chrome DevTools to find the element, script or request responsible. Test with CPU and network throttling switched on.
- Fix and verify in the lab. Re-run the lab test and confirm the diagnostic has cleared.
- Deploy and watch the field data. With your own real-user monitoring you will see a change within days. CrUX and Search Console take up to 28 days to fully reflect it. In Search Console you can start validation on the issue once the fix is live.
- Move to the next metric or template. Keep a short log of what you changed and when, so that a later regression is easy to trace.
For background on how each metric is measured, see the Core Web Vitals Guide or the example report. If your problems are mainly about heavy files and slow servers, the page speed fixes go deeper into assets, and the CLS Debugger fixes focus on tracking down individual shifting elements.
What Core Web Vitals do and do not do for rankings
Google uses Core Web Vitals as part of its page experience signals, and its guidance is consistent: good scores are rewarded, but they are not a substitute for relevant, helpful content. A page that answers the query well will usually outrank a faster page that does not. Where several results are similarly useful, page experience can make a difference.
That makes Core Web Vitals worth fixing for two reasons. The first is search: failing pages give up a possible tie-breaker, and very slow or unstable pages are also more likely to lose visitors who click through. The second, often bigger, reason is people. A button that moves just as someone taps it, a menu that takes half a second to open or a hero image that appears after the visitor has given up all cost enquiries and sales whether or not search is involved.
There are also things Core Web Vitals do not cover. They say nothing about whether a page can be crawled, whether its content matches search intent, whether its structured data is valid or whether it is accessible to disabled visitors. Passing all three metrics is one box ticked, not a clean bill of health.
1. What are the three Core Web Vitals?
They are Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift. LCP measures how long the main piece of content takes to appear, with 2.5 seconds or less counting as good. INP measures how quickly the page responds to taps, clicks and key presses, with 200 milliseconds or less counting as good. CLS measures how much visible content moves unexpectedly, with a score of 0.1 or less counting as good. Each is judged at the 75th percentile of real visits.
2. What happened to First Input Delay?
First Input Delay was replaced by Interaction to Next Paint as a Core Web Vital in March 2024. FID only measured the wait before the browser began handling the very first interaction on a page, so it missed slow event handlers and slow interactions later in the visit. INP looks at all interactions and includes processing and rendering time. Tools and reports that still mention FID are out of date, and a good FID result tells you little about INP.
3. Why does PageSpeed Insights show different numbers from Search Console?
They can be showing different things. PageSpeed Insights displays field data for the exact URL when it has enough traffic, otherwise for the whole origin, plus a separate Lighthouse lab test. Search Console groups similar URLs together and reports the group's field results. Both use a rolling 28-day window, so a recent change appears gradually. Compare field data with field data and lab with lab, and check whether you are looking at a URL, a group or the origin.
4. How long after a fix will my Core Web Vitals improve?
Lab tests show the effect immediately. Field data in the Chrome UX Report is a rolling 28-day window, so the improvement builds up as old visits drop out, and it can take close to four weeks before the figures fully reflect the change. Search Console validation follows a similar timescale. If you need faster feedback, add real-user monitoring with the web-vitals library so you can see results from your own visitors within a few days.
5. My site has no Core Web Vitals data. What does that mean?
It means Chrome has not collected enough visits from opted-in users to publish figures for that page or site. Small or new sites often have no field data at URL level and sometimes none at origin level either. It is not a penalty and it does not mean the site is failing. Use lab tests to catch obvious problems, consider real-user monitoring for your own insight, and expect field data to appear as traffic grows.
6. Do Core Web Vitals matter for mobile and desktop separately?
Yes. Google assesses mobile and desktop visits separately, and Search Console shows separate reports for each. Mobile results are usually worse because phones have slower processors and less reliable connections, and heavy JavaScript hurts them most. Since most sites now get more mobile visits than desktop ones, start with the mobile report. A page can pass comfortably on desktop while failing on mobile, so never assume one result covers both.
7. Is a good Lighthouse score enough to pass Core Web Vitals?
No. Lighthouse runs one simulated visit on a set device and connection, with no real interactions, so it cannot measure INP and it misses layout shifts that happen after load. The pass or fail that Google uses comes from real Chrome users over 28 days. A high Lighthouse score is a good sign and a useful test while you work, but always confirm with field data before assuming the problem is solved.
8. Will fixing Core Web Vitals improve my rankings?
It can help, but usually not dramatically on its own. Google treats page experience as one signal among many and has said that relevant, helpful content matters more. Where competing pages are similar in quality, better experience can help. The more reliable benefit is to visitors: faster, steadier, more responsive pages tend to keep people on the site and lose fewer enquiries and sales, whatever the effect on search positions.
The Core Web Vitals checker shows real-user field data and a Lighthouse lab test side by side for your URL, breaks down each metric and points to the assets and code behind every failure, so you know which guide to open.
Run the Core Web Vitals Checker โ