Go to any Shopify store. Right-click, View Source. You'll find <script> tags from every app they've installed, tracking pixels from every ad platform they use, and a JavaScript object called Shopify.theme that tells you their theme. Store owners don't realize this is public. But it is. <script> Shopify.theme I built a scraper that does this at scale. Puppeteer with stealth plugins, 1,000+ app signatures, 40+ pixel patterns, pointed at 250,133 Shopify stores. I wanted to build StoreInspect, a Shopify intelligence tool, and I needed to know what the ecosystem looked like first. StoreInspect The short version: most stores are empty. How the detection works The scraper loads each store's homepage and checks four things: Script URLs. Most apps inject a <script src="cdn.klaviyo.com/..."> or similar. Match the domain, you've got the app. JavaScript globals. Klaviyo sets window.klaviyo. Gorgias sets window.GorgiasChat. These work even when the script URL is obfuscated. DOM elements. Chat bubbles, review widgets, popup forms. CSS selectors identify the app. Theme App Extension blocks. Shopify injects HTML comments like <!-- BEGIN app block: shopify://apps/klaviyo/blocks/... --> into the page. These map directly to installed apps and are almost impossible to hide. Script URLs. Most apps inject a <script src="cdn.klaviyo.com/..."> or similar. Match the domain, you've got the app. Script URLs. <script src="cdn.klaviyo.com/..."> JavaScript globals. Klaviyo sets window.klaviyo. Gorgias sets window.GorgiasChat. These work even when the script URL is obfuscated. JavaScript globals. window.klaviyo window.GorgiasChat DOM elements. Chat bubbles, review widgets, popup forms. CSS selectors identify the app. DOM elements. Theme App Extension blocks. Shopify injects HTML comments like <!-- BEGIN app block: shopify://apps/klaviyo/blocks/... --> into the page. These map directly to installed apps and are almost impossible to hide. Theme App Extension blocks. <!-- BEGIN app block: shopify://apps/klaviyo/blocks/... --> This only catches client-side stuff. Backend apps (inventory, fulfillment, accounting) don't show up. Every number below is a floor. Half the stores run zero or one app Out of 250,133 stores: Apps Installed Stores % 0 apps 37,885 15.1% 1 app 92,764 37.1% 2 apps 58,028 23.2% 3-5 apps 56,012 22.4% 6-10 apps 5,413 2.2% 11+ apps 32 0.0% Apps Installed Stores % 0 apps 37,885 15.1% 1 app 92,764 37.1% 2 apps 58,028 23.2% 3-5 apps 56,012 22.4% 6-10 apps 5,413 2.2% 11+ apps 32 0.0% Apps Installed Stores % Apps Installed Apps Installed Stores Stores % % 0 apps 37,885 15.1% 0 apps 0 apps 37,885 37,885 15.1% 15.1% 1 app 92,764 37.1% 1 app 1 app 92,764 92,764 37.1% 37.1% 2 apps 58,028 23.2% 2 apps 2 apps 58,028 58,028 23.2% 23.2% 3-5 apps 56,012 22.4% 3-5 apps 3-5 apps 56,012 56,012 22.4% 22.4% 6-10 apps 5,413 2.2% 6-10 apps 6-10 apps 5,413 5,413 2.2% 2.2% 11+ apps 32 0.0% 11+ apps 11+ apps 32 32 0.0% 0.0% That single app on 37% of stores? Almost always Shop Pay, Shopify's own checkout. Strip it out and more than half the ecosystem runs bare Shopify. Average: 1.8 apps per store. Traffic changes things. A store with 1M+ monthly visitors runs 5.8 apps on average. Under 50K visitors? 1.5. Traffic Tier Stores Avg Apps Avg Pixels Under 50K/mo 211,854 1.5 4.0 50K-200K 36,500 3.1 7.9 200K-1M 1,735 4.7 8.6 1M-5M 38 5.8 8.7 5M-20M 7 7.0 11.3 Traffic Tier Stores Avg Apps Avg Pixels Under 50K/mo 211,854 1.5 4.0 50K-200K 36,500 3.1 7.9 200K-1M 1,735 4.7 8.6 1M-5M 38 5.8 8.7 5M-20M 7 7.0 11.3 Traffic Tier Stores Avg Apps Avg Pixels Traffic Tier Traffic Tier Stores Stores Avg Apps Avg Apps Avg Pixels Avg Pixels Under 50K/mo 211,854 1.5 4.0 Under 50K/mo Under 50K/mo 211,854 211,854 1.5 1.5 4.0 4.0 50K-200K 36,500 3.1 7.9 50K-200K 50K-200K 36,500 36,500 3.1 3.1 7.9 7.9 200K-1M 1,735 4.7 8.6 200K-1M 200K-1M 1,735 1,735 4.7 4.7 8.6 8.6 1M-5M 38 5.8 8.7 1M-5M 1M-5M 38 38 5.8 5.8 8.7 8.7 5M-20M 7 7.0 11.3 5M-20M 5M-20M 7 7 7.0 7.0 11.3 11.3 The top apps App Category Stores Adoption Shop Pay Payment 178,028 71.2% Klaviyo Email 55,072 22.0% Mailchimp Email 36,768 14.7% Judge.me Reviews 30,113 12.0% Privy Popup 11,269 4.5% Smile.io Loyalty 11,166 4.5% Loox Reviews 9,724 3.9% Yotpo Reviews 9,370 3.7% Omnisend Email 8,442 3.4% Gorgias Support 5,358 2.1% App Category Stores Adoption Shop Pay Payment 178,028 71.2% Klaviyo Email 55,072 22.0% Mailchimp Email 36,768 14.7% Judge.me Reviews 30,113 12.0% Privy Popup 11,269 4.5% Smile.io Loyalty 11,166 4.5% Loox Reviews 9,724 3.9% Yotpo Reviews 9,370 3.7% Omnisend Email 8,442 3.4% Gorgias Support 5,358 2.1% App Category Stores Adoption App App Category Category Stores Stores Adoption Adoption Shop Pay Payment 178,028 71.2% Shop Pay Shop Pay Payment Payment 178,028 178,028 71.2% 71.2% Klaviyo Email 55,072 22.0% Klaviyo Klaviyo Email Email 55,072 55,072 22.0% 22.0% Mailchimp Email 36,768 14.7% Mailchimp Mailchimp Email Email 36,768 36,768 14.7% 14.7% Judge.me Reviews 30,113 12.0% Judge.me Judge.me Reviews Reviews 30,113 30,113 12.0% 12.0% Privy Popup 11,269 4.5% Privy Privy Popup Popup 11,269 11,269 4.5% 4.5% Smile.io Loyalty 11,166 4.5% Smile.io Smile.io Loyalty Loyalty 11,166 11,166 4.5% 4.5% Loox Reviews 9,724 3.9% Loox Loox Reviews Reviews 9,724 9,724 3.9% 3.9% Yotpo Reviews 9,370 3.7% Yotpo Yotpo Reviews Reviews 9,370 9,370 3.7% 3.7% Omnisend Email 8,442 3.4% Omnisend Omnisend Email Email 8,442 8,442 3.4% 3.4% Gorgias Support 5,358 2.1% Gorgias Gorgias Support Support 5,358 5,358 2.1% 2.1% Klaviyo at 22% is 50% ahead of Mailchimp at 14.7%. That race is over. Judge.me owns reviews at 12%, triple Loox and Yotpo. Gorgias, the app ecommerce Twitter treats as table stakes? 2.1%. That's 5,358 stores out of 250,000. After the top 4, every app is below 5% adoption. If your Shopify app has 5,000 installs, you're in the top 15 of the entire ecosystem. A third of stores skip Google Analytics Pixel Stores Adoption Shopify Web Pixel 247,710 99.0% Google Analytics 4 170,188 68.0% Meta Pixel 114,061 45.6% Google Ads 85,387 34.1% Klaviyo (pixel) 49,529 19.8% TikTok Pixel 24,369 9.7% Hotjar 10,783 4.3% Pixel Stores Adoption Shopify Web Pixel 247,710 99.0% Google Analytics 4 170,188 68.0% Meta Pixel 114,061 45.6% Google Ads 85,387 34.1% Klaviyo (pixel) 49,529 19.8% TikTok Pixel 24,369 9.7% Hotjar 10,783 4.3% Pixel Stores Adoption Pixel Pixel Stores Stores Adoption Adoption Shopify Web Pixel 247,710 99.0% Shopify Web Pixel Shopify Web Pixel 247,710 247,710 99.0% 99.0% Google Analytics 4 170,188 68.0% Google Analytics 4 Google Analytics 4 170,188 170,188 68.0% 68.0% Meta Pixel 114,061 45.6% Meta Pixel Meta Pixel 114,061 114,061 45.6% 45.6% Google Ads 85,387 34.1% Google Ads Google Ads 85,387 85,387 34.1% 34.1% Klaviyo (pixel) 49,529 19.8% Klaviyo (pixel) Klaviyo (pixel) 49,529 49,529 19.8% 19.8% TikTok Pixel 24,369 9.7% TikTok Pixel TikTok Pixel 24,369 24,369 9.7% 9.7% Hotjar 10,783 4.3% Hotjar Hotjar 10,783 10,783 4.3% 4.3% Average: 4.6 pixels per store, 2.5x the app count. Pixels are one script tag and no configuration, so that tracks. GA4 at 68% means 80,000 stores have no Google Analytics. Over half skip Meta Pixel. TikTok Pixel, for all the hype, is under 10%. One in four stores runs a deprecated theme Theme Type Stores Share Dawn Free 31,981 12.8% Debut Free (deprecated) 28,251 11.3% Prestige Paid 8,760 3.5% Impulse Paid 8,731 3.5% Minimal Free (deprecated) 6,880 2.8% Brooklyn Free (deprecated) 5,987 2.4% Theme Type Stores Share Dawn Free 31,981 12.8% Debut Free (deprecated) 28,251 11.3% Prestige Paid 8,760 3.5% Impulse Paid 8,731 3.5% Minimal Free (deprecated) 6,880 2.8% Brooklyn Free (deprecated) 5,987 2.4% Theme Type Stores Share Theme Theme Type Type Stores Stores Share Share Dawn Free 31,981 12.8% Dawn Dawn Free Free 31,981 31,981 12.8% 12.8% Debut Free (deprecated) 28,251 11.3% Debut Debut Free (deprecated) Free (deprecated) 28,251 28,251 11.3% 11.3% Prestige Paid 8,760 3.5% Prestige Prestige Paid Paid 8,760 8,760 3.5% 3.5% Impulse Paid 8,731 3.5% Impulse Impulse Paid Paid 8,731 8,731 3.5% 3.5% Minimal Free (deprecated) 6,880 2.8% Minimal Minimal Free (deprecated) Free (deprecated) 6,880 6,880 2.8% 2.8% Brooklyn Free (deprecated) 5,987 2.4% Brooklyn Brooklyn Free (deprecated) Free (deprecated) 5,987 5,987 2.4% 2.4% Dawn is #1 at 12.8%. Right behind it is Debut at 11.3%, which Shopify deprecated in 2021. Add up all the deprecated themes and you get 58,430 stores, 23.4% of the dataset. These stores are missing years of performance work and the entire Online Store 2.0 feature set. 19% of stores run custom themes ($5,000-50,000+ from an agency). In the 1M+ traffic tier, that number is 80%+. 59% have no email. 78% have no reviews. From our 250K-store breakdown: 250K-store breakdown 59% have no email marketing app. No Klaviyo, no Mailchimp, nothing. 78% have no reviews app. No Judge.me, no Yotpo, no Loox. 107 stores out of 120,000 run a full CRO stack (email + reviews + support + upsell + analytics). That's 0.09%. 59% have no email marketing app. No Klaviyo, no Mailchimp, nothing. 78% have no reviews app. No Judge.me, no Yotpo, no Loox. 107 stores out of 120,000 run a full CRO stack (email + reviews + support + upsell + analytics). That's 0.09%. If you're selling to Shopify merchants, you don't need to beat a competitor. For most stores, you're the first tool in the category they've ever tried. It's not Klaviyo vs. Mailchimp. It's Klaviyo vs. nothing. What I took away from this Shopify has millions of stores. The app store has thousands of apps. The marketing says merchants build sophisticated stacks. The data doesn't back that up. Most stores run zero or one app. Most have no email, no reviews, no support. A quarter sit on deprecated themes. The typical Shopify store is stock Shopify with Google Analytics and maybe a Klaviyo pixel. That's fine. Shopify works out of the box. But for anyone selling apps, services, or agency work into this ecosystem: the market isn't saturated. It's barely started. Full dataset at storeinspect.com/report/state-of-shopify, updated daily. storeinspect.com/report/state-of-shopify I'm Anders, founder of StoreInspect. The detection engine behind this analysis is also a free Chrome extension if you want to try it on individual stores. I'm Anders, founder of StoreInspect. The detection engine behind this analysis is also a free Chrome extension if you want to try it on individual stores. StoreInspect free Chrome extension