In the past, "speed" was a vague concept. Did the site load fast? Today, Google has quantified exactly what "fast" and "smooth" feel like to a user. These metrics are called Core Web Vitals (CWV).
Since becoming a ranking signal, CWV has shifted the focus from raw server speed to perceived user experience. It’s not just about how fast the code loads; it’s about how soon the user can actually use the page.
Three specific metrics make up the Core Web Vitals. To pass the assessment, a page must score "Good" in all three.
1. LCP (Largest Contentful Paint) – Loading Performance
"How fast does the main stuff appear?"
LCP measures the time it takes for the largest visible element (usually a hero image, video, or main headline) to fully load and appear on the screen. It tells the user: "This page is actually happening."
The Thresholds
- Good: ≤ 2.5 seconds
- Needs Improvement: ≤ 4.0 seconds
- Poor: > 4.0 seconds
Common Causes of Poor LCP
- Slow Server Response Times: If your hosting is cheap or overloaded, the browser waits too long to receive data.
- Resource Load Delay: The hero image is not optimized or is loaded via lazy-loading (which should be avoided for the top image).
- Render-Blocking JavaScript: The browser pauses building the page to read a script file.
How to Improve
- Optimize Images: Compress images (WebP format) and ensure the hero image is not lazy-loaded.
- Use a CDN: A Content Delivery Network serves images from a server closer to the user physically.
2. INP (Interaction to Next Paint) – Interactivity
"Does the page freeze when I click?"
Note: INP officially replaced First Input Delay (FID) as the core metric in March 2024.
INP observes the latency of all interactions a user makes with a page (clicks, taps, and key presses) throughout their entire visit. It measures the time between the user's action and the browser's ability to paint the next frame showing the result (e.g., opening a menu or expanding an accordion).
The Thresholds
- Good: ≤ 200 milliseconds
- Needs Improvement: ≤ 500 milliseconds
- Poor: > 500 milliseconds
Common Causes of Poor INP
- Heavy JavaScript Execution: The browser’s "main thread" is too busy processing code to respond to the user's click.
- Complex Layouts: The browser takes too long to re-draw the page after an interaction.
How to Improve
- Break Up Long Tasks: Developers can split large chunks of JavaScript into smaller pieces so the browser can breathe.
- Optimize Event Handlers: Ensure that the code triggered by a click is lightweight and fast.
3. CLS (Cumulative Layout Shift) – Visual Stability
"Does the content jump around unexpectedly?"
We have all experienced this: You go to click a button, but suddenly an ad loads above it, pushing the content down, and you accidentally click the wrong thing. This is a layout shift. CLS measures the sum total of all unexpected layout shifts that occur during the lifespan of the page.
The Thresholds
- Good: ≤ 0.1
- Needs Improvement: ≤ 0.25
- Poor: > 0.25
Common Causes of Poor CLS
- Images Without Dimensions: If you don't tell the browser width="800" and height="600", it doesn't know how much space to reserve.
- Ads and Embeds: Ad banners that dynamically resize often push content down.
- Web Fonts: Sometimes the text is hidden until the custom font downloads (FOIT) or swaps styles (FOUT), causing the line height to change.
How to Improve
- Set Dimensions: Always include width and height attributes on images and video elements.
- Reserve Space: If you have a dynamic ad slot, reserve a specific box size for it in CSS so the content doesn't move when the ad loads.
Summary Table: The Metrics at a Glance
| Metric | Focus | "Good" Target | User Feeling |
|---|---|---|---|
| LCP | Loading | Under 2.5s | "It's here." |
| INP | Responsiveness | Under 200ms | "It works." |
| CLS | Stability | Under 0.1 | "It's steady." |
How to Measure Your Score
You do not need to guess. Google provides free tools to test your site against these standards:
- PageSpeed Insights: The go-to tool for a quick snapshot. It provides both "Lab Data" (simulated) and "Field Data" (real user data).
- Google Search Console: The "Core Web Vitals" report shows you which URLs on your site are failing and groups them by issue type.
- Lighthouse: A developer tool built into the Chrome browser (Right-click > Inspect > Lighthouse) for local testing.