speed
What's a good Lighthouse score for Shopify? Real benchmarks
A merchant emails me with a screenshot. “Lighthouse says 42. Is that bad?”
The honest answer: it depends. 42 is below average overall, but for an active Shopify store with 20+ apps and a real product catalog, 42 might be the best you can get without surgery on the theme. For a brand-new store with three products and no apps, 42 is alarming.
This is the post I send when someone asks. Real benchmarks, what’s normal, and what’s actually worth chasing.
Sub-post of the Shopify Speed Optimization Guide.
TL;DR
- Mobile Lighthouse is the only one that matters. Don’t celebrate a 95 desktop score.
- For active Shopify stores: 50–70 mobile is the realistic target. Above 70 takes serious work; above 90 means you’ve cut a lot of apps.
- Lighthouse is a lab score — synthetic, single-device, single-network. Real-user data (CrUX in PageSpeed Insights, or Search Console → Core Web Vitals) is what affects rankings.
- Don’t optimize for the score — optimize for the metric. LCP, INP, CLS in the “Good” range on real users is the actual goal.
What Lighthouse actually measures
Lighthouse runs your page in a simulated mobile browser, on a simulated 4G connection, and measures four things rolled up into the Performance score:
- First Contentful Paint (FCP) — first time anything shows up
- Largest Contentful Paint (LCP) — biggest content element painted
- Total Blocking Time (TBT) — how much the main thread is blocked (proxy for INP)
- Cumulative Layout Shift (CLS) — how much stuff jumps around
- Speed Index — visual progress curve
The Performance score is a weighted average. The biggest weights are LCP (25%) and TBT (30%), which is why those are the two metrics speed work usually targets first.
What “good” looks like for Shopify
Lighthouse’s official thresholds are universal — they don’t know you’re on Shopify.
| Score | Lighthouse classification |
|---|---|
| 90–100 | Good |
| 50–89 | Needs improvement |
| 0–49 | Poor |
The reality on Shopify, from the stores I’ve audited:
| Store profile | Typical mobile Lighthouse |
|---|---|
| Brand-new, default Dawn theme, 0 apps | 75–95 |
| Small store, OS 2.0 theme, 5–10 essential apps | 55–75 |
| Active store, themed-up, 15–25 apps, GTM, chat | 35–55 |
| Older OS 1.0 theme, heavy customization | 20–40 |
If you’re in the third bucket and scoring 45, you’re roughly average. If you’re in the same bucket scoring 25, something specific is broken — usually one app or one theme section.
Why the score doesn’t matter (much)
The score is a single number summarizing a complex page load. The trap is optimizing for the score instead of the experience.
Two things to know:
1. The score is variable. Run Lighthouse three times on the same page, you’ll get three different scores — sometimes within ±10 points. The simulated network and CPU throttle introduce variance. Don’t celebrate or panic over single-run swings.
2. The score is lab-only. It doesn’t reflect your actual users on their actual phones with their actual networks. The number Google ranks on is CrUX — the Chrome User Experience Report — which aggregates real Chrome users’ visits over the past 28 days.
Always check both:
- Lighthouse = lab, directional, useful for finding issues
- CrUX (in PageSpeed Insights, top of the report) = field, ranking-relevant, reality
What’s realistic to chase
For a stocked Shopify store, here’s what I’d target — in this order:
- Mobile Lighthouse 50+. Below this, something is genuinely broken; you can usually find it and fix it.
- CrUX “Good” on LCP (< 2.5s mobile). This is the single biggest ranking signal in CWV. Most stores can hit this.
- CrUX “Good” on INP (< 200ms mobile). Harder than LCP — driven by JavaScript work, often from apps. Reaching “Good” usually means cutting or deferring scripts.
- CrUX “Good” on CLS (< 0.1). Easiest of the three — it’s about reserving space for images and ads so the page doesn’t jump.
- Mobile Lighthouse 70+. Possible but takes work. You’re cutting apps, refactoring sections, maybe touching the theme code.
- Mobile Lighthouse 90+. Possible but hard. You’ve removed most apps, optimized every image, self-hosted fonts, stripped third-party scripts. For most active stores, this isn’t worth the trade-off.
What’s not worth chasing
- Desktop Lighthouse 100. Easy to hit, doesn’t matter. Google indexes mobile.
- Lighthouse Best Practices / SEO scores. Often mislabeled as “speed”. They’re separate audits and have separate fixes. Don’t conflate them.
- The score itself, if your CrUX is already “Good”. If real users are having a good experience and Search Console says you’re in the green, the lab score is academic.
- Score parity with competitors. They might have fewer apps, less merchandise, simpler homepages. Apples to oranges.
A simple decision rule
When a merchant asks me whether their score is bad, my answer follows this rule:
If CrUX (real users) is "Good" on all 3 CWV → you're fine, ignore Lighthouse
If CrUX is "Needs Improvement" → Lighthouse score is a useful diagnostic
If CrUX is "Poor" → fix it, regardless of Lighthouse
If CrUX has no data (low traffic) → use Lighthouse as the proxy
For a store with low real-user traffic — say, a new launch — you only have lab data to go on. Run Lighthouse three times, average it, and use that as your baseline.
What to actually do with your number
- Run PageSpeed Insights on three pages: home, a collection, a product. Use mobile.
- Look at CrUX first (top of the report). That’s reality.
- Look at Lighthouse second. Note which Core Web Vital is in red.
- Cross-reference with the diagnostic guide. Most slow stores trace back to one of six causes.
- Fix the biggest one. Re-measure.
If you’re stuck — score is low, you’ve cut what you can, CrUX is still “Needs Improvement” — that’s where a focused speed optimization engagement usually pays for itself. Most engagements move mobile CWV into “Good” within 2–4 weeks.
Want a 5-minute speed read on your store? Book a free intro call. Send your URL beforehand; I’ll run live Lighthouse + CrUX checks and tell you what’s realistic to chase given your stack.
Found this useful? Get in touch or subscribe to the RSS feed .