Skip to main content

Introduction to Core Web Vitals

Core Web Vitals (CWV) are Google's user-experience metrics for real-world loading performance, responsiveness, and visual stability. They matter because they map directly to what users feel (fast, stable, responsive) and they influence how Google evaluates page experience in search.

Core Idea

CWV focuses on three specific dimensions of the user experience: loading performance (Largest Contentful Paint), visual stability (Cumulative Layout Shift), and responsiveness to user input (Interaction to Next Paint).

Concept Overview

What Are Core Web Vitals?

Core Web Vitals are Google's official performance metrics that measure how real users experience your site across three dimensions:

  • Loading speed — Largest Contentful Paint (LCP)
  • Visual stability — Cumulative Layout Shift (CLS)
  • Interactivity — Interaction to Next Paint (INP)

They quantify the felt experience of performance — not just server speed — bridging the gap between development, SEO, and business outcomes.

Why They Matter

Google integrates CWV directly into its ranking algorithm. A poor CWV profile signals friction: slow loads (LCP), visual jumps (CLS), or unresponsive clicks (INP). For users, this means frustration. For businesses, it means lost conversions, higher bounce rates, and lower trust.

In modern web development, meeting CWV thresholds is the baseline for competitiveness, not an enhancement.

Where They're Measured

  • In the browser — field data via Chrome UX Report (CrUX) from real users.
  • In lab environments — PageSpeed Insights, Lighthouse, WebPageTest.
  • Google prioritizes mobile-first weighting, reflecting real-world behavior.

The Three Core Metrics

MetricFull NameWhat It MeasuresGoodNeeds WorkPoor
LCPLargest Contentful PaintWhen the main visible content finishes rendering≤ 2.5s2.5–4.0s> 4.0s
CLSCumulative Layout ShiftHow much elements unexpectedly move during load≤ 0.10.1–0.25> 0.25
INPInteraction to Next PaintLatency from user input to visual response≤ 200ms200–500ms> 500ms

Supporting Metrics

MetricPurposeThreshold
TTFB (Time to First Byte)Server responsiveness — foundational for all others≤ 200ms
FCP (First Contentful Paint)First visual signal that the page is loading≤ 1.8s
TBT (Total Blocking Time)Sum of long tasks blocking the main thread≤ 200ms

Step-by-Step Examples

Example 1: Check Your CWV via PageSpeed Insights

check-cwv-api.sh
curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&strategy=mobile" \
| jq '{
lcp: .lighthouseResult.audits["largest-contentful-paint"].numericValue,
cls: .lighthouseResult.audits["cumulative-layout-shift"].numericValue,
tbt: .lighthouseResult.audits["total-blocking-time"].numericValue
}'

Expected Output:

cwv-output.json
{
"lcp": 2120,
"cls": 0.05,
"tbt": 150
}

Interpretation: LCP = 2.12s, CLS = 0.05, TBT = 150ms — all passing.

Example 2: Identify Your LCP Element

  1. Open Chrome DevTools → Performance tab.
  2. Enable the Web Vitals overlay (top-right checkbox).
  3. Reload the page.
  4. The LCP element is highlighted in the timeline — usually a hero image, H1, or background image.

Example 3: Detect Layout Shifts

  1. Open Chrome DevTools → Rendering tab.
  2. Check Layout Shift Regions.
  3. Reload — shifting elements flash purple.
  4. Common culprits: Images without explicit dimensions, late-loading UI elements, and font swaps.

Practical Use Cases

SEO Recovery

A tech blog dropping in rankings discovers an LCP of 4.8s. After compressing the hero image to WebP and adding a preload hint in the <head>, LCP drops to 1.9s. Search engine rankings systematically recover within two crawl cycles.

WooCommerce Conversion Lift

A fashion store battling an INP of 450ms on product pages loses customers during filter interactions. After deferring non-essential JavaScript and enabling object caching, INP drops to 140ms. Add-to-cart conversions demonstrably increase by 18%.

Ad-Revenue Publisher

A news site loses RPM due to a CLS of 0.32 from late-loading ad containers pushing text down. Enforcing explicit CSS dimensions for the ad slots drops the CLS to 0.06, directly recovering lost revenue.

Common Mistakes & Troubleshooting

MistakeExplanationSolution
Optimizing for PageSpeed score instead of metricsA "90" score can still have a failing LCP.Focus purely on the hard LCP, CLS, INP millisecond/score values.
Testing only in a lab environmentLab data doesn't reflect real user networks.Cross-reference with field data in Google Search Console.
Ignoring mobile metrics entirelyGoogle enforces mobile-first indexing.Always benchmark and fix mobile metrics before desktop.
Fixing CLS for desktop but not mobileMobile viewports trigger vastly different shifts.Test CLS separately using mobile emulation.
Treating CWV as a one-time projectPlugin updates introduce silent regressions.Set up continuous monitoring and alerting.

Best Practices

  • Prioritize field data over lab data: Field data (CrUX) is the actual metric Google uses for rankings.
  • Fix metrics in order: Tackle LCP → CLS → INP. Fix loading perception first, stability second, interactivity third.
  • Optimize above-the-fold first: Preload hero images, inline critical CSS, and defer below-the-fold content vigorously.
  • Control third-party scripts: External analytics, chat widgets, and ad scripts are the primary INP killers.
  • Test on 4G-throttled mid-range devices: This accurately simulates the experience of the majority of real-world mobile users.
  • Re-test after every change: Plugin updates, theme redesigns, and server tweaks can easily break CWV.

Hands-On Practice

Perform a Baseline Audit

Task: Run a PageSpeed Insights test (mobile) on your homepage and record the metrics to establish your baseline.

audit-template.txt
Date: ____-__-__
URL: https://_______________
Device: Mobile

LCP: ____s [ Good / Needs Work / Poor ]
CLS: ____ [ Good / Needs Work / Poor ]
INP: ____ms [ Good / Needs Work / Poor ]
TTFB: ____s [ Good / Needs Work / Poor ]
PSI Score: ____

Connection to Other Concepts

Related ConceptDescription
Largest Contentful PaintDeep-dive into the primary perceived-speed metric
Cumulative Layout ShiftDeep-dive into visual stability measurement
Interaction to Next PaintDeep-dive into responsiveness to user actions
TTFB (Time to First Byte)The server response metric that often gates CWV success
Supporting MetricsAdditional signals (FCP, TBT) that help explain failures

Visual Learning Diagram

Quick Reference

Threshold Target Reference
  • LCP: ≤ 2.5s (loading speed)
  • CLS: ≤ 0.1 (visual stability)
  • INP: ≤ 200ms (interactivity)
  • TTFB: ≤ 200ms (server response)
  • FCP: ≤ 1.8s (first paint)

What's Next