
Core Web Vitals 2026 — Complete Guide to LCP, INP & CLS
Core Web Vitals in 2026 are three metrics measured by real Chrome users: LCP, INP and CLS. INP is now weighted equal to LCP and CLS as a ranking signal, which Google confirmed on March 18, 2026. About 43% of all sites fail INP at the 200-millisecond threshold, which makes it the most commonly failed metric. Sites passing all three see 24% lower bounce rates and 10% higher chance of ranking at position 1 vs position 9. This post is the complete 2026 reference, with CrUX data, fix playbook per stack, and the tools I actually use to ship gains.
The three metrics, the thresholds, and what they measure
| Metric | Good | Needs Improvement | Poor | What it measures |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | 2.5s – 4.0s | > 4.0s | Loading — when the biggest visible element renders |
| INP (Interaction to Next Paint) | ≤ 200ms | 200ms – 500ms | > 500ms | Responsiveness — full interaction lifecycle (input → processing → next paint) |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | 0.1 – 0.25 | > 0.25 | Visual stability — unexpected layout jumps |
The diagnostic metrics that are not ranking signals yet but are watched in 2026:
| Metric | Engineering target | Google “Good” threshold |
|---|---|---|
| TTFB (Time to First Byte) | < 200ms | < 800ms |
| FCP (First Contentful Paint) | < 1.0s | < 1.8s |
For a URL group to pass Core Web Vitals, 75% of real-user sessions need to hit Good on all three metrics. Pass rate is evaluated at the 75th percentile of pages in CrUX over a rolling 28-day window. Mobile data is the primary ranking input. Desktop is a tiebreaker.
What changed in 2026
- INP replaced FID on March 12, 2024. The two-year grace period ended. As of March 18, 2026 INP is weighted equal to LCP and CLS as a ranking signal per Search Central confirmation.
- Roughly 43% of sites still fail INP at the 200-millisecond threshold, making it the most commonly failed CWV in 2026.
- Mobile-first indexing is universal. Google uses mobile CrUX as the primary input. Desktop is secondary.
- CrUX Dashboard on Looker Studio was deprecated end of 2025. Monitoring moved to BigQuery CrUX dataset or third-party tools (Treo, DebugBear).
- TTFB watch list: Google has hinted TTFB may become a full ranking signal in 2027. Engineering target is under 200 milliseconds.
- No new primary metric for 2026. Visual stability sub-metrics within CLS are being explored but not announced.
If you want a deep dive on the most-failed metric, the INP Optimization 2026 guide is the companion read. For the Shopify-specific playbook, the Shopify Core Web Vitals 2026 Playbook goes platform-deep.
The CWV ranking effect — what the data actually shows
⚡ 2-minute scorecard · instant result
How strong is your lead engine?
Answer 5 quick questions. Get your score + the top fixes — free.
1. Do you track which source every lead comes from?
2. Do you respond to new leads in under 5 minutes?
3. Do you have a CRM that catches every inquiry?
4. Do you run a follow-up / nurture sequence?
5. Is your site built to convert, not just inform?
The honest reality is that CWV is a small signal individually but a compounding signal collectively. Here is what I cite when clients ask whether it is worth the effort:
- Position 1 pages have roughly 10% higher CWV pass rates than position 9 pages, per 2026 ranking studies (LinkGraph, Nitropack, DebugBear).
- Sites passing all three CWV see 24% lower bounce rates on average (Digital Applied 2026 analysis).
- Failing CWV sites lose 8 to 35% of conversions, traffic and revenue vs passing peers (aggregated industry data).
- On competitive SERPs, CWV is often the tiebreaker between similar-quality pages.
- On low-competition or branded queries, CWV matters much less.
Practical translation: if you are competing for a query where 10 sites are within 5% of each other on content quality and authority, CWV decides. If you are competing for a query where you are objectively the best answer, CWV is a polish layer. Most queries that drive real revenue are competitive enough that the tiebreaker matters.
Three case studies — the conversion case is usually bigger than the SEO case
The conversion lift from CWV fixes is usually larger than the ranking lift, and it shows up faster. Three I can speak to:
- Home decor ecommerce. INP went from 450 milliseconds to 48 milliseconds after deferring 6 third-party scripts and replacing 3 jQuery animations with CSS. Bounce rate dropped 18%. Google Ads CPC dropped 12% from Quality Score lift on the same landing pages.
- Shopify Plus fashion brand. LCP went from 4.7 seconds to 1.9 seconds. INP went from 312 milliseconds to 124 milliseconds. CLS went from 0.27 to 0.04. All in 12 weeks. Mobile conversion rate lifted 17%. Incremental revenue: $1.2 million over the next 6 months. Full breakdown on the Shopify CWV revenue lift case study.
- WordPress publisher. Removed 11 unused plugins. Enabled WP Rocket Delay JS. INP dropped from 380 milliseconds to 140 milliseconds. Organic traffic lifted 22% over 90 days, attributed largely to CWV-driven ranking improvements on long-tail queries.
- Mid-market WordPress agency. Migrated from shared hosting to Kinsta, added Cloudflare APO, removed page builder JS bloat. LCP dropped from 3.1 to 1.4 seconds. Lead form conversions lifted 31% within 6 weeks, organic lift followed at 18% within 90 days.
The 12 highest-impact fixes by stack
Shopify — the worst INP offender by stack
- Audit and remove unused apps. Every Shopify app injects synchronous JS via script_tag. Apps are the #1 INP killer.
- Defer chat, review and email-capture widgets. Tidio, Klaviyo, Judge.me, Yotpo. Lazy-load on interaction, not on page load.
- Switch to a modern theme. Dawn, Sense, Craft. Online Store 2.0 themes ship lean Liquid plus minimal JS vs vintage themes.
- Use loading=”lazy” and fetchpriority=”high” on hero images. Shopify image CDN supports width=, format=webp, crop=center. Always specify width and height to kill CLS.
- Move third-party scripts to GTM with triggers. Fire on click or scroll, not page load.
- Section-level code splitting. Only load JS for sections actually rendered on the page.
- Replace JS animations with CSS transforms. translate3d() is GPU-accelerated and does not block the main thread.
- Optimistic UI for cart and filter. Show the visual response in under 50 milliseconds, then settle the data asynchronously.
- Preload the LCP image. Add the preload link with fetchpriority=”high” in theme head.
- Use Shopify’s native search and filter instead of Searchanise or Boost.
- Disable unused theme settings. Many themes load JS for features even when disabled.
- Server-side render product recommendations. Avoid client-side widgets that hydrate on interaction.
WordPress — the LCP plus TTFB offender
- WP Rocket “Delay JavaScript Execution”. Defers chat, analytics, ads until first user interaction. Single biggest INP win.
- Perfmatters or Asset CleanUp Pro. Selective script loading. Disable Contact Form 7 JS on pages without forms.
- Move to a managed host. Kinsta, WP Engine, Rocket.net for TTFB under 200 milliseconds. Cheap shared hosting kills it.
- LiteSpeed Cache plus QUIC.cloud if on LiteSpeed hosts (Hostinger, NameHero). Free, beats WP Rocket on cached HTML.
- Cloudflare APO at $5 a month. Full-page HTML caching at the edge. TTFB drops to ~50 milliseconds globally.
- Audit page builders. Elementor and Divi are the worst for INP. WPBakery, Bricks, GenerateBlocks are 3 to 6 times faster.
- Remove jQuery dependencies where possible. WordPress 6.5+ ships modern JS by default.
- Native lazy-loading plus WebP/AVIF via plugin (ShortPixel, Imagify, Cloudflare Images).
- Disable Gutenberg block CSS for unused blocks with care.
- Replace Gravity or Ninja Forms with Fluent Forms. 10 times less JS.
- Remove emoji.js, embed.js and dashicons on frontend.
- Self-host Google Fonts plus preload with font-display: swap.
For the deep WordPress dive, the WordPress Core Web Vitals 2026 post goes plugin-by-plugin.
Webflow — the cleanest baseline, easy to ruin
- Minimize IX2 interactions above-the-fold. Webflow Interactions 2.0 hydrates on load.
- Put custom code in Footer, not Header. Avoid render-blocking.
- Defer all third-party scripts via GTM. Webflow has no plugin layer.
- Use CSS transforms over Webflow’s height/width animations.
- Lazy-load CMS Collections images. Set images to lazy, define dimensions.
- Replace Lottie animations with CSS or WebP.
Headless (Next.js, Nuxt, Astro, Remix, Hydrogen)
- Use the platform’s image component (next/image, Astro Image).
- Partial hydration or islands. Astro and Qwik default to zero-JS.
- Code-split routes plus dynamic imports for heavy widgets.
- Use the Script component with lazyOnload strategy for third-party scripts.
- Edge runtime plus ISR for sub-200ms TTFB globally.
- Preload critical fonts and the LCP image in the document head.
How to read PageSpeed Insights vs Search Console
This is the workflow I run on every audit.
- Search Console first. Open the Core Web Vitals report under Experience. Look at the mobile tab. Identify URL groups that are failing. Note the metric that is failing (LCP, INP or CLS) and the percentage of URLs affected.
- PageSpeed Insights for the worst URL. Paste the URL into PSI. Look at the field data (top of the report, real-user CrUX). Note the 75th-percentile values for LCP, INP and CLS. Look at the diagnostic data (FCP, TTFB).
- Lab data for diagnosis. Scroll down to the Lighthouse audit. Identify the top opportunities. Note the render-blocking resources, unused JavaScript, large CLS contributors.
- Web Vitals Chrome extension during dev. Install the extension. Open your worst URL in Chrome with throttling on. Interact with the page. Watch INP rise in real time.
- Validate after fix. Re-run PSI lab data immediately to confirm the fix landed. Wait 28 days for CrUX field data to reflect the new reality.
The biggest mistake I see teams make: they ship a fix, see Lighthouse jump from 60 to 95, declare victory, and never check field data. CrUX is what Google ranks on. Validate with field data.
Tool comparison — what I use at each price tier
| Tool | Type | Cost | Best for |
|---|---|---|---|
| PageSpeed Insights | Lab + Field | Free | Single-URL spot checks, client reports |
| Chrome UX Report | Field | Free (BigQuery) | Origin-level monitoring, what Google ranks on |
| Search Console CWV | Field | Free | URL-group pass/fail, fix tracking |
| Web Vitals Chrome ext | Lab | Free | Live INP overlay during dev |
| Lighthouse CI | Lab | Free / self-host | PR-level regression checks |
| WebPageTest | Lab | Free + paid | Filmstrip and waterfall debugging |
| DebugBear | Lab + RUM | $80 to $400/mo | Mid-market alerting + RUM |
| Calibre | Lab + RUM | $399 to $999/mo | Agencies, design teams |
| SpeedCurve | Lab + RUM | $15K+/yr | Enterprise, CFO dashboards |
| Treo.sh | Field | Free + paid | Lightweight CrUX dashboards |
My default recommendation: Free tier is PSI plus Search Console plus the Web Vitals extension. Paid tier (the $200 a month monitoring layer in my website speed optimization service) is DebugBear or Treo.sh plus Cloudflare Web Analytics.
Mobile vs desktop ranking weight
Mobile-first indexing is universal in 2026. Google uses mobile CrUX as the primary CWV input. More than 64% of global web traffic is mobile per Q3 2025 data. Desktop CWV is a secondary signal, relevant for desktop SERPs and as a tiebreaker between similar pages.
Practical implications:
- If mobile fails but desktop passes, you are still ranked on the mobile fail.
- Test mobile first, then desktop. Most agencies invert this and miss the real problem.
- iPhone 14 Pro at 390×844 viewport and Pixel 6 at 412×915 are sensible default test devices.
- Throttle the connection to 4G (or slower for emerging markets). Real users on cellular feel the page differently than your office WiFi.
- Touch interactions take longer than mouse clicks. INP on touch devices is usually 20 to 40% slower than on mouse.
The fix checklist per metric
LCP fix checklist (target: under 2.5 seconds)
- Preload the LCP image with fetchpriority=”high”.
- Serve the LCP image in WebP or AVIF at the rendered size.
- Move to a CDN-backed host for TTFB under 200 milliseconds.
- Eliminate render-blocking CSS in the head (inline critical CSS, defer the rest).
- Eliminate render-blocking JS in the head (defer or async).
- Use font-display: swap on web fonts.
- Preconnect to the image and font CDN.
- Avoid lazy-loading the LCP element (browsers used to do this; modern browsers skip but make sure the attribute is not set).
INP fix checklist (target: under 200 milliseconds)
- Defer third-party scripts until first user interaction.
- Break long tasks with scheduler.yield() or setTimeout(0) fallback.
- Optimistic UI: paint the response in under 50 milliseconds.
- Move heavy computation to Web Workers.
- Debounce input handlers (150 millisecond default).
- Avoid layout thrash inside handlers (batch reads then writes).
- Replace JS animations with CSS transforms.
- Reduce DOM size below 1,500 nodes.
CLS fix checklist (target: under 0.1)
- Set width and height attributes on every image and iframe.
- Reserve space for ads with min-height containers.
- Avoid injecting content above existing content after load.
- Use font-display: optional or preload critical fonts to prevent shift on font swap.
- Animate transform and opacity, never height or top.
- Use aspect-ratio CSS on responsive images.
- Reserve space for late-loading widgets (cookie banners, chat).
- Avoid sticky elements that change height on scroll.
How CWV fits into a 30-day optimization sprint
This is how I scope a typical CWV engagement.
- Week 1: CrUX field audit (mobile + desktop), lab audit with PSI and WebPageTest, stack-specific deep dive on apps or plugins, prioritized fix list.
- Weeks 2 to 3: Top 3 to 5 fixes implemented. App audit on Shopify or plugin audit on WordPress. Image and font optimization. Theme upgrade or page builder swap if needed.
- Week 4: Lab re-test, regression check via Lighthouse CI, deploy monitoring (DebugBear or equivalent).
- Weeks 5 to 8: CrUX data starts reflecting the new reality. Pass/fail status updates in Search Console.
- Weeks 9 to 12: Ranking and conversion effects become visible. Monthly tune-up to catch regressions.
The audit fee is $400 one-time. Monitoring is $200 a month. Most clients keep monitoring because the cost of re-failing after a theme update or app install is enormous and the cost of catching it inside 24 hours is small.
If you want to start with a free conversation about what is actually slow on your site, the 30-min free consultation is where it happens.
Want me to fix your Core Web Vitals?
$400 audit, 5 business days, full CrUX + lab analysis + the fix list ranked by impact. Top 3 to 5 fixes implemented inside the audit fee. $200/mo monitoring to keep it that way.
FAQ
What are the Core Web Vitals in 2026?
Three metrics. LCP (Largest Contentful Paint) for loading speed, with Good at 2.5 seconds or under. INP (Interaction to Next Paint) for responsiveness, with Good at 200 milliseconds or under. CLS (Cumulative Layout Shift) for visual stability, with Good at 0.1 or under. Google evaluates each metric at the 75th percentile of real Chrome user data over a rolling 28-day window. A page passes Core Web Vitals only when 75% of real visits hit Good on all three metrics simultaneously.
What changed in Core Web Vitals in 2026?
INP replaced FID as a Core Web Vital on March 12, 2024, and the two-year grace period ended in 2026. Search Central confirmed on March 18, 2026 that INP is weighted equal to LCP and CLS as a ranking signal. About 43% of sites still fail INP at the 200-millisecond threshold, which makes it the most commonly failed CWV in 2026. CrUX Dashboard on Looker Studio was deprecated end of 2025, so monitoring moved to BigQuery CrUX dataset or third-party tools like Treo and DebugBear.
Are Core Web Vitals a ranking factor?
Yes, all three are ranking signals as of March 2026. The effect is small but compounding. Position 1 pages show roughly 10% higher CWV pass rates than position 9 pages. Sites passing all three CWV see 24% lower bounce rates. Failing sites lose 8 to 35% of conversions, traffic and revenue vs passing peers. On competitive SERPs CWV often becomes the tiebreaker between similar-quality pages. On low-competition or branded queries it matters less.
What is LCP and how do I fix it?
LCP is Largest Contentful Paint, the time from page load start to when the largest visible element (usually the hero image or hero heading) renders. Good is 2.5 seconds or under. Fixes by priority: preload the LCP image with fetchpriority=’high’, move to a CDN-backed host for TTFB under 200ms, serve the LCP image in WebP or AVIF at the rendered size, eliminate render-blocking CSS and JS in the head, use font-display: swap on web fonts. The 12 fixes in the stack-by-stack playbook below knock LCP from 4+ seconds to under 2 seconds on most stores.
What is INP and how do I fix it?
INP is Interaction to Next Paint, the time from user input through event processing to next paint, measured at the 98th percentile of interactions. Good is 200 milliseconds or under. The single biggest fix is deferring third-party scripts (chat, reviews, analytics) until first user interaction. After that: scheduler.yield() inside long tasks, optimistic UI in under 50 milliseconds, Web Workers for heavy computation, debounce input handlers. The full INP playbook is on the INP 2026 post.
What is CLS and how do I fix it?
CLS is Cumulative Layout Shift, a unitless score that captures unexpected visual movement during page load. Good is 0.1 or under. Fixes: always set width and height attributes on images and iframes, reserve space for ads with min-height containers, avoid injecting content above existing content after load, use font-display: optional or preload critical fonts to prevent layout shift on font swap, never trigger animations that change height or top instead of transform. Most sites that fail CLS fail because of dynamically injected ads or banners.
How does Google actually measure Core Web Vitals?
Google uses the Chrome User Experience Report (CrUX), which aggregates real performance data from opted-in Chrome users over a rolling 28-day window. Metrics are evaluated at the 75th percentile of all page loads on the URL or origin. A URL group passes only when 75% or more of real visits hit Good on all three metrics. Lab tools like Lighthouse give you a single synthetic score that may be much faster than what real users experience. Always validate fixes with CrUX field data, not Lighthouse.
Why does mobile Core Web Vitals matter more than desktop?
Google uses mobile CrUX as the primary input for ranking decisions because mobile-first indexing is universal in 2026. Over 64% of global web traffic is mobile (Q3 2025 data). Desktop CWV is a secondary signal, mostly relevant for desktop SERPs and as a tiebreaker between similar pages. If mobile fails but desktop passes, you are ranked on the mobile fail. Test mobile first, then desktop. iPhone 14 Pro at 390×844 on throttled 4G is my default test device.
What is the difference between PageSpeed Insights and Search Console Core Web Vitals?
PageSpeed Insights tests a single URL and shows both lab data (Lighthouse, synthetic) and field data (CrUX, real users). Use it for spot checks. Search Console’s Core Web Vitals report groups URLs by similarity and shows pass/fail trends over time for your whole site. Use it for tracking. Both pull from the same CrUX data for the field side. The difference is granularity: PSI is per-URL, Search Console is site-wide.
Can a Lighthouse score of 95+ still fail Core Web Vitals?
Yes, and this is the most common confusion. Lighthouse runs a single synthetic test in a controlled environment with a fast simulated network and a fast simulated CPU. CrUX measures real users on real devices on real networks, including 3G connections and budget Android phones. A page can score 95 in Lighthouse and have a 75th-percentile field LCP of 4.2 seconds because real users are not on simulated fiber. Ranking uses CrUX, not Lighthouse. Always validate with field data.
How long until Google notices my Core Web Vitals fixes?
CrUX is a rolling 28-day window. A fix that ships today starts showing in CrUX a few days later and is fully reflected in your 28-day average about a month after deploy. Search Console’s CWV report updates weekly. Ranking effects, if any, follow the CrUX update by another 1 to 4 weeks. Expect 28 to 60 days to see organic lift from a CWV fix. The conversion lift is usually visible inside 7 to 14 days because users feel the speed immediately.
Which stack passes Core Web Vitals most often?
Astro and static-first headless stacks lead at about 92% CWV pass rate based on aggregated CrUX-style data. Headless WordPress on Next.js with WPGraphQL lands around 88%. Tuned WordPress on Kinsta or WP Engine with WP Rocket and a CDN passes around 80%. Shopify Hydrogen on Oxygen is around 78%. Shopify with default Liquid themes sits around 52% but average all Shopify stores is 75.2% pass rate on mobile per Q1 2026 HTTP Archive data. Plain WordPress on cheap shared hosting drops to 43% pass rate, which is the bottom of the pack.
Does Core Web Vitals affect Google Ads quality score?
Indirectly yes. Google Ads Quality Score uses landing page experience as one of three components, and landing page experience is informed by CWV among other signals. A Shopify case study I reference shows CPC dropped 12% on Google Ads after INP went from 450 milliseconds to 48 milliseconds, attributed to Quality Score lift. The effect is not linear and is hard to isolate, but on competitive keywords a slow landing page can cost you 10 to 25% more per click than a fast one.
Will TTFB become a Core Web Vital in 2027?
Google has hinted at it but not committed. TTFB (Time to First Byte) is currently a diagnostic metric with a Good threshold of 800 milliseconds. Engineering best practice in 2026 is to target under 200 milliseconds. TTFB feeds directly into LCP, so improving TTFB usually improves LCP. The 2027 prediction is informed speculation, not official. The right move is to optimize TTFB now regardless because the LCP and overall responsiveness payoff is immediate.
Frequently asked questions
What are the Core Web Vitals in 2026?
What changed in Core Web Vitals in 2026?
Are Core Web Vitals a ranking factor?
What is LCP and how do I fix it?
What is INP and how do I fix it?
What is CLS and how do I fix it?
How does Google actually measure Core Web Vitals?
Why does mobile Core Web Vitals matter more than desktop?
What is the difference between PageSpeed Insights and Search Console Core Web Vitals?
Can a Lighthouse score of 95+ still fail Core Web Vitals?
How long until Google notices my Core Web Vitals fixes?
Which stack passes Core Web Vitals most often?
Does Core Web Vitals affect Google Ads quality score?
Will TTFB become a Core Web Vital in 2027?
Want me to do this for you?
Book a free 30-min strategy call. I’ll review your site live and ship 3 specific fixes you can use this week. No pitch.


