Skip to main content

Core Web Vitals Guide

Understand Google's Core Web Vitals — LCP, INP, and CLS — with plain-English explanations and an interactive score simulator. Enter your measured values to get instant Pass/Fail ratings with targeted optimization tips.

✓ 2024 INP thresholds ✓ Good / Needs Improvement / Poor ✓ Optimization tips per metric ✓ Runs 100% in your browser
⚡
LCP
Largest Contentful Paint

Measures how quickly the largest visible content element (hero image, heading, or text block) renders. Tracks loading performance.

✓ Good ≤ 2.5s
⚠ Needs Improvement 2.5s – 4.0s
✗ Poor > 4.0s
Key fixes: CDN, preload hero image, reduce TTFB, WebP/AVIF images
🖱️
INP
Interaction to Next Paint

Measures the full latency of all click, tap, and keyboard interactions. Replaced FID in March 2024. Tracks responsiveness.

✓ Good ≤ 200ms
⚠ Needs Improvement 200ms – 500ms
✗ Poor > 500ms
Key fixes: Break long tasks, defer non-critical JS, use scheduler.yield()
📐
CLS
Cumulative Layout Shift

Measures unexpected visual layout shifts during the page lifecycle. A score of 0 means no shifting. Tracks visual stability.

✓ Good ≤ 0.1
⚠ Needs Improvement 0.1 – 0.25
✗ Poor > 0.25
Key fixes: Set image dimensions, reserve ad space, avoid above-fold injection

Score Simulator

Enter your measured values from PageSpeed Insights or Chrome DevTools to check your Core Web Vitals status.

Good ≤ 2.5s · Poor > 4.0s
Good ≤ 200ms · Poor > 500ms
Good ≤ 0.1 · Poor > 0.25

How to Measure Your Core Web Vitals

Lab Tools (Simulated)

🔍
Chrome DevTools — Lighthouse
Open DevTools → Lighthouse tab → Analyze page load. Good for fast iteration during development.
📊
PageSpeed Insights
web.dev/measure — shows both lab data (Lighthouse) and field data (CrUX) in one view.
🌐
WebPageTest
Run from real browsers worldwide. Great for testing CDN impact and waterfall analysis.

Field Data (Real Users)

🔎
Google Search Console
Core Web Vitals report shows real-user data by URL group. This is what affects your rankings.
📈
Chrome UX Report (CrUX)
BigQuery dataset of real Chrome user data. Queryable via Google Data Studio or API.
📦
web-vitals.js library
Install the npm package to collect real-user metrics and send them to your analytics. npm install web-vitals

Frequently Asked Questions

What are Core Web Vitals?▼

Core Web Vitals are three user-centric performance metrics defined by Google: LCP (Largest Contentful Paint) measures loading speed, INP (Interaction to Next Paint) measures responsiveness, and CLS (Cumulative Layout Shift) measures visual stability. Google uses these as ranking signals in search results since 2021.

What replaced FID in Core Web Vitals?▼

INP (Interaction to Next Paint) replaced FID (First Input Delay) as an official Core Web Vital in March 2024. FID only measured the delay before the browser could start processing an interaction; INP measures the full input latency including processing and rendering, giving a more accurate picture of page responsiveness.

What are the Good thresholds for Core Web Vitals?▼

Good thresholds: LCP ≤ 2.5 seconds (loading), INP ≤ 200 milliseconds (responsiveness), CLS ≤ 0.1 (visual stability). Values in the 'Needs Improvement' range are between Good and Poor thresholds. Poor thresholds: LCP > 4.0s, INP > 500ms, CLS > 0.25.

How do I measure my site's Core Web Vitals?▼

Field data (real users): Google Search Console, Chrome User Experience Report (CrUX), and the web-vitals.js library. Lab data (simulated): Chrome DevTools Lighthouse, PageSpeed Insights, and WebPageTest. Field data is what Google uses for ranking — lab data is a proxy for debugging.

What is TTFB and how does it affect LCP?▼

TTFB (Time to First Byte) is the time from the request to the first byte of the response. A TTFB over 800ms delays LCP because the browser can't start loading resources until the HTML arrives. Improve TTFB with a CDN, server-side caching, and reducing backend query time.

Why does CLS happen and how do I fix it?▼

CLS is caused by images/embeds without explicit size attributes, dynamically injected content above existing content (ads, banners, cookie notices), and web fonts causing text reflow (FOIT/FOUT). Fix: always set width and height on images, use aspect-ratio CSS, load fonts with font-display: optional, and avoid inserting above-fold content after load.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →