A paid theme should earn its price in more than looks. These are the paid Shopify themes ranked by the real-world Core Web Vitals of the stores actually running each one on mobile, with the number of stores behind every figure.
We rank 84 paid Shopify themes on the real-world Core Web Vitals of the stores actually running each one. Baseline ranks first, passing on 94.6% of its stores, among stores with enough traffic to appear in Chrome UX Report data.
| # | Theme | Ranked by score |
All stores CWV pass (mobile) |
Few apps CWV pass | All stores LCP · INP · CLS |
Demo store real users |
|---|---|---|---|---|---|---|
| 1 | Baseline | 88.4 | 94.6% 103 stores |
94.6% 64 stores | 1.3s · 95ms · 0 | — |
| 2 | Bullet | 84 | 95.1% 42 stores |
100% 27 stores | 1.2s · 106ms · 0 | — |
| 3 | Luxe | 81.5 | 96.2% 27 stores |
— | 1.3s · 111ms · 0 | — |
| 4 | Stretch | 80.9 | 86.3% 203 stores |
94.8% 79 stores | 1.4s · 132ms · 0 | — |
| 5 | Taiga | 77.5 | 90% 43 stores |
— | 1.5s · 132ms · 0 | — |
| 6 | District | 77.4 | 92.9% 28 stores |
— | 1.4s · 130ms · 0 | — |
| 7 | Symmetry | 77.1 | 80.3% 651 stores |
89.3% 248 stores | 1.5s · 136ms · 0 | — |
| 8 | Madrid | 75.9 | 89.2% 40 stores |
92.6% 30 stores | 1.3s · 119ms · 0 | — |
| 9 | Prestige | 75.8 | 77.8% 1,797 stores |
84.4% 684 stores | 1.6s · 130ms · 0 | — |
| 10 | Concept | 75.6 | 79.2% 561 stores |
88% 237 stores | 1.5s · 145ms · 0 | 2.1s LCP fails CWV |
| 11 | Local | 75.5 | 83.5% 112 stores |
90.4% 53 stores | 1.6s · 126ms · 0 | — |
| 12 | Stiletto | 75.5 | 81.1% 221 stores |
87.3% 83 stores | 1.7s · 128ms · 0 | — |
| 13 | Impulse | 74.9 | 77.1% 1,429 stores |
85.6% 563 stores | 1.7s · 126ms · 0.01 | — |
| 14 | Ascent | 73.5 | 89.3% 30 stores |
— | 1.5s · 132ms · 0 | — |
| 15 | Habitat | 73.5 | 86.8% 42 stores |
89.5% 21 stores · limited | 1.4s · 104ms · 0 | — |
| 16 | Split | 72.7 | 88.9% 29 stores |
— | 1.5s · 100ms · 0 | — |
| 17 | Canopy | 72.2 | 82.8% 68 stores |
92.3% 29 stores | 1.7s · 124ms · 0 | — |
| 18 | Broadcast | 72.2 | 75.6% 672 stores |
85.8% 249 stores | 1.5s · 140ms · 0 | — |
| 19 | Enterprise | 71.8 | 76.6% 338 stores |
80.9% 121 stores | 1.6s · 136ms · 0 | — |
| 20 | Sahara | 71 | 84.1% 46 stores |
87.5% 25 stores | 1.6s · 130ms · 0 | — |
| 21 | Sleek | 70.5 | 76.2% 250 stores |
81% 105 stores | 1.8s · 139ms · 0.005 | 4.4s LCP fails CWV |
| 22 | Shapes | 69.6 | 77.4% 134 stores |
91.2% 64 stores | 1.4s · 136ms · 0 | — |
| 23 | Impact | 68.4 | 71.1% 1,094 stores |
76.4% 363 stores | 1.7s · 153ms · 0 | — |
| 24 | Reformation | 68.3 | 74.6% 209 stores |
91.8% 68 stores | 1.6s · 150ms · 0 | — |
| 25 | Athens | 67.9 | 85.2% 28 stores |
— | 1.6s · 125ms · 0 | — |
| 26 | Empire | 65.7 | 71.9% 223 stores |
82.1% 86 stores | 1.8s · 141ms · 0 | — |
| 27 | Focal | 65.2 | 69.4% 498 stores |
79.8% 122 stores | 1.9s · 150ms · 0.01 | — |
| 28 | Streamline | 64.6 | 75.7% 71 stores |
80% 26 stores | 1.5s · 128ms · 0 | — |
| 29 | Eurus | 64.6 | 71.9% 167 stores |
75.7% 47 stores | 1.8s · 144ms · 0.01 | — |
| 30 | Edge | 64.3 | 81.5% 30 stores |
— | 1.8s · 145ms · 0 | — |
| 31 | Zest | 63.8 | 75.9% 61 stores |
87% 26 stores | 1.8s · 120ms · 0 | — |
| 32 | Boost | 63.7 | 75% 70 stores |
84.2% 20 stores · limited | 1.9s · 125ms · 0 | — |
| 33 | Pipeline | 63.5 | 68.8% 309 stores |
77.1% 109 stores | 1.7s · 135ms · 0.01 | — |
| 34 | Release | 63.3 | 72.2% 111 stores |
77.8% 39 stores | 1.6s · 140ms · 0 | — |
| 35 | Icon | 63.2 | 79.4% 34 stores |
— | 1.6s · 113ms · 0 | — |
| 36 | Venue | 62.5 | 72.4% 92 stores |
77.8% 41 stores | 1.9s · 129ms · 0 | — |
| 37 | Combine | 62 | 74.1% 61 stores |
— | 1.8s · 130ms · 0.01 | — |
| 38 | Warehouse | 61 | 66.1% 357 stores |
74% 136 stores | 1.7s · 138ms · 0 | — |
| 39 | Flow | 60.8 | 71.1% 87 stores |
85.3% 38 stores | 1.9s · 131ms · 0.01 | — |
| 40 | Woodstock | 60.5 | 73.6% 54 stores |
— | 1.6s · 148ms · 0.02 | — |
| 41 | Beyond | 60.3 | 76.5% 35 stores |
— | 1.6s · 140ms · 0 | — |
| 42 | Fashionopolism | 59.2 | 75% 37 stores |
— | 1.8s · 130ms · 0.01 | — |
| 43 | Minimalista | 59 | 76.9% 29 stores |
— | 1.5s · 126ms · 0 | — |
| 44 | Aurora | 56.8 | 68.1% 74 stores |
63% 27 stores | 1.9s · 150ms · 0.005 | — |
| 45 | Envy | 56.6 | 70.5% 49 stores |
79% 22 stores · limited | 1.8s · 131ms · 0 | — |
| 46 | Minimog OS 2.0 | 56.5 | 60.9% 485 stores |
64.4% 249 stores | 2.1s · 138ms · 0.03 | 1.6s LCP passes CWV |
| 47 | Shrine PRO | 56.1 | 59.5% 827 stores |
62.1% 394 stores | 1.9s · 158ms · 0 | 1.4s LCP |
| 48 | Expanse | 56 | 62.9% 199 stores |
71.1% 78 stores | 2s · 141ms · 0.01 | — |
| 49 | Ignite | 55.8 | 70.5% 44 stores |
76.2% 21 stores · limited | 1.7s · 160ms · 0 | — |
| 50 | Hyper | 55.4 | 61.9% 226 stores |
70.6% 106 stores | 1.6s · 170ms · 0 | — |
| 51 | Blockshop | 53.7 | 66.1% 62 stores |
73.1% 27 stores | 1.8s · 137ms · 0 | — |
| 52 | Shrine | 53.7 | 62.5% 122 stores |
61.4% 57 stores | 1.9s · 150ms · 0.01 | — |
| 53 | Wonder | 53.7 | 61.8% 147 stores |
61.8% 73 stores | 1.8s · 148ms · 0 | — |
| 54 | Essence | 53.6 | 71.4% 30 stores |
— | 1.5s · 161ms · 0 | — |
| 55 | Motion | 53.5 | 60.1% 217 stores |
60% 64 stores | 2.2s · 129ms · 0.01 | — |
| 56 | Zenith | 53.3 | 71.4% 29 stores |
— | 1.2s · 154ms · 0 | — |
| 57 | Ecomus | 52.2 | 61.1% 123 stores |
65% 68 stores | 1.9s · 172ms · 0 | 1.6s LCP passes CWV |
| 58 | Milano | 51.8 | 65.9% 48 stores |
73.5% 38 stores | 1.7s · 166ms · 0 | — |
| 59 | Cornerstone | 51.6 | 65.2% 52 stores |
68.8% 20 stores · limited | 2s · 166ms · 0 | — |
| 60 | Gecko | 51.6 | 62.7% 78 stores |
76.5% 36 stores | 2s · 158ms · 0.01 | 1.6s LCP passes CWV |
| 61 | Avone | 51.3 | 63.3% 66 stores |
57.6% 38 stores | 2s · 156ms · 0 | 1.6s LCP passes CWV |
| 62 | Vision | 51.3 | 59.6% 142 stores |
58.6% 61 stores | 2.1s · 161ms · 0.01 | — |
| 63 | Unsen | 49.1 | 65.6% 35 stores |
— | 2s · 154ms · 0.01 | 1.6s LCP passes CWV |
| 64 | Honey | 47.1 | 66.7% 25 stores |
— | 1.6s · 146ms · 0.01 | — |
| 65 | Modular | 46.6 | 62.9% 36 stores |
— | 2s · 121ms · 0 | — |
| 66 | Testament | 44.8 | 59.5% 44 stores |
— | 1.8s · 142ms · 0.03 | — |
| 67 | turbo | 44.6 | 52.2% 168 stores |
72.3% 50 stores | 2.1s · 135ms · 0.06 | — |
| 68 | Glozin | 43.6 | 51.3% 159 stores |
56% 106 stores | 1.9s · 182ms · 0 | 1.6s LCP passes CWV |
| 69 | Showcase | 43.3 | 53.3% 94 stores |
72.7% 36 stores | 2.1s · 114ms · 0.01 | — |
| 70 | Pursuit | 42.3 | 60% 30 stores |
— | 1.6s · 114ms · 0.015 | — |
| 71 | Minion | 41.1 | 60% 26 stores |
— | 1.9s · 156ms · 0 | — |
| 72 | Kalles | 40.9 | 44.6% 661 stores |
46.9% 386 stores | 2.2s · 186ms · 0.01 | 1.6s LCP passes CWV |
| 73 | Nimbus | 40.2 | 57.1% 32 stores |
— | 1.9s · 158ms · 0 | — |
| 74 | Yuva | 39.5 | 52.9% 51 stores |
— | 2.3s · 169ms · 0.04 | — |
| 75 | Story | 39.4 | 57.1% 29 stores |
— | 1.8s · 146ms · 0 | — |
| 76 | wokiee | 39.2 | 50.8% 68 stores |
57.5% 41 stores | 2s · 156ms · 0.02 | 1.6s LCP passes CWV |
| 77 | Showtime | 35.8 | 54.6% 25 stores |
— | 1.7s · 114ms · 0.04 | — |
| 78 | Booster | 33.4 | 45% 63 stores |
43.5% 24 stores · limited | 2.2s · 156ms · 0.01 | 1.6s LCP passes CWV |
| 79 | Shella | 33 | 45.8% 52 stores |
42.1% 20 stores · limited | 2.3s · 160ms · 0.04 | 1.6s LCP passes CWV |
| 80 | ella | 27.8 | 31% 739 stores |
31.3% 442 stores | 2.3s · 219ms · 0.02 | 1.6s LCP passes CWV |
| 81 | Umino | 26.3 | 39% 46 stores |
50% 27 stores | 2.3s · 180ms · 0.01 | 1.6s LCP passes CWV |
| 82 | Xclusive | 25.9 | 40.6% 34 stores |
— | 1.6s · 226ms · 0.025 | — |
| 83 | Lumia | 23.7 | 40% 26 stores |
— | 2.1s · 185ms · 0.01 | 1.6s LCP passes CWV |
| 84 | Xtra | 12.8 | 22% 50 stores |
22.9% 35 stores | 1.8s · 225ms · 0.05 | — |
See every theme in the Speed Index, free and paid together, or just the free themes. Whether a free theme would be any slower is a different question, and comparing the two lists will not answer it: paid themes sit on busier stores running more apps. Compared at the same app load, 68.5% of free-theme stores pass Core Web Vitals against 70.1% of paid-theme ones, which is 1.6 points faster on the paid themes: see the free versus paid answer.
What counts as paid: a theme is on this page when the Shopify Theme Store lists a one-time price for it, read from the same price we publish on the theme's own page. Theme prices are a single purchase, not a monthly fee. A theme whose price we do not hold appears on neither the paid nor the free page rather than being guessed into one.
Every number on this page is real-world data from Google's Chrome UX Report, measured on mobile phones: the Core Web Vitals that actual Chrome users experienced on real stores. There is no lab test in the ranking. A theme is ranked by the share of the real stores running it that pass all three Core Web Vitals (loading, responsiveness, and visual stability), adjusted for how many stores sit behind the figure. Reporting a single form factor keeps it comparable row to row, and mobile is where most storefront traffic and the tighter thresholds live.
The "few apps" column is the number no one else can produce. It keeps the same real stores but narrows to those running 6 or fewer apps, so the gap between it and "all stores" is the speed cost of merchant app-bloat, isolated per theme. Because both halves come from the same set of stores, that within-theme comparison holds up even though the overall sample leans toward themes people look up more often.
Where a theme's demo store gets enough real traffic to appear in the Chrome UX Report, we show its own real-user number too, so you can compare the theme as its developer built it against how it performs in merchants' hands. Most demo stores are too low-traffic for this, so that column appears only for the popular ones.
How we rank, and why thin samples do not win: the order accounts for how many stores sit behind each number, not just the raw percentage. A theme passing 92% across 24 stores is measured with far less certainty than one passing 76% across 48,000, so a small sample is held to a more cautious figure and the theme with more data behind it ranks higher. We would rather rank a theme where the number is solid than crown one on a handful of stores. The percentage you see is still the real pass rate; the ordering just reflects how much data supports it.
Coverage limits, stated plainly: a theme needs at least 25 of its stores in the Chrome UX Report before we rank it, so newer or less common themes are left out until then. A store only enters the Chrome UX Report once it has real traffic of its own, which means the stores behind every figure here skew larger than the average Shopify store: the pass rates are what those stores experienced, not what all Shopify stores experience. The comparison between rows still holds, because every row is drawn the same way. The other safeguard is the ranking itself: because we sort by the confidence-adjusted score, a theme measured on a few dozen stores is held to a cautious figure and cannot leapfrog one measured on thousands. The field data also covers every version of a theme still in use, so a theme spanning several major releases is partly measuring its own history, not only its current version.
Independent by design: rankings are determined solely by live detection data. Affiliate relationships never affect what ranks or how stores are counted. Read the full methodology →