Core Web Vitals are Google's set of real-world performance metrics that measure how fast and stable a webpage feels to actual users. They became an official Google ranking factor in 2021 and have grown in importance every year since. In 2026, passing all three Core Web Vitals thresholds is table stakes for competitive rankings — especially on mobile, where Google now applies Page Experience signals most heavily.
The Three Core Web Vitals Explained
Google measures Core Web Vitals using real user data collected via the Chrome User Experience Report (CrUX). This "field data" reflects the experience of actual visitors on their real devices and connections — not a synthetic lab test on a fast connection. Understanding what each metric measures is the first step to fixing it.
LCP is the most impactful Core Web Vital for rankings. It measures perceived load speed — how quickly the user sees the main content. A slow LCP means visitors are staring at a blank or partial screen, which increases bounce rate and signals a poor experience to Google.
INP replaced FID (First Input Delay) in March 2024. Where FID only measured the first interaction, INP captures all interactions during the session — making it harder to game and more representative of real responsiveness. Heavy JavaScript execution is the primary culprit for poor INP scores.
CLS measures visual instability — the jarring experience of text or buttons jumping around as images, ads, or fonts load in. A high CLS score means users are accidentally clicking the wrong thing or losing their reading position. It's scored as a cumulative number, not a time value.
How to Measure Your Core Web Vitals
Before fixing anything, measure your current scores. Google provides several free tools, each with a different data source:
| Tool | Data Type | Best For | URL |
|---|---|---|---|
| PageSpeed Insights | Lab + Field data | Testing individual pages quickly | pagespeed.web.dev |
| Google Search Console | Field data (real users) | Seeing issues across your whole site | search.google.com/search-console |
| Chrome DevTools (Lighthouse) | Lab data | Diagnosing specific technical issues | Built into Chrome (F12) |
| web.dev/measure | Lab data | Quick audit with improvement suggestions | web.dev/measure |
| CrUX Dashboard | Field data (28-day) | Tracking trends over time | Via Google Data Studio |
Start with Google Search Console's Core Web Vitals report (under Experience in the left menu). It shows which URLs are Poor or Need Improvement based on real user data grouped by issue type. This tells you where to prioritize fixes. Then use PageSpeed Insights on specific poor-performing URLs to diagnose the exact cause.
How to Fix LCP (Largest Contentful Paint)
Poor LCP is almost always caused by one or more of these four issues: a slow server, render-blocking resources, unoptimized images, or no preloading of the LCP element. Here's how to fix each.
Optimize Your Hero Image
The LCP element is usually your hero image — the large image at the top of the page. Unoptimized hero images are the single most common cause of slow LCP. Fix it by:
- Converting the image to WebP format (25–35% smaller than JPEG at equivalent quality)
- Compressing the image to under 200KB for desktop, under 100KB for mobile
- Adding
fetchpriority="high"to the LCP image tag — tells the browser to load it first - Removing
loading="lazy"from the LCP image (lazy loading delays above-the-fold images) - Using
<link rel="preload">in the document head to start loading the image before HTML parsing completes
Enable Browser Caching and Server-Side Compression
Caching stores static files (images, CSS, JS) in the visitor's browser after the first visit, so repeat visits load instantly. Server-side compression (gzip or Brotli) reduces the file size transferred over the network. Both are server-level settings that most hosting providers support. On WordPress, a caching plugin like WP Rocket or LiteSpeed Cache handles both automatically.
Use a Content Delivery Network (CDN)
A CDN stores copies of your static files on servers around the world. When someone visits your site, files are served from the nearest server rather than your origin server. Cloudflare's free plan reduces LCP for most small business sites by 20–40% with zero technical expertise required — just sign up, update your nameservers, and enable caching.
How to Fix INP (Interaction to Next Paint)
Poor INP is caused by JavaScript that blocks the browser's main thread, preventing it from responding quickly to user interactions. The primary fix is reducing JavaScript execution time and breaking up long tasks.
- Audit and remove unused JavaScript — use Chrome DevTools Coverage tab to see what JS isn't executing
- Defer non-critical scripts — add
deferorasyncattributes to scripts that don't need to run on page load - Remove or replace heavy third-party scripts — live chat widgets, tag managers, and analytics scripts are common INP killers
- Use a tag manager audit — many sites accumulate dozens of tags that fire on every page load
- Load scripts conditionally — only load chat widgets on pages that need them, not site-wide
For WordPress sites, plugins like Asset CleanUp or WP Rocket's "Remove Unused CSS" feature can selectively disable scripts on pages where they're not needed, dramatically reducing main thread blocking.
How to Fix CLS (Cumulative Layout Shift)
CLS is typically caused by images or embeds without explicit dimensions, dynamically injected content (ads, banners, cookie notices), or web fonts that cause text to reflow when they load. The fixes are straightforward:
- Set width and height on every image —
<img width="800" height="450">tells the browser to reserve space before the image loads - Reserve space for ads — give ad containers a fixed min-height equal to the expected ad size
- Use font-display: swap — shows text in a fallback font while the custom font loads, then swaps (minor shift is acceptable)
- Avoid inserting content above existing content — banners, cookie notices, and popups that push content down cause high CLS
- Position cookie consent banners at the bottom — bottom-of-page banners don't shift existing content
- Use CSS aspect-ratio for video embeds — YouTube iframes without explicit dimensions cause significant layout shift
Core Web Vitals for WordPress: The Fastest Path to Passing
For WordPress site owners, a performance plugin is the fastest path to passing Core Web Vitals without touching code. These plugins automate the majority of optimizations described above.
- WP Rocket ($59/year) — the gold standard; handles caching, lazy loading, CSS/JS optimization, preloading, and CDN integration
- LiteSpeed Cache (free) — requires LiteSpeed server hosting; extremely fast with built-in image optimization
- NitroPack (free tier available) — cloud-based, hands-off optimization; best for sites that need results without any configuration
- Imagify or ShortPixel — dedicated image optimization plugins; convert to WebP and compress automatically on upload
After installing a performance plugin, retest with PageSpeed Insights. Most small business WordPress sites move from Poor or Needs Improvement to Good across all three metrics with a single plugin installation and default settings.
Stop Doing SEO Manually
Our AI agent writes and publishes SEO-optimized articles for your business every single day — automatically.
Start for $49.90/mo →Frequently Asked Questions
Do Core Web Vitals directly affect Google rankings?
Yes. Core Web Vitals are a confirmed Google ranking signal as part of the Page Experience update. Pages that pass all three thresholds receive a ranking boost, particularly on mobile. The signal is a tiebreaker — content quality still outweighs performance, but poor vitals can suppress otherwise strong pages.
What is a good LCP score?
An LCP of 2.5 seconds or faster is considered Good by Google. Between 2.5 and 4.0 seconds is Needs Improvement. Over 4.0 seconds is Poor. Measure at the 75th percentile of real user sessions, not just your own fast connection.
How do I check my Core Web Vitals for free?
Google provides free tools: PageSpeed Insights (pagespeed.web.dev) tests individual URLs, Google Search Console's Core Web Vitals report shows field data across all pages, and Chrome DevTools Lighthouse tab runs a lab audit. All three are free.
Can I fix Core Web Vitals without a developer?
Many fixes are accessible without coding knowledge. On WordPress, plugins like WP Rocket, LiteSpeed Cache, or NitroPack automate image compression, lazy loading, caching, and code minification. These plugins alone fix the majority of CWV issues for most small business sites.
What replaced FID in Core Web Vitals?
INP (Interaction to Next Paint) replaced FID (First Input Delay) as the interactivity metric in March 2024. INP measures the latency of all interactions during a page session rather than just the first one, giving a more complete picture of responsiveness.