Costs · Margins · The business of ecommerce
Merchants search for a single monthly number but the real cost sits inside theme pricing and page speed data that the market already publishes, and this article lays out what that data actually says instead of guessing at hosting fees nobody bills separately.
Most merchants who type “cost of running a shopify store” are hoping for a single monthly figure, something like a utility bill. That number does not exist in any dataset worth trusting, because the real costs are scattered across a one-time theme purchase, a hosting plan billed by Shopify itself, and app subscriptions that vary store to store. What does exist, measured and public, is theme pricing across the market and how those themes perform for real visitors. That is the part of the cost equation this article can actually settle.
Across the combined market ranking of 329 themes, the median price is $300, with the full range running from $100 to $500. That is the number a merchant pays once, at checkout, to license a theme for a store. It does not recur monthly and it does not scale with traffic or order volume. A merchant budgeting for “running” a store should treat this as a setup cost, not a run-rate line item, because nothing in the price sheet data suggests otherwise.
The spread from $100 to $500 is wide enough that theme choice alone can be the single biggest discretionary cost decision a new merchant makes before the store opens. There is no additional cost data here tying price tier to feature count or support level, so the only honest comparison available is price against price.
Core Web Vitals data from CrUX, collected in July 2026 from real visitor traffic rather than a lab run, shows a much wider spread than theme pricing does. On mobile, the median share of a store’s visits passing all Core Web Vitals is 85.5%, based on 247 themes with sufficient data. The best performing theme in the market reaches 98.6%, and the worst sits at 46.1%. That is a 52.5 percentage point gap between the top and bottom of the market, far wider in relative terms than the $400 spread in theme price.
Desktop numbers tell a similar story with a different shape. The median across 199 themes with sufficient desktop data is 86.2%, the best theme hits 99.2%, and the worst falls to 30.3%. The desktop floor is lower than the mobile floor, which means the worst performing themes lose more ground on desktop visits than they do on mobile visits, at least in this dataset.
| Metric | Mobile | Desktop |
|---|---|---|
| Median passing rate | 85.5% | 86.2% |
| Best theme in market | 98.6% | 99.2% |
| Worst theme in market | 46.1% | 30.3% |
| Themes with sufficient data | 247 | 199 |
Speed problems and layout problems often trace back to a specific setting, or the absence of one. In the Dawn theme, checked at commit 258f00f from August 10, 2026, the word “size” shows up in 106 of the theme’s 351 files, but there is no dedicated section anywhere in the codebase controlling a general size setting. That word lives inside CSS assets like base.css, component-article-card.css, component-card.css, and component-cart-items.css, which means it is baked into styling rules rather than exposed as something a merchant can toggle in the theme editor. The same pattern holds for the word “store” in Dawn, which appears in 70 of 351 files but only inside files like .gitignore, LICENSE.md, README.md, and cart-disclosure-modal.js, none of which are settings a merchant touches.
Horizon tells a more useful story because it shows both ends of the spectrum inside one theme. The blocks/accelerated-checkout.liquid block, labeled t:names.accelerated_checkout, ships with zero configurable settings as of commit 8b42ace from August 31, 2026. A merchant cannot adjust that block’s behavior through the editor at all. Compare that to blocks/footer-copyright.liquid, labeled t:names.copyright, which carries five settings: a show_powered_by checkbox, an unlabeled paragraph field, a text_color color picker, a font_size select with five options, and a case select with two options. One block in the same theme offers five points of control while another offers none, and that difference has nothing to do with theme price and everything to do with what the theme’s authors chose to expose.
The market’s rating data spans categories including Art, Auto, Bags, Beauty, Clothing, Electronics, Food and drink, Home, Jewelry & Access., Kids, Pets, Sports, and Toys, with an average rating of 4.53 out of 5 across 308 themes and a median of 23 reviews per theme. None of that data breaks out by category-specific pricing or performance, so a merchant selling in Beauty or Pets cannot pull a category-specific cost figure from this dataset. The rating and review counts describe how much feedback a theme has accumulated across its lifetime, not how much it costs to run month to month.
A merchant trying to budget realistically should treat the $300 median theme price as a one-time line item and look separately at Core Web Vitals data for any theme under consideration, since a 46.1% mobile passing rate on the worst-performing theme in the market can cost more in lost conversions than the $400 gap between the cheapest and priciest theme ever will. Check both numbers, the price and the passing rate, before licensing anything.
Themes are not billed monthly. The market data shows a one-time median price of $300 across 329 themes, with the cheapest sitting at $100 and the priciest at $500. There is no recurring theme fee inside that figure, so the monthly run-rate a merchant asks about depends on hosting plan, apps, and payment processing, none of which appear in the theme price sheet cited here.
Not necessarily, based on the Core Web Vitals dataset. The best performing theme on mobile hit 98.6% of visits passing all Core Web Vitals, while the worst sat at 46.1%, and that spread exists independent of the $100 to $500 price range. Price and passing rate are two separate measurements in this data and nothing here ties them together numerically.
The median across the market is 23 reviews per theme, calculated from the 308 themes with rating data. A theme sitting far below 23 reviews is not automatically bad, but it means less accumulated feedback than half the market, and the average rating across that same set of 308 themes is 4.53 out of 5.
The mobile dataset covers 247 themes with sufficient data and shows a median passing rate of 85.5%, while the desktop dataset covers 199 themes and shows a median of 86.2%. Both come from CrUX data collected in July 2026, meaning real visitor traffic rather than a lab test, and the two datasets have different theme counts because not every theme has enough desktop or mobile traffic recorded to qualify.
Sometimes, and sometimes the setting a merchant is looking for does not exist at all. In the Dawn theme, the word size appears in 106 of 351 files but lives inside stylesheet assets like base.css and component-card.css rather than in any dedicated settings section, so there is no toggle to adjust it directly. That absence is itself a measured fact from the Dawn codebase at commit 258f00f.