Performance & UX

Core Web Vitals Explained (LCP vs. INP vs. CLS and What to Fix First)

A green Lighthouse score can sit next to a failed mobile Core Web Vitals assessment. Compare LCP, INP, and CLS and find the first fix worth testing.

Written bySavageAudit TeamProduct & Research
XinShare on LinkedIn
A mobile page with shifted content beside a speed gauge pointing into the green zone
Short answer

LCP measures loading, INP measures responsiveness, and CLS measures visual stability. Start with the failing mobile field metric on an important page, then reproduce the issue in DevTools before choosing a fix.

SQLite’s homepage scored 95 in a mobile Lighthouse run. In the same PageSpeed Insights report, its real-user loading metric missed the Core Web Vitals threshold. Before changing the hero image or removing scripts, check which number describes the problem your visitors are having.

Start with the mobile field result for the page you care about. LCP tells you how soon the main content appears. INP tells you how quickly the page responds to interactions. CLS tells you how much the layout moves unexpectedly. Each sends you to a different part of the page.

LCP vs. INP vs. CLS at a glance

MetricWhat the visitor experiencesGood field valueFirst check
LCP (Largest Contentful Paint)The main image or text takes too long to appear2.5 seconds or lessFind the LCP element and check when its resource starts loading
INP (Interaction to Next Paint)A tap, click, or key press takes too long to get visible feedback200 milliseconds or lessRecord the slow action in Chrome DevTools
CLS (Cumulative Layout Shift)Content moves unexpectedly while the visitor reads or uses the page0.1 or lessFind the shift in a trace and check what pushed the content

Google checks the 75th percentile for each metric and reports mobile and desktop separately. PageSpeed Insights uses a rolling 28-day window for field data from the Chrome UX Report, or CrUX. In a report with sufficient data for all three metrics, each one needs to meet its good threshold for the assessment to pass. Google can assess LCP and CLS when INP has insufficient data. Google’s Web Vitals guide · How PageSpeed Insights uses CrUX

Why a green Lighthouse score can still come with a failed assessment

PageSpeed Insights puts two measurements on one screen. The field section summarizes visits from eligible Chrome users, with their actual devices, networks, and interactions. The Lighthouse section shows a simulated page load under a defined test setup. You can rerun the lab test after a change and inspect its trace to see what happened. Google’s PageSpeed Insights documentation

SQLite scored 95 and missed the mobile LCP threshold

On November 13, 2026 at 04:51 UTC, we ran the SQLite homepage through the PageSpeed Insights API with the mobile strategy. Lighthouse 13.6.0 reported a performance score of 95. The same response contained Chrome UX Report data for the exact homepage URL. These are the results from that run. Rerun the SQLite homepage in PageSpeed Insights

Part of the reportResultWhat to take from it
Lighthouse Performance95 out of 100The simulated mobile load earned a green overall score
Lighthouse LCP1.20 secondsThe main content appeared within the good LCP threshold in that run
Mobile field LCP2.59 secondsThe 75th percentile missed the 2.5-second good threshold
Mobile field INP68 millisecondsResponsiveness met the good threshold
Mobile field CLS0.00Visual stability met the good threshold

LCP was the metric that kept the homepage from passing. The same report showed an origin-level LCP of 2.03 seconds. If you switch to the Origin tab, you’re looking at visits across the site, and you can miss the homepage issue.

The first thing I’d check is the initial document request. The field report put the homepage’s time to first byte at 1.90 seconds at the 75th percentile, and the lab report identified a paragraph as the LCP element. Record a mobile load in DevTools and inspect the document timing and the LCP event. If the response is consistently slow, check redirects and cache behavior. If the response arrives quickly and the text still appears late, look for render-blocking resources. Field TTFB and field LCP are separate percentile measurements. Use the trace to find the delay in a single visit. Google’s LCP optimization guide

Which Core Web Vital should you fix first?

Start with a page people use to do something important. That could be a pricing page, a checkout, or a landing page that brings in most of your signups. In PageSpeed Insights, select Mobile and check whether the field data is for This URL or Origin. If you see origin data, use it to pick pages to investigate and check the affected URL groups in Search Console. Search Console’s Core Web Vitals report

If LCP is high, check when the main content appears

Record a load and find the LCP element. If it’s an image and the request starts late, check whether the browser can find it in the initial HTML and whether it’s being lazy-loaded. If the document itself takes a long time to arrive, investigate the response first. The same LCP value can come from either problem. Our walkthrough for diagnosing slow LCP

If INP is high, repeat the action a visitor takes

Try opening the menu, switching a pricing tab, or typing into a form. Record the action in the Performance panel. Check whether the browser was busy before it could handle the input, whether the handler did too much work, or whether rendering delayed the next frame. A standard Lighthouse navigation run gives you Total Blocking Time as a lab clue. To diagnose the slow tap, record the tap. Google’s INP optimization guide

If CLS is high, watch what moves during the visit

Record the page as you load it and scroll through it. Check the layout shifts in DevTools. If a banner or embed appears above content and pushes it down, reserve the space before it loads. For images and video, check whether their size or aspect ratio is set early enough for the browser to lay out the page. Google’s CLS optimization guide

If two metrics miss their thresholds, fix the issue that repeatedly gets in the way of the page’s main action. A pricing toggle that responds late and a small layout shift near the footer both deserve a look. I’d start with the toggle if it keeps buyers from comparing plans.

How to check whether the fix worked

  1. Save the affected URL, device type, field metric, and the trace showing the problem.
  2. Change one thing, then repeat the same lab test or interaction under the same conditions. Compare the metric and the trace so you can see what changed.
  3. Watch the same URL or URL group in field data as post-release visits enter the 28-day window. The field report will still contain some visits from before the fix.

If you’re comparing two versions of a page, keep the viewport, test setup, and interaction the same. Our website performance comparison guide

FAQ

Common questions

Why do Core Web Vitals fail when my PageSpeed score is green?

The Lighthouse Performance score comes from a simulated load. The Core Web Vitals assessment uses real-user field data where it’s available. Check the mobile field panel for the metric that misses its threshold and confirm whether the report describes your exact URL or the whole origin.

Which Core Web Vital should I fix first?

Start with a metric that misses its good threshold on a page that matters to your business. Reproduce the issue so you can choose a fix tied to what users see. Check load timing for LCP, record the slow interaction for INP, or identify what moved for CLS.

What does no Core Web Vitals data mean?

CrUX may have insufficient eligible visits for a page or origin to show field results. You can still use a lab trace to diagnose a problem and, if you own the page, collect your own real-user measurements. Treat the field status as unknown until you have enough data.

SavageAudit

Run your own public presence audit

See how your website, search footprint, AI visibility, social proof, and conversion trust look from the outside.

Roast My SiteView pricingCompare sites