What Core Web Vitals actually measure
Core Web Vitals are three specific metrics Google uses to judge whether your page feels fast and stable to a real user:
- LCP (Largest Contentful Paint) — how quickly the biggest visible element (usually the hero image or headline) appears. Target: ≤ 2.5 s.
- INP (Interaction to Next Paint) — how quickly the page responds when you tap or click. Target: ≤ 200 ms.
- CLS (Cumulative Layout Shift) — how much stuff jumps around while loading. Target: ≤ 0.1.
INP replaced FID in March 2024 — many old guides are still wrong about this.
A page that scores well feels calm, fast, and predictable. A page that scores badly feels janky — and Google notices. PNX is a free agentic SEO tool built for creators, founders and SEO teams who need real answers — fast — without paying $99/month for legacy platforms. This guide breaks down everything about Core Web Vitals in plain English, with a comparison table, internal links to our free tools, and a one-click way to try it yourself.
Why they matter for SEO (and revenue)
Core Web Vitals are part of Google's page-experience signals. They're not the biggest ranking factor — content and links matter more — but they act as a tiebreaker on competitive queries.
More importantly: they correlate directly with bounce and conversion. A 1-second faster LCP typically lifts conversion by 5–15% on e-commerce and SaaS.
The common causes (and fixes) for each metric
LCP (loading speed)
Bad: hero image is a 4 MB PNG, not preloaded, served from origin.
Fix:
- Compress to WebP/AVIF, target <150 KB above the fold
- Preload the LCP image:
<link rel="preload" as="image" href="/hero.avif"> - Serve from a CDN
- Remove render-blocking JS/CSS above the fold
- Use
fetchpriority="high"on the hero image
INP (interactivity)
Bad: a big analytics script blocks the main thread when the user first taps.
Fix:
- Defer non-critical JS (
defer,async, or load inrequestIdleCallback) - Split large bundles with dynamic
import() - Move heavy work off the main thread (Web Workers)
- Remove or slim third-party scripts — the biggest single win
CLS (visual stability)
Bad: images without dimensions push content down when they load; ads inject at page top.
Fix:
- Set explicit
widthandheight(or CSS aspect-ratio) on every image and video - Reserve space for ads, embeds, and dynamic banners
- Never insert content above existing content (except in response to user action)
- Use
font-display: swapwith a fallback that has a similar metric
How to measure — for free
- PageSpeed Insights (
pagespeed.web.dev) — lab + field data - Search Console → Core Web Vitals report — real user data from Chrome
- Chrome DevTools → Performance panel — hunt long tasks locally
- CrUX dashboard — public real-user data, benchmark against competitors
A realistic 1-week fix plan
- Day 1 — Baseline every important template with PageSpeed Insights
- Day 2 — Compress and preload the hero image on the homepage
- Day 3 — Defer/remove non-critical third-party scripts
- Day 4 — Add
width/heightto every image site-wide - Day 5 — Reserve space for any dynamic content
- Day 6 — Re-measure, iterate the biggest remaining offender
- Day 7 — Publish, verify in Search Console after 28 days
What NOT to obsess over
- Perfect 100 lab scores (real-user data is what Google uses)
- Microscopic gains once you're already in the "Good" band
- Removing every third-party script (some are business-critical)
Combine with the free SEO audit tool to catch the on-page issues that often cause bad CWV scores.
<div class="cta-glass-wrap"> <a class="cta-glass" href="/chat" data-prompt="Analyse https://example.com and give me the top 5 fixes ranked by LCP/INP/CLS impact">Fix My Core Web Vitals →</a> </div>Keep reading
Ready to put this into practice? Launch PNX free — no credit card, no daily cap, no signup wall.