Core Web Vitals translate user experience into ranking signals. Pass them at the 75th percentile and you remove a ceiling on every other SEO investment. Fail them and your best content underperforms.
What Core Web Vitals are
Google measures three field metrics across real users in Chrome, aggregated as the Chrome User Experience Report (CrUX). The thresholds you need to hit at the 75th percentile of page loads:
- LCP — Largest Contentful Paint — < 2.5s
- INP — Interaction to Next Paint — < 200ms
- CLS — Cumulative Layout Shift — < 0.1
Largest Contentful Paint (LCP)
LCP measures how fast the largest visible element appears. On most pages this is the hero image, the headline, or a prominent video.
Most common causes of poor LCP
- Render-blocking CSS or JavaScript in the head.
- Slow server response (TTFB > 800ms).
- Heavy, unoptimized hero images.
- Client-side rendering of above-the-fold content.
Fixes that move the needle
- Serve the hero image in AVIF or WebP with explicit width and height.
- Use
fetchpriority="high"on the LCP image. - Preconnect to the CDN that serves the LCP resource.
- Move the LCP element into the initial HTML — never lazy-load it.
- Cache HTML at the edge where possible.
Interaction to Next Paint (INP)
INP replaced FID in 2024 and measures the responsiveness of every user interaction across the page lifecycle. A single slow click can ruin the score.
Most common causes of poor INP
- Long JavaScript tasks blocking the main thread.
- Heavy hydration on framework-rendered pages.
- Third-party scripts (analytics, chat, ads) running synchronously.
- Expensive event handlers re-rendering large components.
Fixes that move the needle
- Break long tasks into smaller chunks (
scheduler.yield()orsetTimeout). - Defer or async every third-party script.
- Use partial hydration or islands architecture where possible.
- Move heavy work to web workers.
- Debounce expensive event handlers.
Cumulative Layout Shift (CLS)
CLS measures visual stability — how often things on the page jump unexpectedly. The metric punishes pages that load fast but feel broken.
Most common causes of poor CLS
- Images and embeds without explicit dimensions.
- Web fonts that swap and reflow text.
- Ads, banners, and cookie notices injected after load.
- Dynamically inserted content above existing content.
Fixes that move the needle
- Set
widthandheightattributes on every image and iframe. - Use
font-display: optionalor preload critical fonts. - Reserve space for ads with explicit container dimensions.
- Never inject content above the viewport after first paint.
How to measure
- Search Console — Core Web Vitals report. Field data, grouped by URL pattern. Authoritative.
- CrUX dashboard. Field data with origin- and page-level granularity.
- PageSpeed Insights. Field + lab data for one URL at a time.
- Real User Monitoring (RUM). Your own telemetry. Best for production debugging.
- Lighthouse. Lab data, useful for diagnosis but not ranking signal.
Preventing regressions
Most CWV failures are introduced after launch, not at launch. A single new third-party script can tank INP across the entire site. Defenses that work in practice:
- CI-level performance budgets that fail builds when LCP or INP regress.
- RUM dashboards segmented by page template and traffic source.
- Continuous crawling — what FixRank AI does — to surface regressions within hours of deploy.
Core Web Vitals checklist
- LCP image preloaded with
fetchpriority="high". - No render-blocking JavaScript in the head.
- All images and iframes have explicit dimensions.
- Web fonts preloaded or set to
font-display: optional. - Third-party scripts deferred or asynced.
- Heavy work moved off the main thread.
- RUM in place, segmented by template.
- Performance budgets enforced in CI.
Common mistakes
- Lab-only optimization. Lighthouse scores can be perfect while field data is broken.
- Lazy-loading the hero. The LCP image must never be lazy-loaded.
- Async on critical scripts. Defer is usually safer than async for ordering-sensitive scripts.
- Ignoring INP regressions. INP punishes slow interactions even on otherwise fast pages.
FAQs
Do Core Web Vitals affect rankings directly?
Yes, as part of the broader page-experience signal. The lift from passing is real but small — the bigger payoff is removing a ceiling on every other SEO investment.
How long after a fix do scores update?
CrUX uses a rolling 28-day window. Expect 2–4 weeks to see field data move after a deploy.
What's the single highest-ROI fix?
For most sites: optimize the LCP image and preload it. It is the most common bottleneck and the cheapest to fix.
Ready to Fix Your SEO Automatically?
Connect your website and let FixRank AI identify high-impact opportunities and recommended fixes — across technical SEO, semantic structure, internal linking, and AI search visibility.
Start Free Audit