I scraped 10,000+ Shopify stores. Here are the most used themes, apps, and average speed scores

Disclaimer: this post was not AI generated. It’s a genuine research that I’d like to share with the community and hopefully bring some value.

Disclaimer 2: The software I coded for this is open-source and publicly available*. I won’t share any links to my Github repo as I assume it’s against the rules. If mods do allow, I will update the post.*

Hi,

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 and 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 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 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. I have customers running 5 tracking apps at once with 97 score on mobile.

Any developer specialized in optimization can lazy-load the apps and ensure they are not loaded before the site, but it does always require a tailored approach for each store.

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.

Happy to answer any questions about the methodology or the data in the comments.

21 Likes

Hats off for the effort you put into this.

3 Likes

wow this is really insightful, such dedicated work from you :clap:

3 Likes

Bravo @diego_ezfy, that’s a lot of work done and some really good stats collected and (!!!) made public.

Of course, share links to your data, etc.

The most appalling fact here is that the bunch of most impacting apps do not need to load early at all and can safely delay the majority of their code, like Afterpay, Klarna, etc, most review and tracking apps.

This means Shopify is not hard enough on the app developers.

3 Likes

Meant to give this a thumbs up but I guess the mods still think editing a post is ok (still records the edits) but God forbid changing an emoji..

Anyway, hope you got paid for this.. probably something Shopify should be working on and publishing quarterly, as they already have all the data.

It’s interesting that it’s standard and so highly sought.. I check my competition (huge name in the industry) on Pagespeed frequently. Atrocious GSI scores (under 50 on both mobile and desktop), yet the site functions and reacts fine. I personally think it’s not that big of a deal, as long as it doesn’t disrupt the experience too much.

1 Like

Wow I’m blown away by the dedication on show here @diego_ezfy I made a lot of interesting observations already, but I think I’ll need to go over this a few more times because of the sheer amount of information on display​:sweat_smile:

1 Like

Thank you, Tim!

Absolutely, there is just a bit of cleaning up to do (for privacy reasons, I can’t share all the stores in the document, but I’ll certainly share the software I did + the CSV with the data acquired without the store, including apps found, theme names, etc).

Yes, I do believe the vast majority of app developers do have good intention and build with performance in mind, but it’s tough to control that when the scripts are automatically injected in the .

I may be wrong (please do let me know if so), but I don’t think it’s possible to control where the is going to be injected in the app when you’re developing it. “Theme App Extensions” inject the scripts by default either in or , I can not recall.

One alternative would be requesting access to POST to the user’s theme (which requires Shopify authorization nowadays), and inject the in the user’s theme, but this opens room for different concerns (for example, if the user deletes the app, then they’d have to manually remove the script as well).

In general, for app devs, I’d advise to wrap the code around something like this to guarantee it’s loaded only after page load:


window.myapp = window.myapp || {};

myapp = (function () {
  function start() {
    console.log("Hello!");
  }

  return {
    init: function () {
      document.addEventListener("DOMContentLoaded", function () {
  
      });


      window.addEventListener("load", function () {
	        start();
	  });

  
    },
  };
})();

myapp.init();
2 Likes

Haha, all good! Thank you for the kind words.

As far as I am aware, there is only one study Shopify did regarding its stores’ performance (Shopify stores are the fastest in the world—and that has a big impact on conversion - Shopify), but I wasn’t able to find any detailed data on this. Eventually I do plan to extend the research to 100k stores to see what type of data I can get, I’m very curious.

I agree with you. I think it boils down to where the store currently is at: if you’re a big store having daily sales, that is not a major concern. For example, popular stores like Gymshark may not have the best scores, but they’re already popular enough, there is no need for that.

However, for any store that is still building their SEO, performance is a game changer in my opinion. It won’t do miracles: if you’re selling a product that has no public interest, a speedy store won’t fix that that. But, if you’re selling a product that does have public interest and the website does not load properly, it’s a problem.

In general, I’d just personally advise to avoid that zone of 60 and below, especially on mobile, since that is where most people come from nowadays. Other than that, you’re probably gonna be fine in terms of performance.

1 Like

Thank you for reading it!

For sure - I did want to make it as thorough as possible on purpose, haha. In the near future I am planning to do an experiment with a larger dataset, I hope it doesn’t become a book instead of a post :joy:

1 Like

eally solid work on this. I build Shopify apps and the analytics tools section hit close to home. As an app developer you’re always balancing between loading scripts early (so tracking is accurate) vs loading them late (so the store stays fast). Most merchants don’t realize that tradeoff even exists.

The 35-point gap between zero apps and 10+ apps is wild but not surprising. What I’m curious about though is whether you saw any pattern between speed score and how old the store is. Like do stores that have been around for years tend to accumulate more apps and get slower over time, or is it more about the initial setup choices?

Also the fact that 97.93% of stores run GA4 but most still score poorly on mobile tells me the real issue isn’t individual apps, it’s that nobody audits what’s running on their storefront after the initial setup. Things just pile up.

Excellent work! Thank you!!

2 Likes

Excellent work, Diego. This is one of the most thorough pieces of performance research I’ve seen shared in the community. Analyzing 10k+ stores and running Lighthouse multiple times per store is serious work, and the methodology you outlined makes the results very credible.

What stood out the most is finally seeing quantified evidence for things many Shopify developers have experienced for years, especially the relationship between app count, tracking scripts, and mobile performance. The analytics section was particularly interesting, since many merchants assume tracking tools are “invisible” to performance when in reality they add a lot of blocking scripts.

The theme comparison and the script-count analysis were also very insightful. Really appreciate you taking the time to gather, clean, and share this dataset with the community.

Slash Cart

2 Likes

Thank you so much for sharing both your results and the methodology that you used to do this research. This is so helpful.

3 Likes

I would personally be interested to know how many apps cause a lag and slowdown of a store, than how many apps have been installed…. apps are a constant problem for Shopify stores and I don’t know why Shopify don’t divert the app installation to an external drive to avoid the constant clogg-up and slowdown they cause since Shopify misses many features and users rely on apps to make some stores function.

1 Like

This is incredible work and thank you for sharing these insights. What you have provided here is a well-organized and comprehensive reference highlighting the impact of apps on theme performance. We’ve been tracking performance metrics in our own store investigation into a related issue and may I ask a question?

  • Did your study account for or identify any variance by theme version? In the issue we’re investigating, the older the theme version (identified by UNIX timestamp), the worse the manifestation of the issue. The issue also varies by theme, but so far we’ve noticed theme age/version is consistent with the level of severity across the tested themes.

Until seeing this today, we’ve had no frame of reference for the performance value variation we’ve observed between themes, or a way to measure that against the problem we are trying to solve. Thank you again for sharing!

2 Likes

@diego_ezfy Amazing, thank you so much. @umairdev @rizwan02 Please check that.

3 Likes

I’m amazed that the Horizon number is so small!

I appreciate it!

do stores that have been around for years tend to accumulate more apps and get slower over time, or is it more about the initial setup choices?

I don’t have enough data to answer that with accuracy, but what I can confirm is that with the bad combo, you can immediately slow down your store. All it takes is installing the wrong apps or adding custom code that you’re not too aware of what it does.

For example, many page/section builders (if not all) will mindlessly install jQuery, Swiper and other libraries multiple times without taking into account performance. Even though the script is cached, when loaded over and over again, it will still take an aggressive impact on speed.

However, it’s important to clarify one can still have a store with apps that is fast enough. Uninstalling all apps to have a faster store is not necessarily the best route - some apps are still crucial for business, especially tracking apps like GA.

With that being said, performance is not something that is achieved out of the box, nor is it something one fixes with more apps (image optimization apps, “boosting” apps, etc). In my experience, these will actually drag it down further.

It does take a good professional specialized in performance optimization to organize, plan and execute a proper performance boost, but it’s most definitely doable in 99% of the cases.

Thanks! I’m happy to hear it’s useful, I hope this data can help fellow developers and merchants out there.

This data is available in the post: stores with zero apps averaged 74 score on mobile, on PSI (PageSpeed Insights). Stores with 10+ apps averaged 39. a 35 point difference.

I think that apps can be a double edged sword - they’re important, however, one needs to be mindful of their impact. It’s kinda like medicine: you need the right amount, don’t go overboard!

the intent of the research was to bring evidence to the table, not to avoid using apps.

I do think it’s important to use apps, but bearing in mind that they can have real effects on one’s store.

It’s still possible to use apps and have a store that is fast enough.