Core web vitals guide
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:
| Metric | Full Name | Measures | Good | Poor |
|---|---|---|---|---|
| LCP | Largest Contentful Paint | Loading speed | ≤2.5s | >4.0s |
| CLS | Cumulative Layout Shift | Visual stability | ≤0.1 | >0.25 |
| INP | Interaction to Next Paint | Responsiveness | ≤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 Time | Rating | What It Means |
|---|---|---|
| ≤2.5s | Good | Users perceive the page as fast |
| 2.5-4.0s | Needs Improvement | Noticeable delay causes users to bounce |
| >4.0s | Poor | Significant user frustration, high abandonment |
What elements can be LCP
The LCP element is the largest image or text block visible in the viewport:
- Images (including CSS background images): 76% of mobile pages use an image as their LCP element
- Video poster images (the thumbnail before playback)
- Block-level text elements (headings, paragraphs)
Common LCP issues
| Issue | Impact | Prevalence |
|---|---|---|
| Slow server response (TTFB) | High | Delays every resource discovered from the HTML |
| Render-blocking resources | High | CSS and JS that delay first paint |
| Large unoptimized images | High | Uncompressed or oversized images |
| Client-side rendering delays | Medium | JavaScript-heavy frameworks |
| LCP image not prioritized | Medium | Missing fetchpriority or preload |
LCP business impact
- Vodafone improved LCP by 31% and saw 8% more sales
- NDTV halved their LCP and achieved 50% lower bounce rates
- Tokopedia reduced LCP by 55% and increased organic traffic by 23%
→ 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 Score | Rating | What It Means |
|---|---|---|
| ≤0.1 | Good | Stable layout, minimal shifts |
| 0.1-0.25 | Needs Improvement | Noticeable movement frustrates users |
| >0.25 | Poor | Significant 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
| Cause | Impact | Prevalence |
|---|---|---|
| Images without dimensions | High | 62% of mobile pages have at least one unsized image |
| Ads and embeds | High | Third-party content without reserved space |
| Dynamically injected content | Medium | Banners, notifications, modals |
| Web fonts causing FOIT/FOUT | Medium | Font swapping changes text size |
| CSS animations | Low | Animations that trigger layout |
CLS business impact
- Redbus reduced CLS from 1.65 to 0 and saw 80-100% higher mobile conversion
- Yahoo! Japan fixed CLS and achieved 15% more page views per session
- AliExpress improved CLS and reduced bounce rate by 15%
→ 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 Time | Rating | What It Means |
|---|---|---|
| ≤200ms | Good | Interactions feel instant |
| 200-500ms | Needs Improvement | Noticeable lag on interactions |
| >500ms | Poor | Sluggish, frustrating experience |
How browsers calculate INP
INP measures the full interaction lifecycle:
- Input delay: Time from user action to event handler start
- Processing time: Time to execute event handlers
- 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
| Issue | Impact | Lab Proxy |
|---|---|---|
| Long-running JavaScript | High | Total Blocking Time (TBT) |
| Heavy event handlers | High | Main thread work |
| Large DOM size | Medium | DOM nodes >1,400 |
| Third-party scripts | Medium | Blocking main thread |
| Hydration delays | Medium | Framework-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
- Trendyol reduced INP by 50% and saw 1% increase in click-through rate
- The Economic Times cut INP by 30% and achieved 50% lower bounce rate
- redBus improved INP by 75% alongside 7% increase in conversions
→ 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 Time | Rating |
|---|---|
| ≤1.8s | Good |
| 1.8-3.0s | Needs Improvement |
| >3.0s | Poor |
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 Index | Rating |
|---|---|
| ≤3.4s | Good |
| 3.4-5.8s | Needs Improvement |
| >5.8s | Poor |
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.
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| TTFB | ≤800ms | 800ms-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.
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.
| TBT | Rating |
|---|---|
| ≤200ms | Good |
| 200-600ms | Needs Improvement |
| >600ms | Poor |
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.
Lighthouse performance score weights
The overall Lighthouse Performance score is a weighted average of five metrics:
| Metric | Weight | Primary Improvement |
|---|---|---|
| TBT | 30% | Reduce JavaScript, break up long tasks |
| LCP | 25% | Optimize images, improve TTFB |
| CLS | 25% | Set dimensions, reserve space |
| FCP | 10% | Remove render-blocking resources |
| SI | 10% | Progressive loading, critical CSS |
LCP, CLS, and TBT account for 80% of your score. Focus there first.
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.comField data (real user monitoring)
Field data from actual visitors is the source Google uses to assess Core Web Vitals:
- PageSpeed Insights - Shows CrUX data for your URL and origin (how it differs from Lighthouse)
- Search Console - Core Web Vitals report with URL-level groupings
- Chrome UX Report (CrUX): 28-day rolling window of real user data
CrUX uses a rolling 28-day window, so a deployed fix appears gradually as older visits leave the window.
Lab vs field differences
| Aspect | Lab Data | Field Data |
|---|---|---|
| Device | Simulated throttling | Real user devices |
| Network | Fixed conditions | Variable connections |
| Interactions | Scripted or none | Real user behavior |
| Use for | Debugging, CI/CD | SEO 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:
| Metric | Mobile Pass Rate | Desktop Pass Rate |
|---|---|---|
| LCP | 62% | 74% |
| CLS | 81% | 72% |
| INP | 77% | 97% |
| All Three | 48% | 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.comNext steps
- Audit: Run Unlighthouse to find issues across all pages
- Prioritize: Fix the highest-impact issues first (TBT, LCP, CLS account for 80% of score)
- Automate: Set up Lighthouse CI to catch regressions before they reach production
- Monitor: Set up continuous monitoring to track real user metrics Monitor*: Set up continuous monitoring to track real user metrics l user metrics