Blog · Performance · 8 min read

Core Web Vitals in Plain English

Google has three grades your website gets automatically, whether you like it or not. They're called Core Web Vitals, and if you fail any one of them, Google quietly hands your ranking to a faster competitor. Here's what each grade actually measures, what a passing score looks like, and how to fix a failing site in a weekend.

The 30-Second Summary

Core Web Vitals are three specific measurements Google takes on every page of your website:

Each one is a specific number, with a specific passing threshold. Google tracks them for every real visitor to your site (not lab tests — actual humans) and rolls them into your search ranking. If your site is slow, twitchy, or jumpy, you rank lower. It's that simple.

LCP — Largest Contentful Paint

What it measures: How many seconds it takes for the biggest visible element on the page to finish loading. Usually that's your header photo, hero image, or main headline.

Passing score: Under 2.5 seconds. Between 2.5 and 4.0 is "needs improvement." Over 4.0 is a fail.

Why it matters: LCP is Google's way of asking "does this page feel fast to the person visiting it?" A blank white screen for 5 seconds is a page you'll bounce from before you even see it.

Most common causes of a bad LCP:

INP — Interaction to Next Paint

What it measures: When someone clicks a button, taps a link, or types in a form, how many milliseconds until the page visibly responds? INP is the successor to the old FID (First Input Delay) metric and it's much stricter — it measures every interaction, not just the first one.

Passing score: Under 200 milliseconds. Between 200 and 500 is "needs improvement." Over 500 is a fail.

Why it matters: A page that looks loaded but doesn't respond when you tap it is worse than a page that's still loading. Users assume it's broken and leave.

Most common causes of a bad INP:

CLS — Cumulative Layout Shift

What it measures: How much the page jumps around after it starts loading. You've felt this before — you're about to tap "Add to Cart" and an ad loads and pushes it down and you tap something else instead. That's a layout shift.

Passing score: Under 0.1. Between 0.1 and 0.25 is "needs improvement." Over 0.25 is a fail.

Why it matters: Layout shift is the single most infuriating page-load bug. It makes people misclick, back out, and never return.

Most common causes of a bad CLS:

Where to Check Your Scores

Two tools, both free:

  1. PageSpeed Insights (pagespeed.web.dev) — type in any URL, get all three scores plus a full performance breakdown. This is the tool Google itself uses.
  2. Google Search Console — if you have it hooked up, look under "Core Web Vitals" in the left sidebar. This shows real-user data from actual visitors, aggregated across your whole site.

The PageSpeed Insights tool tests one URL at a time. Search Console shows you which URLs are failing across the whole site — usually much more useful.

The Weekend Fix Playbook

If you've never worked on Core Web Vitals before and your scores are red, do these five things in order. Most sites go from failing to passing after just these:

1. Compress your images (2 hours)

Every image on your site should be either WebP or AVIF format and under 300KB. Free tools: Squoosh.app (drag-and-drop), or a WordPress plugin like Smush or ShortPixel.

2. Add width and height to every image (1 hour)

Every <img> tag needs a width and height attribute so the browser can reserve space. This alone can slash your CLS in half.

3. Audit your plugins and scripts (1 hour)

Every plugin adds JavaScript. Every JavaScript file has to be downloaded and parsed. Go through your plugin list and remove anything you're not actively using. If you have 40+ plugins, you have a problem.

4. Move Google Fonts to self-hosted (30 min)

Loading fonts from fonts.googleapis.com is slow and privacy-hostile. Download the WOFF2 files, host them on your own server, and reference them locally. Google Web Fonts Helper (gwfh.mranftl.com) generates the exact code for you.

5. Enable page caching + a CDN (30 min)

Cloudflare's free tier gives you a global CDN, page caching, and image optimization out of the box. WP Rocket or LiteSpeed Cache handle the WordPress side. This one change often improves LCP by 40-60%.

What Not to Bother With

There are hundreds of "SEO tips" for Core Web Vitals. Most are noise. Do not spend your Saturday on:

The five items in the playbook above will get 80% of the results with 20% of the effort. Do them first, retest, and only dig deeper if you're still failing.

A Real-World Example

We audited a pediatric therapy clinic in DFW earlier this year. Baseline scores: LCP 4.8s, INP 620ms, CLS 0.31. All three failing badly. Their site was on WordPress with 34 plugins and a 6MB hero image.

After one weekend of the playbook above (image compression, WebP conversion, killing 11 unused plugins, self-hosting fonts, enabling Cloudflare caching), their scores dropped to LCP 1.9s, INP 180ms, CLS 0.06. All three passing. Organic traffic climbed 34% over the next 6 weeks with zero content changes.

That's the power of Core Web Vitals. Fix them once, benefit forever.

Want to see your Core Web Vitals right now? The VPSEO Free Website Health Checkup pulls live Lighthouse scores for LCP, INP, and CLS — along with plain-English explanations of what to fix first.

Start My Free Scan →


Related reading: 5 Free SEO Fixes You Can Do Today · Why Your Meta Description Is Killing Your CTR · GEO Explained — How AI Search Actually Works

Ready to see what's really happening on your site?

Free Website Health Checkup. Pick any 6 of 30 diagnostics. Real report in under 60 seconds.

Start My Free Scan →