Magento Core Web Vitals failing? Here's the fix
Magento stores routinely fail Core Web Vitals on mobile — particularly LCP and INP. Failing CWV means Google's mobile-first index ranks you lower than competitors that pass; the SEO cost compounds quarterly.
This post is the diagnostic + fix sequence we use, starting with the Luma optimisation playbook and working up to the architectural fix (Hyvä migration) when the Luma ceiling hits.
The three Core Web Vitals, in plain English
LCP — Largest Contentful Paint: how long until the biggest visible element on the page (usually the hero image or main heading) shows up. Target: under 2.5 seconds on mobile. Magento Luma typical: 4–7 seconds.
INP — Interaction to Next Paint: how long the page takes to respond after the user taps something. Target: under 200ms. Magento Luma typical: 400–900ms (sometimes much worse).
CLS — Cumulative Layout Shift: how much the page jumps around as it loads (fonts swap, images load, banners inject). Target: under 0.1. Magento Luma typical: 0.15–0.40.
Google measures these on real-user data via the Chrome User Experience Report (CrUX). Lab tests (Lighthouse) give you a directional signal; CrUX is what actually ranks you.
How to check your store's CWV status
Three places to look:
1. PageSpeed Insights (pagespeed.web.dev) — shows both lab-test (Lighthouse) and field-data (CrUX) results. The CrUX panel is the one that matters for SEO.
2. Google Search Console → Experience → Core Web Vitals — shows your real-world CWV status across mobile and desktop, with URL groupings (PDPs, PLPs, etc.). This is the definitive source.
3. Lighthouse in Chrome DevTools — useful for diagnosing specific page changes during dev. Less authoritative than CrUX for ranking purposes.
Your goal: get the Search Console CWV report into the "Good" band across all URL groups on mobile.
Common CWV failure patterns on Magento
In rough frequency order:
LCP failing — slow hero image / banner
Cause: large unoptimised hero image, no priority hint, late-loading.
Quick fixes:
- Add
fetchpriority="high"to the LCP image - Serve WebP/AVIF instead of JPEG
- Use responsive
srcsetso mobile gets a mobile-sized image - Preload the LCP image in
Typical Luma lift: -1 to -2 seconds on LCP. Often enough to move from "Poor" (>4s) to "Needs improvement" (2.5–4s); sometimes enough to hit "Good" (<2.5s).
LCP failing — heavy template HTML + slow TTFB
Cause: Magento template generates 200–400KB of HTML, server response time (TTFB) is 800–1500ms.
Fixes:
- Enable full-page cache (Varnish + Magento native cache)
- Move to faster hosting (PHP-FPM tuning, OPCache, Redis session)
- Reduce template HTML weight (limit nested wrappers, prune unused merchandising blocks)
Typical lift: -0.5 to -1.5 seconds on LCP. Real but has a ceiling — Magento Luma templates are structurally heavy.
INP failing — heavy Knockout view models
Cause: every click on a Luma page triggers Knockout view model logic that's slow on mobile.
Fixes:
- Reduce per-page view model count (often impossible without breaking extensions)
- Defer non-critical Knockout initialisation
- Optimise specific slow handlers (mini-cart, address selector)
Typical Luma lift: 100–200ms on INP. Doesn't usually move from "Poor" to "Good" without architectural change.
INP failing — third-party tag drag
Cause: GTM tags, analytics, chat widgets running on main thread during interaction.
Fixes:
- Server-side analytics (Stape, sGTM)
- Defer non-essential tags via GTM trigger conditions
- Audit tag count and remove redundant ones
Typical lift: 100–400ms on INP. Often the single biggest INP win.
CLS failing — fonts and images swapping
Cause: web fonts loading after page render shifts the layout; images without dimensions cause reflow when they load.
Fixes:
font-display: swap+ preload critical fonts- Set
widthandheightattributes on all images (modern browsers reserve space) - Reserve space for ad / banner injection containers
Typical lift: usually moves from "Needs improvement" to "Good" with these three changes.
The CWV diagnostic sequence
For any Magento store failing CWV, work through this:
Step 1: Get the Search Console baseline. Note current status across mobile + desktop for PDP, PLP, search, cart, checkout URL groups.
Step 2: Identify the worst failure. Which metric is failing on which URL group? Focus there first.
Step 3: Run PageSpeed Insights on the worst-failing URL. Check the "Opportunities" and "Diagnostics" panels for specific recommendations.
Step 4: Implement the top 2–3 recommendations. Don't try to fix everything at once. Ship one change, measure, ship the next.
Step 5: Re-measure after 28 days. CrUX data is rolling-28-day; you need ~4 weeks of real-user traffic to see your changes reflected in Search Console.
Step 6: Decide if Luma optimisation has a ceiling. If you've worked through the playbook and you're still failing CWV on mobile, that's the architectural ceiling — see below.
The Luma optimisation ceiling
After implementing the standard Luma perf playbook (critical CSS, font preload, image priority, third-party tag audit, server-side caching), most Magento Luma stores plateau at:
- Mobile Lighthouse Performance: 55–70
- Mobile LCP: 2.5–3.5s (just at or above "Good" threshold)
- Mobile INP: 250–500ms (above "Good" threshold)
- Mobile CLS: 0.05–0.15 (usually achievable in "Good" band)
LCP and CLS are tunable into the Good band on Luma. INP often isn't, because the Knockout view model overhead is structural.
For stores stuck at "Needs improvement" or "Poor" INP after the playbook, the next step is Hyvä migration. That's the architectural fix.
What changes after Hyvä migration
Same metrics, post-Hyvä:
- Mobile Lighthouse Performance: 80–92 (was 30–55, now usually all-green)
- Mobile LCP: 1.5–2.5s (well into "Good" territory)
- Mobile INP: 100–300ms (mostly "Good", occasionally "Needs improvement" depending on third-party tags)
- Mobile CLS: 0.00–0.10 (essentially all-green)
Hyvä migration typically moves a store from "Poor" CWV across the board to "Good" CWV across the board. That's the architectural payoff.
When Luma optimisation is the right answer
Not every store needs Hyvä migration to fix CWV. Stay with Luma optimisation if:
- Your store is small (<£500k annual revenue) and migration cost won't pay back
- You're replatforming off Magento within 12 months
- Your Magento version isn't yet Hyvä-supported
- You're already close to "Good" CWV and just need to push the last 5–10 points
For these cases, the Luma playbook is enough. Spend the £3k–£8k of perf-tuning consulting; get into the Good band; move on.
When Hyvä is the right answer
Migrate when:
- You've spent £5k+ on Luma perf tuning and you're still failing INP on mobile
- Your mobile Lighthouse Performance is stuck under 60 despite the playbook
- You're committed to Magento for the next 24+ months
- You're doing £1M+ revenue (migration cost pays back inside a year)
The architectural cap on Luma is real. Don't keep pouring money into the perf-tuning hole when migration is cheaper.
What about Page Experience signals beyond CWV?
Google's Page Experience signal includes Core Web Vitals plus:
- HTTPS (essentially universal at this point)
- Mobile-friendly design
- No intrusive interstitials
These are usually fine on Magento — modern themes pass, mobile responsive is standard. The CWV piece is what fails most often.
Quick wins to ship this week
If you want to improve CWV without committing to a major project, the four highest-ROI changes:
fetchpriority="high"on the LCP image — 10-minute change, often moves LCP by 1–2 seconds- Image dimensions on all
tags — fixes CLS for image-driven layout shifts font-display: swap— fixes CLS for font-driven shifts- Server-side GTM via Stape — moves analytics off the client main thread, often biggest INP win
Each of these is a half-day to two days of work. Cumulatively they often move CWV from "Poor" to "Needs improvement" or even "Good" without any architectural change.
Next steps
- See Magento slow on mobile? Here's why Hyvä fixes it for the architectural diagnosis
- See Why your Magento Lighthouse score is stuck at 40 for the Luma optimisation playbook
- Book a free Lighthouse audit — we'll diagnose your store and tell you whether Luma tuning or Hyvä migration is right
- Browse the Core Web Vitals glossary entry for the technical primer