Skip to main content

Core web vitals guide

Master Core Web Vitals - Google's page experience metrics. Learn LCP, CLS, INP thresholds, how to measure them, and fixes that improve rankings and conversions.
Harlan WiltonHarlan Wilton14 min read Published Updated

Core Web Vitals are Google's metrics for loading performance, visual stability, and interaction responsiveness. Google uses them within its broader page experience systems, while relevance and content quality remain the stronger search signals.

In the 2025 Web Almanac, 48% of mobile sites and 56% of desktop sites passed all three metrics.

What are core web vitals

Core Web Vitals are three specific metrics that measure loading performance, visual stability, and interactivity:

MetricFull NameMeasuresGoodPoor
LCPLargest Contentful PaintLoading speed≤2.5s>4.0s
CLSCumulative Layout ShiftVisual stability≤0.1>0.25
INPInteraction to Next PaintResponsiveness≤200ms>500ms

Google measures these thresholds at the 75th percentile of page loads. 75% of visitors must experience "good" scores for your site to pass.

INP replaced FID as a Core Web Vital on March 12, 2024. If you're still optimizing for First Input Delay, you're targeting an outdated metric.


Largest contentful paint (LCP)

LCP measures how long it takes for the largest visible content element to render. It remains the hardest Core Web Vital to pass: 62% of mobile pages achieved good LCP in 2025.

What is a good LCP score

LCP TimeRatingWhat It Means
≤2.5sGoodUsers perceive the page as fast
2.5-4.0sNeeds ImprovementNoticeable delay causes users to bounce
>4.0sPoorSignificant user frustration, high abandonment

What elements can be LCP

The LCP element is the largest image or text block visible in the viewport:

Common LCP issues

IssueImpactPrevalence
Slow server response (TTFB)HighDelays every resource discovered from the HTML
Render-blocking resourcesHighCSS and JS that delay first paint
Large unoptimized imagesHighUncompressed or oversized images
Client-side rendering delaysMediumJavaScript-heavy frameworks
LCP image not prioritizedMediumMissing fetchpriority or preload

LCP business impact

Complete LCP guide | All LCP fixes


Cumulative layout shift (CLS)

CLS measures unexpected layout shifts during the page lifecycle. It is the most widely passed Core Web Vital: 81% of mobile pages achieved good CLS in 2025.

What is a good CLS score

CLS ScoreRatingWhat It Means
≤0.1GoodStable layout, minimal shifts
0.1-0.25Needs ImprovementNoticeable movement frustrates users
>0.25PoorSignificant layout instability

Lighthouse calculates CLS as: Impact Fraction × Distance Fraction. A shift affecting 50% of the viewport that moves 25% of the viewport height = 0.5 × 0.25 = 0.125 CLS.

What causes layout shifts

CauseImpactPrevalence
Images without dimensionsHigh62% of mobile pages have at least one unsized image
Ads and embedsHighThird-party content without reserved space
Dynamically injected contentMediumBanners, notifications, modals
Web fonts causing FOIT/FOUTMediumFont swapping changes text size
CSS animationsLowAnimations that trigger layout

CLS business impact

Complete CLS guide | All CLS fixes


Interaction to next paint (INP)

INP measures how quickly your page responds to user interactions. Unlike FID (which only measured the first interaction), INP tracks all interactions because 90% of user time on a page is spent after initial load.

What is a good INP score

INP TimeRatingWhat It Means
≤200msGoodInteractions feel instant
200-500msNeeds ImprovementNoticeable lag on interactions
>500msPoorSluggish, frustrating experience

How browsers calculate INP

INP measures the full interaction lifecycle:

  1. Input delay: Time from user action to event handler start
  2. Processing time: Time to execute event handlers
  3. Presentation delay: Time to render the visual update

The reported INP is usually the longest interaction. For pages with many interactions, the algorithm ignores one worst interaction per 50 interactions to reduce the effect of rare outliers. Lighthouse cannot measure INP from a normal synthetic page load; use CrUX or real-user monitoring.

Common INP issues

IssueImpactLab Proxy
Long-running JavaScriptHighTotal Blocking Time (TBT)
Heavy event handlersHighMain thread work
Large DOM sizeMediumDOM nodes >1,400
Third-party scriptsMediumBlocking main thread
Hydration delaysMediumFramework-specific

The INP gap

The 2025 Web Almanac found good INP on 97% of desktop pages and 77% of mobile pages. Mobile devices still face much more main-thread pressure.

INP business impact

Complete INP guide | All INP fixes


Other web vitals

Beyond the three Core Web Vitals, several other metrics affect your Lighthouse Performance score and user experience.

First contentful paint (FCP)

FCP measures when the first text or image is painted. It's the earliest signal that the page is loading.

FCP TimeRating
≤1.8sGood
1.8-3.0sNeeds Improvement
>3.0sPoor

Weight in Lighthouse: 10% of Performance score

FCP issues share root causes with LCP - fix render-blocking resources and server response time to improve both.

Speed index (SI)

Speed Index measures how quickly content is visually populated during page load. It captures the perceived loading experience.

Speed IndexRating
≤3.4sGood
3.4-5.8sNeeds Improvement
>5.8sPoor

Weight in Lighthouse: 10% of Performance score

Speed Index improves when above-the-fold content loads progressively rather than all at once.

Time to first byte (TTFB)

TTFB measures the time from the navigation request until the first response byte arrives. It is not a Core Web Vital, but it precedes every other loading milestone and forms the first sub-part of LCP.

MetricGoodNeeds ImprovementPoor
TTFB≤800ms800ms-1800ms>1800ms

The 2025 Web Almanac found good TTFB on 44% of mobile pages. If TTFB consumes much of the 2.5-second LCP budget, fix caching, redirects, server work, or network distance before tuning the LCP image.

Fix slow server response

Total blocking time (TBT)

TBT measures the total time the main thread was blocked by long tasks (>50ms) between FCP and Time to Interactive. It's a lab proxy for INP.

TBTRating
≤200msGood
200-600msNeeds Improvement
>600msPoor

Weight in Lighthouse: 30% of Performance score - the highest-weighted metric

TBT correlates well with INP, making it the best lab metric for predicting real-world interactivity.

Fix total blocking time

Lighthouse performance score weights

The overall Lighthouse Performance score is a weighted average of five metrics:

MetricWeightPrimary Improvement
TBT30%Reduce JavaScript, break up long tasks
LCP25%Optimize images, improve TTFB
CLS25%Set dimensions, reserve space
FCP10%Remove render-blocking resources
SI10%Progressive loading, critical CSS

LCP, CLS, and TBT account for 80% of your score. Focus there first.

Try the score calculator


How to measure core web vitals

Lab data (synthetic testing)

Lab tools test in controlled environments - useful for debugging but not used by Google for ranking.

Tools:

  • Core Web Vitals Checker - Test any page with lab and field data
  • LCP Finder - Identify your LCP element and optimization opportunities
  • CLS Debugger - Find and fix layout shift sources
  • INP Analyzer - Diagnose interaction responsiveness issues
  • Chrome DevTools: Performance panel shows LCP, CLS, and long tasks
  • Lighthouse: Full performance audit with actionable recommendations
  • WebPageTest: Filmstrip view and waterfall analysis

For CI/CD integration, Lighthouse CI runs audits on every commit and fails builds when metrics regress.

npx unlighthouse --site https://your-site.com

Field data (real user monitoring)

Field data from actual visitors is the source Google uses to assess Core Web Vitals:

CrUX uses a rolling 28-day window, so a deployed fix appears gradually as older visits leave the window.

Lab vs field differences

AspectLab DataField Data
DeviceSimulated throttlingReal user devices
NetworkFixed conditionsVariable connections
InteractionsScripted or noneReal user behavior
Use forDebugging, CI/CDSEO ranking, real UX

Your lab scores often differ significantly from field data. A page can score 95 in Lighthouse but fail Core Web Vitals in the field if real users have slower devices or networks.


Why core web vitals matter for SEO

Google says good Core Web Vitals contribute to page experience, but a perfect report does not guarantee top rankings. Improve failing metrics for users first. Do not remove useful content or functionality merely to chase a score.

User experience & conversions

The Google research on the business impact of Core Web Vitals found a 0.1 second improvement in site speed can:

  • Increase retail conversions by 8.4%
  • Boost average order value by 9.2%
  • Increase travel conversions by 10.1%

Google research shows bounce rate increases 32% when load time goes from 1 to 3 seconds, and 90% at 5 seconds.


Current state of the web (2025)

According to the 2025 HTTP Archive Web Almanac:

MetricMobile Pass RateDesktop Pass Rate
LCP62%74%
CLS81%72%
INP77%97%
All Three48%56%

Mobile pass rates rose from 36% in 2023 to 48% in 2025. More than half of mobile sites still miss at least one Core Web Vital.


Test your entire site

Most tools only test one page. Your homepage might score 100, but what about:

  • Product pages with heavy images?
  • Blog posts with embedded videos?
  • Dynamic pages with JavaScript widgets?

The 2025 Web Almanac found different results for home pages and secondary pages. Test every important template, not only the home page.

npx unlighthouse --site https://your-site.com

Next steps

  1. Audit: Run Unlighthouse to find issues across all pages
  2. Prioritize: Fix the highest-impact issues first (TBT, LCP, CLS account for 80% of score)
  3. Automate: Set up Lighthouse CI to catch regressions before they reach production
  4. Monitor: Set up continuous monitoring to track real user metrics Monitor*: Set up continuous monitoring to track real user metrics l user metrics