What is a good Shopify speed score?
The short answer: above 50 is respectable, above 70 is genuinely good — and the number matters considerably less than most merchants think, because it is a lab average of three pages and Google does not rank on it.
What the number in your admin actually is
Shopify's speed score lives under Online Store → themes. It is a weighted average of Lighthouse performance scores for exactly three pages: your home page, your most-visited product page, and your most-visited collection page.
Three things follow from that, and they explain almost every confused conversation about it:
- It is lab data, not field data. Lighthouse simulates a mid-range device on a throttled connection in a datacentre. It is not a recording of what your customers experienced.
- It is only three URLs. Your cart, your search results and every other product page are not in it. If your revenue depends on a page that is not one of those three, the score is silent about it.
- It updates on Shopify's schedule. Fix something today and the number may not move for days — which is why people conclude their fix did nothing.
So what is a good score?
Shopify's own framing is comparative rather than absolute — it shows how you sit against similar stores. As a practical read: under 30 means something is genuinely wrong and it is usually apps; 30–50 is where a large share of real stores sit; 50–70 is healthy; above 70 is very good for a store with real merchandising on it. A perfect 100 almost always means the page has nothing on it.
Why it disagrees with PageSpeed Insights
Merchants run PageSpeed Insights, get a different number, and reasonably ask which one is lying. Neither is — they measure different things.
| Shopify speed score | PageSpeed Insights | |
|---|---|---|
| Source | Lighthouse lab run | Lab run plus field data (CrUX) when available |
| Scope | 3 pages, averaged | The one URL you entered |
| Device | Shopify's simulated profile | Mobile and desktop, reported separately |
| Freshness | Periodic | On demand |
The field-data section in PageSpeed Insights — the part labelled "Discover what your real users are experiencing" — is the one that matters for ranking. The large coloured score above it is the lab run.
What Google actually ranks on
Not the score. The three Core Web Vitals, at the 75th percentile of real visits.
LCP ≤ 2.5s — when the main content actually appears.
CLS ≤ 0.1 — how much the page moves while it loads.
INP ≤ 200ms — how long it stays frozen after a tap.
Your Lighthouse score can rise while your field LCP does not move at all, and the reverse. Optimising the score rather than the vitals is the most common way to spend a week on nothing.
Worth keeping in proportion: Core Web Vitals are a confirmed but modest ranking signal — a tiebreaker between comparable pages, not a way to outrank a much stronger domain. The stronger argument for fixing them has always been conversion, not position.
What actually moves the number on a Shopify store
- AppsAlmost always the largest single factor. Each injects script into every page, including pages it has nothing to do with. Audit what each costs in milliseconds before deciding what stays.
- ImagesCorrectly sized, modern formats, explicit width and height so nothing reflows when they arrive. Unsized images are the most common cause of layout shift on Shopify.
- FontsTwo weights, not six, with
font-display: swapso text paints immediately in a fallback. We found 130KB of unnecessary font data in our own stylesheet doing exactly this audit. - The theme itselfA marketplace theme ships every feature its author could imagine, including the ones you do not use. There is a floor to what optimisation achieves on top of that.
- Sliders and hero videoUsually the heaviest thing above the fold, and usually the LCP element itself.
How to measure it honestly
Do not audit your home page and call it done — audit the pages that carry your revenue. Run mobile, not desktop. And read the field-data section before the score.
For our own work we drive a real Chrome instance over the debugging protocol against real storefronts on a
throttled mid-range profile, reading LCP and CLS from the browser's own PerformanceObserver — the
same source Google uses. The numbers on our work page came out of that, including a CLS of
zero on all four stores.
Related: the real Built for Shopify performance thresholds, and what a speed engagement actually involves.
Send us your store and we will measure it properly
Real Chrome, real product pages, mobile — with every millisecond attributed to the app or theme file causing it. You get the list whether or not we work together.
Book a call →More guides
Built for Shopify: the real criteria
The performance thresholds Shopify actually publishes, with the myths removed.
Speed & Core Web Vitals
Measured on your real store, then fixed where the numbers point.
All Shopify guides
Written from production work, verified against the documentation.