In 2026, Core Web Vitals still influence Google rankings — modestly — and influence conversion measurably. The thresholds you actually need to pass on a marketing site are: LCP under 2.5 seconds, INP under 200 ms, CLS under 0.1, all measured at the 75th percentile on real user devices. Hitting those numbers is mostly a question of three things: image handling, JavaScript discipline, and server response time. This guide covers the 2026 thresholds, the field tools that matter, and the highest-leverage fixes for marketing sites and SaaS apps.
The 2026 thresholds (what to actually pass)
| Metric | Good (target) | Needs improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5 s | ≤ 4.0 s | > 4.0 s |
| INP (Interaction to Next Paint) | ≤ 200 ms | ≤ 500 ms | > 500 ms |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| TTFB (server response, supporting metric) | ≤ 0.6 s | ≤ 1.5 s | > 1.5 s |
Pass at the 75th percentile across mobile and desktop. The 75th percentile means 75% of your real visitors had at least the "good" experience — not your synthetic Lighthouse score in the studio.
Field data vs lab data: what Google actually scores
The single most common mistake in 2026 Core Web Vitals work: optimizing Lighthouse scores in the studio while real users still get bad experiences. Google's ranking signal uses field data (CrUX — Chrome User Experience Report) — real user metrics from real devices. Lighthouse gives you a synthetic lab score that's a useful proxy but isn't what Google reads.
The right tools, in order:
- Search Console's Core Web Vitals report. Field data, per URL group, with origin and group-level pass rates. The truth.
- PageSpeed Insights. Shows both field (CrUX) and lab (Lighthouse) data. Look at field first, lab second.
- web-vitals JS library. Drop into your site to capture real user measurements directly. Pipe to your analytics or a dedicated RUM tool.
- Lighthouse / Chrome DevTools. Diagnostic, not authoritative. Useful when chasing a specific regression.
LCP: the highest-leverage metric to fix
Largest Contentful Paint is when the largest above-the-fold element (usually a hero image or large headline) finishes rendering. For most marketing sites in 2026, fixing LCP fixes 60–80% of CWV problems. The four adjustments that move LCP measurably:
Identify and prioritize the LCP element
In 70% of marketing pages, LCP is the hero image. Mark it with fetchpriority="high", preload it (<link rel="preload">), and put a real width and height on it. Avoid lazy-loading anything above the fold — it hurts more than it helps.
Serve the right image format and size
Modern formats (AVIF, WebP) cut bytes 30–60% versus JPEG/PNG at the same visual quality. Resize to the actual rendered size — a 4000×2400 photo served to a 1200×720 hero crop is a 3MB file doing the work of a 200KB one. Image CDNs (Cloudflare Images, Cloudinary, Imgix, Vercel Image Optimization) handle this automatically.
Improve server response time (TTFB)
Every millisecond TTFB takes is a millisecond LCP can't recover. The common culprits: a slow CMS, an overloaded WordPress host, server-side rendering work that should be cached, or a database query in the critical path. Cache aggressively at the edge; render static where possible. See our 2026 hosting comparison for the platforms that ship with edge-cached defaults.
Don't let fonts block the headline
font-display: swap on every web font. Self-host the most critical font weight rather than loading from Google Fonts. Subset large fonts to only the characters you actually use. A late-loading font that flashes can spike both LCP and CLS.
INP replaced FID — and it's harder to pass
Interaction to Next Paint became a Core Web Vital in March 2024, replacing First Input Delay. INP measures the longest interaction delay across the whole page session — not just the first one. It's harder to pass than FID, because heavy JavaScript pages now have multiple interaction points that can break the budget.
The four adjustments that move INP:
- Reduce main-thread JavaScript. Audit bundle size. Remove the analytics tag manager bloat. Lazy-load anything not needed on first interaction. Modern frameworks (Next.js App Router, Astro Islands) make this easier than legacy React SPAs.
- Yield long tasks. Break up tasks > 50ms with
scheduler.yield()or microtasks. The browser can't respond to user input while the main thread is busy. - Defer non-critical scripts. Third-party scripts (analytics, ads, support widgets) often eat 50% of the INP budget. Use
defer,async, or load on user interaction. - Avoid synchronous layout thrashing. Reading and writing layout-triggering properties in the same loop forces the browser to re-layout repeatedly. Batch reads, then writes.
CLS: invisible by default, fixable in an afternoon
Cumulative Layout Shift measures how much content moves around as the page loads. The common culprits:
- Images without dimensions. Always set
widthandheight, even on responsive images. The browser reserves the space and nothing shifts. - Fonts that swap-in late. The fallback and the web font often have different sizes; the swap shifts everything below. Match the fallback font's size with
size-adjustin@font-face. - Ads and embeds without reserved space. A YouTube embed or an ad slot loaded after first paint pushes content down. Reserve the space with
aspect-ratio. - Cookie banners. The single most common CLS source on Canadian sites in 2026. Use a banner that doesn't shift content (a fixed-position bar) or render it in the SSR HTML rather than injecting it post-load.
Targets by site type
Universal thresholds are the floor. The right targets for the site type:
| Site type | LCP target | Notes |
|---|---|---|
| Marketing landing page | ≤ 1.8 s | Conversion-sensitive; aim well under threshold |
| SaaS marketing site | ≤ 2.0 s | Buyers compare across tabs; speed shapes perception |
| E-commerce product page | ≤ 2.5 s | Hero product image is usually LCP |
| Content / blog | ≤ 2.5 s | Headline is often LCP — fonts matter |
| SaaS application UI (logged-in) | ≤ 2.0 s for first paint | Not in CrUX, but measure and target anyway |
Diagnostic playbook: from poor to good in three weeks
- Day 1: pull field data. Search Console → Core Web Vitals. List the 10 worst URL groups. Note metric (LCP/INP/CLS) for each.
- Days 2–4: diagnose the worst offender. Run PageSpeed Insights on a representative URL. Check the LCP element. Check third-party JS impact. Note image sizes and formats.
- Days 5–10: ship the obvious fixes. Image format/size, preload LCP, font-display, image dimensions, defer third-party JS. Most sites pick up 30–60% of their potential gains from these alone.
- Days 10–18: tackle JavaScript. Bundle audit, code-splitting, long-task analysis. INP is the metric where this work pays back.
- Days 18–21: validate in field data. Wait for CrUX to update (it's 28-day rolling). Confirm pass rates moved. Iterate on what didn't.
Framework-specific 2026 advice
- Next.js App Router. Use Server Components by default, Client Components only when needed.
next/imagehandles most image optimization. Vercel ships edge-cached defaults that move TTFB materially. - Astro. Default zero-JS marketing sites. Hard to fail Core Web Vitals on Astro unless you import a heavy React island unnecessarily.
- SvelteKit / Remix. Both ship lean by default. Watch third-party scripts and image sizes.
- WordPress. Hardest to pass without serious work — bloated themes, plugin sprawl, and slow hosting compound. Often the case for the WordPress to Next.js migration we ship.
Does Core Web Vitals actually move rankings in 2026?
Modestly. Google has been clear that CWV is a tiebreaker, not a primary ranking factor. But the second-order effects are real: fast pages have lower bounce rates, higher conversion rates, and earn more behavioural signals that Google does weight heavily. For most sites, the conversion lift from passing CWV outweighs the direct ranking lift — and the conversion lift is the easier win to defend internally when budgeting performance work.
Need help passing Core Web Vitals?
Tell us your domain and the URLs that worry you most. We'll send a one-page audit covering the worst CWV offenders, the highest-leverage fixes, and a fixed price to ship them — within three working days.
Book a consultation →Frequently asked questions
What are the Core Web Vitals thresholds in 2026?
LCP ≤ 2.5 seconds, INP ≤ 200 milliseconds, CLS ≤ 0.1 — measured at the 75th percentile of real user data on mobile and desktop. INP replaced FID in March 2024 and is harder to pass on JavaScript-heavy sites. TTFB is a supporting metric, target ≤ 0.6 seconds.
Does Google rank sites higher for passing Core Web Vitals?
Modestly. Google has been clear that CWV is a tiebreaker, not a primary ranking factor. But the second-order effects are real — fast pages have lower bounce rates and higher conversion, which earns behavioural signals Google does weight heavily. Most sites see the conversion lift from passing CWV outweigh the direct ranking lift.
Should I use Lighthouse scores or Search Console for Core Web Vitals?
Search Console is authoritative for ranking — it uses real user field data (CrUX) which is what Google scores. Lighthouse gives you a synthetic lab score that's a useful diagnostic proxy but isn't what Google reads. Look at field data first, lab data second when chasing a specific regression.
What's the highest-leverage fix for slow marketing sites?
For 60–80% of marketing sites, fixing LCP fixes most of the problem. Three changes ship in days: identify the LCP element (usually the hero image), preload it with fetchpriority=high, and serve the right format/size via an image CDN. Most sites pick up enough from these alone to move from "poor" to "good" CrUX.
Why is INP harder to pass than FID was?
FID measured only the first input delay; INP measures the longest interaction delay across the entire page session. JavaScript-heavy sites with multiple interaction points (modals, accordions, search) now have many opportunities to fail the budget. The fix is the same shape — reduce main-thread JS, defer third-party scripts, yield long tasks — but the bar is harder.
Can WordPress sites pass Core Web Vitals?
Yes, but it's the hardest framework to pass on without significant work. Bloated themes, plugin sprawl, and slow shared hosting compound to push LCP and INP into the "needs improvement" range. Sites that pass typically run a lean theme on managed WordPress hosting with object caching, a CDN, and disciplined plugin selection. Sites that don't typically migrate to Next.js, Astro, or another modern framework.

