I Analyzed 10,000+ Shopify Stores: Most Used Themes, Apps, and The Surprising Truth About Their Speed

I Analyzed 10,000+ Shopify Stores: Most Used Themes, Apps, and The Surprising Truth About Their Speed
Reading Time

I've been working as a Shopify developer for nearly a decade, and it had always been complex to prove that apps take a toll on a Shopify store's performance.

To bring some evidence to the table, I analyzed more than 10k stores and processed publicly available data thoroughly: apps being used, theme and performance data.

Today's post is a way to affirm with evidence two things:

  1. Yes, having apps does slow down your store.

  2. Yes, you can still have a fast store with apps installed (even though it's not a straightforward, "one size fits all" approach).

To prove my point, I took advantage of the ever-so-rising capability of AI (before it's their turn to take advantage of us) to do what would have taken me months manually: I fetched and analyzed precisely 10,205 Shopify stores to try to finally put numbers to what I had been seeing for years.

Before we dive into the juicy data and numbers, I want to explain a tiny bit of the technical side of this and how I collected and cleaned this data to ensure the results were accurate.

Below are some technical details. Skip to "Finally some data" if you don't care about the methodology.

How I found the Shopify stores

All stores in this study were sourced from PublicWWW. It's a search engine, just like Google, that lets you search the web by source code rather than content. Shopify websites have specific pieces of HTML code that make it 100% certain it's a Shopify website, so that's how I found them.

After collecting a large amount of websites, not all of them were valid. I removed all unusable ones: inactive stores, stores that only had the "password" page, stores that didn't have any product updates for more than 3 years.

To check whether a store had a product update, I added a functionality in my software to gather data from the most recently updated products (which is publicly available in every Shopify store, like this: mystore.myshopify.com/products.json).

If the store didn't have any product updates for the past 3 years it's not active enough to be useful for this study, so it was not used.

How I measured speed

After collecting the stores, I started tracking down speed. Google PageSpeed Insights (which I will refer to as PSI from now on) is the industry standard when it comes to detecting speed.

This is what Shopify recommends as well, along with its own speed insights on the dashboard. (source).

PSI is reliable because you can't fake the scores. Plus it's what Google itself uses to rank your website. Having a good score on PSI is always helpful. It ranks from 0 to 100; the higher, the better.

From there, I built a custom algorithm that ran each URL through Google PSI 10 times. Yup, 10 times. (I'm sure I hold a special place in Google's heart after overloading their servers for this). Sometimes you get a lot of discrepancy between the results, so testing each store 10 times, I was able to get a more accurate average score.

I was sending roughly 1k requests per minute spread across a few APIs.

How I identified what apps a given store was using

Once I had the performance data, I proceeded to detect the active theme and identify what scripts were being injected, both in the <body> and <head> tags.

I used AI to find patterns of the scripts on the stores and identify whether the scripts belonged to a specific app: if the same script shows up across more than one store, it's likely an app.

With that information, I'd ask the AI to research that for me, and I was able to track down its name and category.

How consistent is the theme tracking: what if the theme was renamed?

When you rename your theme, it changes a piece of the code in a file named settings_schema.json. There are two pieces of code in this file responsible for naming: "name" and "schema_name". Unless you manually edit this file, you will not rename the "schema_name", which is the name of the theme you're using.

However, even though it's rare, some people do rename it and I would like to prevent that from affecting my data. So I created a script that identifies specific parts of the HTML code of the most popular themes (Dawn, Horizon, Prestige, etc) and, even if you do rename the "schema_name", I'd still be able to detect it most of the time.

I created this script a long time ago for a different purpose, so I just reutilized and updated it for this scenario. For example, the Dawn theme has a very specific <svg> code present in the header. So if you renamed your schema_name to something else, I'd still be able to detect it's likely a Dawn theme.

It's worth mentioning that this double-checking process was not necessary for over 99% of the themes in this study. So, yeah, more like an unnecessary flex than actual helpful code...

Finally some data: the illusion of speed and average real speed of most stores

I've heard many times affirmations along the lines of: "my store is loading pretty much instantly on my end, I don't think we need to optimize it".

Your store will always feel fast to you because of cache: cache is like a memory. It stores all code, data and images so it can load faster on the second visit. PSI measures that first, fresh visit. That is why using it to accurately track speed is critical.

Alright, enough talk; let's take a look at some of the data found in this study and how we can use it to your personal benefit as a Shopify dev, merchant, or both.

Across 10,205 active Shopify stores:

  • the average mobile score was 54 out of 100.
  • Only 1.83% of stores scored 90+.
  • 32.68% scored below 50. (critical state)

For reference, a 90+ score is what is considered perfect. If that sounds rough, it gets worse when you look at what is driving it. 

Average load metrics

Here is how the average Shopify store performed on each one, on both mobile and desktop:

Metric What it measures Mobile avg Desktop avg Google's passing threshold
FCP - First Contentful Paint Time until the first element appears on screen 4.2s 0.84s 1.8s
LCP - Largest Contentful Paint Time until the main content appears on screen 12.3s 2.3s 2.5s
TBT - Total Blocking Time How long the page is unresponsive to clicks and taps 412ms 321ms 200ms
CLS - Cumulative Layout Shift How much the page jumps around while loading 0.09 0.12 0.1
Speed Index How quickly content is visually filled in 7.3s 1.9s 3.4s
TTI - Time to Interactive Time until the page is fully usable 19.2s N/A 3.8s
TTFB - Time to First Byte Time until the server starts responding 17.8ms 16.4ms 800ms

 

A few things worth noting here:

  • Desktop LCP averages 2.3 seconds - just under the 2.5 second passing threshold. Mobile averages 12.3 seconds - nearly 5x over it.
  • TTFB is excellent on both mobile and desktop. Shopify's infrastructure is fast. The problem is not the server, it is everything the browser has to load after the server responds.
  • CLS is actually worse on desktop (0.12) than mobile (0.09), and both are right around the 0.1 threshold. Layout shift is a widespread issue regardless of device.
  • The only metric where most stores are doing well is FCP on desktop (0.84s, well under the 1.8s threshold). Every other mobile metric is failing by a wide margin.
  • TTI on mobile averaging 19.2 seconds means a first-time visitor on a phone is waiting nearly 20 seconds before they can reliably tap a button, add to cart, or interact with anything on your store.

The cost of every app you install

  • The average Shopify store in this dataset had 4.84 apps installed, loading 76 scripts on every single page visit.
  • Stores with no apps averaged 74.84. Stores with 10+ apps averaged 39.17. That is a 35-point difference.
  • The correlation between app count and mobile score was -0.48 - a strong, consistent negative relationship. Every app added carries a measurable cost.
Apps installed Avg mobile score
0 74.84
1-3 61.12
4-6 53.55
7-10 46.88
10+ 39.17
  • 20% of stores loaded more than 100 scripts per page, averaging a mobile score of 43.34.
  • Only 2.05% of stores had zero apps installed.

Individual app impact

The following apps were found to have the biggest impact on speed. The number represents how many points lower the score was, on average, compared to stores that did not have that app installed:

  • Hotjar: -11.5 pts
  • Afterpay: -10.6 pts
  • Klaviyo: -9.5 pts
  • Shogun (page builder): -9.25 pts
  • Klarna: -9.14 pts
  • Privy: -8.96 pts
  • Facebook Pixel: -8.8 pts
  • Yotpo: -7.56 pts
  • PageFly (page builder): -6.32 pts
  • Smile.io: -5.85 pts
  • Loox: -5.82 pts
  • Judge.me: -5.48 pts
  • Omnisend: -4.45 pts
  • Stores using page builders averaged 47.34 vs 55.38 for stores without one (a difference of 8 points).
  • Stores with a GDPR or cookie consent app averaged 46.63 vs 55.18 without (a difference of 8.55 points).
  • Stores with a live chat app averaged 45.04 on mobile, compared to the dataset average of 54.77.
  • Stores with a BNPL app (Afterpay, Klarna, Sezzle) averaged 45.11 on mobile, also compared to the dataset average of 54.77.

Important note: some page builders are not in this list since they do not inject <script> tags in the theme, but still inject sections which is equally damaging for your store's performance. (Sections Store, GemPages, etc).

The trap of analytics apps (Google Analytics, Facebook Pixel, etc)

This one caught me somewhat off guard, even though I had a hunch. Most people would expect analytics tools to be neutral: they just collect data, they do not change what the customer sees.

But the truth is that every analytics tool you add injects scripts that the browser has to load before your page is fully interactive. And the data shows it clearly.

The more tracking tools a store had installed, the lower the score - without exception:

  • 0 analytics tools: avg mobile score 74.71
  • 1 analytics tool: avg mobile score 60.4
  • 2 analytics tools: avg mobile score 53.9
  • 3 or more analytics tools: avg mobile score 44.56

To be even more specific, most stores running ads will have at minimum:

  • Google Analytics 4 - to track traffic and conversions. Found in 9,994 stores (97.93% of the dataset), averaging a mobile score of 54.35.
  • Facebook Pixel - to track ad conversions and build audiences. Found in 5,746 stores (56.31%), averaging a mobile score of 50.93. A drop of ~9 points compared to stores without it.
  • Google Tag Manager - often installed to "manage tags in one place", but in practice used to load even more scripts on top. Found in 1,411 stores (13.83%), averaging a mobile score of 44.42.
  • Hotjar - to record sessions and heatmaps. Found in 537 stores (5.26%), averaging a mobile score of 43.91. A drop of 11.5 points compared to stores without it.
  • Microsoft Clarity - similar to Hotjar, session recording and heatmaps. Found in 696 stores (6.82%), averaging a mobile score of 42.09. One of the lowest averages of any single tool in the dataset.
  • TikTok Pixel, Pinterest Tag, Microsoft Ads - one for each ad platform you run. Each one fires a separate script on every page visit. There was not enough data on these to reach any relevant conclusions.

Before you have installed a single app, you are already at 4 or 5 analytics scripts loading on every page visit. Each one fires independently, each one takes time, and your customer waits for all of them before your page is fully usable.

However, it's not about not using tracking apps. For example, this customer of mine uses 5 tracking apps and still scores 97 on mobile.

This is because you can have a tailored setup for your store and load the scripts in the right order instead of giving them maximum priority, as is usually done by default.

Does your theme matter?

It does. Your theme is the foundation everything else is built on. Before a single app is installed, the theme alone determines how many scripts are loading, how heavy the page is, and what your baseline score looks like. Here is what the data showed:

The best performing themes (average mobile score)

  • Spotlight - 72.32
  • Simple - 66.54
  • Ride - 66.70
  • Studio - 65.17
  • Craft - 64.74
  • Sense - 64.26
  • Venture - 62.23
  • Refresh - 63.78

The pattern is consistent: the best performing theme is Dawn. All of these themes are actually built on top of Dawn with different colors and design. Namely:

  • Refresh
  • Colorblock
  • Taste
  • Ride
  • Studio
  • Crave
  • Origin
  • Spotlight
  • Publisher
  • Sense
  • Craft

Dawn tends to be leaner out of the box, with fewer built-in components and lower average script counts.

The worst performing themes (average mobile score)

  • Gecko - 35.94.
  • Wokiee -39.55.
  • Superstore - 40.42, avg 132 scripts - the highest of any theme in this list.
  • Testament - 42.37
  • Icon - 43.15
  • Vantage - 43.86
  • Empire - 45.85
  • Turbo - 49.75, found in 229 stores. Despite its name, it was one of the heavier themes in the dataset.

Notable mentions

  • Prestige - one of the most popular premium themes with 378 stores. Average mobile score: 55.95, avg 84 scripts, avg 6.31 apps - one of the highest average app counts of any major theme.
  • Horizon - avg mobile score 58.25, but avg 108 scripts - one of the highest script counts relative to its score. Unfortunately not enough data was fetched to disclose more about Horizon's performance and the newest free themes.
  • Debut - one of the vintage free themes with 562 stores still using it. Average mobile score: 59.39, avg 58 scripts. Leaner than most.

Best and worst combination in the entire dataset

  • Best: Dawn with zero apps - avg mobile score 84.47.
  • Worst: Testament with 7 to 10 apps - avg mobile score 28.47.

A 56-point difference between the two extremes.

Most used apps & themes

Beyond speed, here is a look at what most Shopify stores are actually running in 2026.

Most installed apps

  • Google Analytics 4 - 9,994 (97.93%). Pretty much every single store uses it.
  • Facebook Pixel - 5,746 (56.31%)
  • Klaviyo - 2,629 (25.76%)
  • Mailchimp - 2,558 (25.07%)
  • Google Tag Manager - 1,411 (13.83%)
  • Judge.me - 1,372 (13.44%)
  • Yotpo - 1,058 (10.37%)
  • Bold - 995 (9.75%)
  • POWR - 777 (7.61%)
  • Segment - 709 (6.95%)
  • Microsoft Clarity - 696 (6.82%)
  • Privy - 687 (6.73%)
  • Hextom Announcement Bar - 598 (5.86%)
  • Smile.io - 595 (5.83%)
  • Stamped.io - 584 (5.72%)
  • Microsoft Ads (Bing) - 568 (5.57%)
  • Hextom Free Shipping Bar - 566 (5.55%)
  • Hotjar - 537 (5.26%)
  • Google Analytics (Universal) - 503 (4.93%)
  • Customizery - 477 (4.67%)
  • Afterpay - 474 (4.64%)
  • Rebuy - 215 (2.11%)
  • Shogun - 201 (1.97%)
  • Loox - 198 (1.94%)
  • Swym Wishlist Plus - 192 (1.88%)
  • Klarna - 189 (1.85%)
  • PageFly - 187 (1.83%)
  • Omnisend - 182 (1.78%)
  • Attentive - 178 (1.74%)
  • Growave - 174 (1.70%)

Most used themes (number of stores using it)

  • Dawn - 788
  • Debut - 562
  • Prestige - 378
  • Impulse - 345
  • Minimal - 296
  • Symmetry - 248
  • Turbo - 229
  • Supply - 221
  • Venture - 183
  • Pipeline - 176
  • Brooklyn - 166
  • Empire - 143
  • Broadcast - 132
  • Parallax - 129
  • Retina - 123
  • Responsive - 117
  • Motion - 107
  • District - 101
  • Testament - 101
  • Craft - 96
  • Warehouse - 95
  • Simple - 91
  • Flex - 87
  • Focal - 84
  • Blockshop - 83
  • Impact - 83
  • Venue - 76
  • Studio - 72
  • Expanse - 71
  • Ella - 70
  • Refresh - 67
  • Showtime - 66
  • Mobilia - 66
  • Narrative - 66
  • Atlantic - 64
  • Fashionopolism - 64
  • Palo Alto - 62
  • Envy - 62
  • Icon - 61
  • Showcase - 60
  • Boundless - 59
  • Canopy - 57
  • Enterprise - 56
  • Stiletto - 55
  • Flow - 54
  • Vantage - 50
  • Be Yours - 49
  • Pop - 49
  • Horizon - 40
  • Boost - 40
  • New Standard - 37
  • Spotlight - 34
  • Taste - 34
  • Ride - 33
  • Galleria - 31
  • Mr Parker - 30
  • Pacific - 30
  • Reformation - 29
  • Kalles - 26
  • Superstore - 24
  • Minimog - 24
  • Trade - 23
  • Shella - 23
  • Local - 22
  • React - 22
  • Split - 22
  • Radiance - 22
  • Baseline - 22
  • Wokiee - 22
  • Crave - 21
  • Expression - 20
  • Kingdom - 20
  • Sleek - 19
  • Alchemy - 19
  • Editions - 19
  • Lorenza - 19
  • Shapes - 13

Conclusion

The data is clear, and it confirms what I had been seeing for years. It also tells a more nuanced story than "apps are bad, delete everything."

And here is the final crunch of numbers for this post:

  • The average mobile score is 54 out of 100. Less than 2% of stores score 90 or above.
  • The average store loads 188 separate requests and 4.9 MB of data on mobile before the page is usable.
  • The average time until the main content appears on mobile is 12.3 seconds. Google's passing threshold is 2.5 seconds.
  • The average time until the page is fully interactive on mobile is 19.2 seconds.
  • 91.78% of stores score lower on mobile than on desktop, with an average gap of 18 points.
  • The best theme and app combination in the dataset averaged 84.47 on mobile. The worst averaged 28.47. A 56-point difference driven entirely by what you choose to install and how it is loaded.

None of this means you need to uninstall your apps. The store I referenced earlier in this post runs 5 tracking apps and scores 97 on mobile. The difference is not what is installed, it is how it is loaded. Most apps are given maximum priority by default, meaning the browser has to fully process them before your customer sees anything. That is a configuration problem, not an app problem.

If you want to know where your store stands right now, I offer a free audit at EzfyCode. No pitch, just your score and what is driving it.

Back to blog