Frontend Performance/Core Web Vitals
Lesson 3 of 20 · Episode 3

Introduction to Web Vitals

The metrics Google uses to score real-world experience — and why the 75th percentile is what counts.

Web VitalsThresholdsp75
Watch on YouTube ↗

“Is my site fast?” is useless until it's a number. In 2020 Google launched Web Vitals — a set of metrics that turn the fuzzy feeling of speed into scores you can measure, compare, and improve. Three of them, the Core Web Vitals, even feed your search ranking. This lesson is the map; the next three drill into each one.

The big three

The Core Web Vitals

Google groups dozens of possible metrics down to three that each capture a different feeling: LCP (does the main content load fast?), INP (does it respond fast when I interact?), and CLS (does it stay still, or jump around?). Each has a green/amber/red threshold. Flip between site profiles and watch all three move:

InteractiveThe Core Web Vitals dashboard
1.80s
Good
LCP · loading
120ms
Good
INP · interactivity
0.04
Good
CLS · stability
LCP measures loading, INP measures interactivity, CLS measures visual stability. A site can ace one and fail another — they're independent.
Metrics evolve
These aren't fixed forever. INP only became a Core Web Vital in 2024, replacing the older First Input Delay (FID). Google keeps refining them so they track what users actually feel.
The timeline

Where each metric lives

The metrics aren't competing — they each watch a different moment in the page's life. Two supporting metrics (TTFB, FCP) measure the early load; LCP caps off loading; INP watches every interaction; CLS runs the whole time. Tap through the lifecycle:

InteractiveThe page-lifecycle metric map
LCPat: Main content★ Core Web Vital
Largest Contentful Paint — biggest element
★ marks the three Core Web Vitals. TTFB and FCP are diagnostic metrics that feed into LCP.
The catch

Why the 75th percentile

Here's the part people miss: Google doesn't grade your average user — it grades your 75th percentile. If you have 100 visitors, 75 of them must hit the “good” threshold. That means a fast average can still fail if enough users are on slow phones or flaky networks. Drag the slider and watch p75 cross the line:

InteractiveOne slow tail sinks the score
15%
p75 ↓
fastest userslowest user
75th-percentile LCP:2.2s✓ passes (≤2.5s)
Google scores the 75th percentile, not the average — so you can't hide a slow tail behind fast users. Once enough people hit slow devices, your p75 crosses the line even if “most” visits are fine.
Each bar is one user's LCP, sorted fastest→slowest. The p75 bar is what Google scores — averages would hide that slow tail.
Diagnostic metrics

The supporting cast: TTFB & FCP

You can't fix LCP without understanding the two metrics that feed it. Time to First Byte (TTFB) is everything from navigation to the first byte of HTML — all the DNS/TCP/TLS/redirect work from lesson 1. A slow TTFB poisons every metric after it.

First Contentful Paint (FCP) is the moment anything first appears — text, an image, an SVG. It's TTFB plus the critical rendering path. Both are diagnostic: not Core Web Vitals themselves, but the levers you pull to move LCP.

Common causes to remember
Slow TTFB → users far from the origin (use a CDN), heavy server work, or redirects. Slow FCP → render-blocking CSS/JS, a huge DOM, or a TTFB that was already slow.
Cheat sheet

Thresholds at a glance

GoodPoor
LCP (loading)≤ 2.5 s> 4 s
INP (interactivity)≤ 200 ms> 500 ms
CLS (stability)≤ 0.1> 0.25
TTFB (diagnostic)≤ 800 ms> 1.8 s
FCP (diagnostic)≤ 1.8 s> 3 s
Q1Sort each scenario
Which Core Web Vital does each complaint map to?
“The hero image takes forever to show up.”
“I tap the button and nothing happens for a second.”
“The page jumped and I tapped the wrong thing.”
“Typing in the search box feels laggy.”
Q2Multiple choice
Google scores your site at which point in the distribution of real users?
Q3Multiple choice
Which metric replaced First Input Delay (FID) as a Core Web Vital?
Q4Multiple choice
Your LCP is poor. Which two diagnostic metrics should you check first?
Key takeaways
  • The three Core Web Vitals: LCP (loading), INP (interactivity), CLS (stability).
  • They're scored at the 75th percentile of real users — not the average.
  • Each has thresholds: LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1 are “good.”
  • TTFB and FCP aren't Core Web Vitals but are the diagnostic levers behind LCP.
  • Core Web Vitals feed SEO — they're a ranking factor, not just a vanity score.
← Previous
2. Critical Rendering Path
Next →
4. Largest Contentful Paint (LCP)