Core Web Vitals - What It Is and Why It Affects Your Google Ranking
Since 2021 Google has officially factored page speed and stability into ranking. Here is what Core Web Vitals actually measure and how to improve them.
Your site takes 7 seconds to load, buttons jump around the screen, and the contact form opens with a delay. Google sees this. And it pushes you down in search results for it.
Since May 2021, Core Web Vitals have been an official ranking factor. Not "might affect" rankings, they affect them. Here's what they measure and what to do about it.
What Core Web Vitals Are
These are three metrics Google uses to judge the quality of the user experience on your site. Between them they measure speed, stability, and responsiveness.
LCP, Largest Contentful Paint
What it measures: How quickly the main content of the page appears, usually a large image, a heading, or a block of text.
Good score: under 2.5 seconds Poor score: over 4 seconds
Imagine landing on a page and seeing nothing but a blank white screen for 5 seconds. You leave. Google knows you left.
The most common causes of a bad LCP:
- Uncompressed images (a 3 MB jpg instead of an 80 kB webp)
- No CDN, the server is physically far from the visitor
- Blocking JS scripts that load before any content appears
- Slow hosting (the cheapest shared hosting, often physically located on another continent)
CLS, Cumulative Layout Shift
What it measures: How much, and how often, elements on the page shift around while it loads.
Good score: under 0.1 Poor score: over 0.25
You know the feeling: you're reading an article, an ad suddenly loads in, and the text jumps 200 pixels down the page. You click the wrong thing. That's CLS.
The most common causes:
- Images without defined
widthandheight - Ads and banners loading in asynchronously
- Web fonts, the page first shows a system font, then swaps it out once the real one loads
INP, Interaction to Next Paint
What it measures: How quickly the page responds to a click, a tap, or typed text.
Good score: under 200 ms Poor score: over 500 ms
You click a button. Nothing happens for a second. You click again. The page basically freezes. That's a bad INP.
INP replaced FID (First Input Delay) in March 2024, it's a more accurate measure of responsiveness across an entire session, not just the very first click.
The most common causes:
- Too much JavaScript blocking the main thread
- Heavy libraries loaded unnecessarily
- An old WordPress install with 30 plugins, each one adding its own JS
How to Check Your Own Scores
PageSpeed Insights (free)
Go to pagespeed.web.dev and enter your site's address. You'll get scores for both mobile and desktop, with specific problems pointed out.
Important: check the mobile score. Google mainly indexes the mobile version of your site. Desktop can be green while mobile is red.
Google Search Console
If you have Search Console set up (you should), the "Page experience" tab shows how many of your URLs have a good, needs improvement, or poor Core Web Vitals score, based on real user data, not lab tests.
Chrome DevTools, Lighthouse
In Chrome: press F12, go to Lighthouse, click Generate report. These are lab results, not real user data, but they're useful for debugging specific issues.
What to Do to Improve Your Scores
Image optimization, the biggest lever for LCP
- Convert jpg/png files to WebP, same image, a file 2 to 4 times smaller
- Define
widthandheighton every image, this eliminates CLS - Use
loading="lazy"on images below the fold - Match the image size to its display size, don't load a 4000px photo into a 400px container
Hosting and CDN
The cheapest hosting plans often mean a server overloaded with thousands of other sites. A time to first byte (TTFB) over 1 second destroys your LCP.
The fix: decent hosting (Cloudflare Pages, Netlify, Vercel, all free for static sites) or a CDN sitting in front of your existing host.
Remove render-blocking resources
JavaScript and CSS in the <head> block rendering. Scripts that aren't needed right at the start should carry a defer or async attribute.
On WordPress: plugins like WP Rocket, LiteSpeed Cache, or manual configuration handle this.
Web fonts without the layout shift
If you're using Google Fonts:
- Add
font-display: swap, the page shows text immediately and swaps the font in once it's loaded - Or host the fonts locally, this removes the external HTTP request entirely
How Much Do Core Web Vitals Actually Matter Compared to Other SEO Factors?
Honest answer: it's not the number one factor. Content, backlinks, and relevance still matter more.
But if you're competing against similar sites on content and links, Core Web Vitals can be exactly what tips the ranking one way or the other. And beyond ranking, a page that loads in 2 seconds converts noticeably better than one that takes 6. That already affects your revenue directly.
TL;DR
| Metric | What it measures | Good score |
|---|---|---|
| LCP | Loading speed of the main content | under 2.5 s |
| CLS | Layout stability | under 0.1 |
| INP | Responsiveness to interaction | under 200 ms |
Check your scores in PageSpeed Insights. Red scores are your priorities. Start with image optimization, it's the fastest win.
If you'd like me to look over your site's Core Web Vitals scores and tell you exactly what to fix, get in touch.