Feedback

Shopify speed statistics: 280 websites measured

By Christian Schreiber · Updated

Shopify hosts the shop, the CDN and the checkout, so server response time is rarely the problem. What decides speed on a Shopify store is the theme and, above all, the apps: each review widget, upsell tool, chat bubble and tracking pixel adds JavaScript that runs on every product page.

Causes and fixes: Core Web Vitals for Shopify.

By Core Web Vitals pass rate, Shopify ranks second of six platforms with their own page, behind Drupal, ahead of WordPress. Clearest advantage over all measured websites: Pass all three Core Web Vitals, 59% against 49%. Largest gap: Page weight (median), 6.3 MB against 4.3 MB.

Core Web Vitals on Shopify

59% of the 280 measured Shopify websites pass all three Core Web Vitals with real-user data. Across all measured websites the figure is 49%.

MetricGoodMedianMiddle halfThreshold
LCP 81% 1828 ms 1441 ms – 2244 ms 2500 ms
INP 74% 152 ms 122 ms – 203 ms 200 ms
CLS 80% 0.03 0.01 – 0.07 0.10

Median mobile Lighthouse score: 41. Why lab score and field data diverge is explained in the Website Speed Statistics.

Who runs Shopify in this sample

Shopify sites in this sample are mostly direct-to-consumer brands and retailers, from single-product stores to large catalogues on Shopify Plus. All of them share the same hosting and checkout infrastructure, so differences between them come from the theme, the apps and the media on the page rather than from servers.

How to read your own Shopify values

Because hosting is the same for every store, a slow time to first byte says little about your own setup, and the median is a fair benchmark for any store. Compare your INP with the faster quarter: if you sit well behind it, the gap is almost always on your side of the theme. Product pages usually load more than the home page measured here, so treat these values as a lower bound for your product templates.

Shopify by region

Field data of Shopify websites per region.

RegionWebsitesPass all threeLCP p50INP p50CLS p50
Worldwide 280 59% 1828 ms 152 ms 0.03
DACH 52 71% 1477 ms 141 ms 0.01
United Kingdom 33 76% 1546 ms 143 ms 0.02

From 30 websites per region.

More metrics: TTFB, FCP, TBT and Speed Index

Thresholds and sources: Website Speed Statistics.

MetricSourceGoodShopify medianAll websites medianThreshold
Time to First Byte Field data 82% 579 ms 684 ms 800 ms
First Contentful Paint Field data 76% 1461 ms 1536 ms 1800 ms
Total Blocking Time Lab 15% 917 ms 771 ms 200 ms
Speed Index Lab 1% 10031 ms 8631 ms 3400 ms

Page weight and third-party code

A Shopify home page transfers 6.3 MB at the median, of which 2.1 MB is JavaScript. 99% load third-party code, from a median of five providers.

ProviderShareMain thread (median)
Shopify part of the platform 63% 152 ms
Google Tag Manager 61% 470 ms
Klaviyo 48% 181 ms
Meta (Facebook) 24% 283 ms
Microsoft Clarity 23% 186 ms
OneTrust (Optanon) 11% 140 ms

“Part of the platform”: Lighthouse counts these files as third-party because they load from a domain of the platform itself. They belong to the system and cannot be removed like tracking scripts.

Most common lab findings

FindingShareSaving (median)
Render-blocking resources 97% 5081 ms
Images not properly sized 88% 1839 ms
Unused JavaScript 75% 1350 ms
Unused CSS 66% 300 ms
Images not in next-gen formats 28% 535 ms

Typical Shopify performance bottlenecks

Large hero images and sliders usually set the LCP. Apps are a frequent cause of a slow INP, because their scripts load early and compete with the add-to-cart button for the main thread. Removing an app in the admin does not always remove its code from the theme, so leftover snippets are worth checking after every cleanup.

Related guides: Largest Contentful Paint (LCP) · Interaction to Next Paint (INP) · Reduce unused JavaScript

Shopify by industry in this sample

Other platforms

How does your Shopify site compare?

Run a free test and put your values next to the Shopify median.

Test your website