Reporting & research on Shopify and ecommerce
Merchants assume slow storefronts need new settings turned on, but the theme code shows the opposite problem, features that were never built as toggles at all, so the fix is picking a theme whose baseline Core Web Vitals numbers already hold up under real traffic.
Most merchants going into BFCM assume the fix for a slow storefront is a settings panel somewhere, a toggle for animations, a switch for whatever runs before the cart drawer opens, something they can click off in the theme editor and walk away. That toggle usually does not exist. The word might show up in the theme’s files, but it lives in a license notice or a JavaScript function, not in a schema block with a label and a range. Knowing the difference between a real setting and a stray word match is the actual BFCM prep task, and it is smaller and less flexible than most sale-prep checklists suggest.
Dawn, Shopify’s reference theme, contains the word “off” in 78 of its 351 files as of the commit dated 2026-08-10. That sounds like a lot of switches. It is not. Those 78 files include LICENSE.md and README.md, which is just legal boilerplate matching the word, plus assets/animations.js and assets/base.css, which are implementation files, not settings files. There is no dedicated section in Dawn’s settings schema built around an on/off animation control that a merchant can find and click. If you want less motion on a product page before your traffic spikes, you are opening animations.js and editing function logic, which is a developer task, not a merchant task.
The same pattern holds for “before.” It appears in 30 of Dawn’s 351 files, concentrated in assets/base.css, assets/cart-disclosure-tooltip.js, assets/cart.js, and assets/component-article-card.css. Again, this is style and behavior code, not a named setting. A merchant searching the theme editor for something called “before checkout” or “before add to cart” will not find a matching control, because the word’s presence in the codebase is a coincidence of implementation, not a documented feature.
Horizon, the newer Shopify theme, shows the word “off” in 138 of its 484 files, and “before” in 77 of 484, both higher counts than Dawn in absolute terms. The files are also more cart-focused: assets/anchored-popover.js, assets/cart-discount.js, assets/cart-drawer.js, and assets/cart-icon.js all contain “before.” That tells you Horizon’s cart interactions involve more conditional logic than Dawn’s, likely because Horizon supports more cart features out of the box. It does not tell you there is a settings toggle merchants can use to change that behavior without touching code. As of the 8b42ace commit from 2026-08-31, no dedicated settings section for either word exists in Horizon’s schema either.
The honest reading of both codebases is that “turn something off before BFCM” is not a theme-editor action for either Dawn or Horizon. It is a code-editing action, and if your store cannot do that in-house, the setting effectively does not exist for you.
Given that neither of Shopify’s two flagship themes exposes the kind of granular performance toggle merchants look for, the more useful lever going into a high-traffic period is simply picking a theme whose baseline numbers are already strong. Across the market, measured through CrUX field data for July 2026, the median theme passes all Core Web Vitals for 85.5% of mobile visits and 86.2% of desktop visits. But that median hides a wide spread.
| Device | Themes with sufficient data | Median pass rate | Best in market | Worst in market |
|---|---|---|---|---|
| Mobile | 247 | 85.5% | 98.6% | 46.1% |
| Desktop | 199 | 86.2% | 99.2% | 30.3% |
A theme sitting near 46.1% on mobile is failing Core Web Vitals for more than half its real visitors, and no animation toggle or cart-drawer edit closes a gap that size. This is field data from actual shoppers, not a synthetic lab run, so it reflects real devices, real networks, and real page weight during ordinary traffic, before any BFCM spike makes things worse.
Shopify’s Theme Store requirements set a minimum average Lighthouse performance score of 60 across a theme’s product, collection, and home pages, for both desktop and mobile, alongside a minimum accessibility score of 90 across the same pages and devices. A theme only needs to clear a score of 60 to get listed at all. Compare that to the market’s real-world median pass rates of 85.5% on mobile and 86.2% on desktop, and it is clear that store approval is a floor, not evidence of BFCM readiness. Two themes can both pass Theme Store review and differ by tens of points in actual visitor experience.
Pricing and ratings do not settle this either. The median theme price across the market is $300, in a $100 to $500 range, and the average rating is 4.53 out of 5 across 308 themes, with a median of 23 reviews per theme. None of those numbers correlate directly with Core Web Vitals pass rate, since ratings mostly capture design and support satisfaction. UTD’s themes appear in this same general market ranking alongside everyone else, and merchants comparing options can see the full list at themes.shopify.com/themes?q=utd, though the facts here do not show UTD leading on any specific speed metric.
Pick a theme by its measured Core Web Vitals pass rate for the device your traffic actually uses, since that number, not a hidden setting, decides whether your store holds up under BFCM load. If a theme’s own code shows no dedicated toggle for the thing you want to disable, budget for a developer to edit the file directly rather than hunting for a setting that was never built.
There is no dedicated animations settings section in Dawn's code as of the 258f00f commit from 2026-08-10. The word 'off' appears in 78 of its 351 files, but those hits are spread across LICENSE.md, README.md, assets/animations.js, and assets/base.css, not inside a schema block a merchant can flip in the theme editor. If you want to disable specific motion effects, you are editing assets/animations.js directly, not clicking a toggle.
The word 'before' appears in 77 of Horizon's 484 files versus 30 of Dawn's 351 files, and in Horizon those references sit in assets/anchored-popover.js, assets/cart-discount.js, assets/cart-drawer.js, and assets/cart-icon.js, all cart-related JavaScript. Neither theme exposes this as a named setting merchants can search for in settings_schema.json. The difference in file count reflects more cart-interaction code in Horizon, not more merchant control.
Across 247 themes with sufficient mobile data, the median share of visits passing all Core Web Vitals is 85.5%, with the best theme in the market at 98.6% and the worst at 46.1%. On desktop, across 199 themes with enough data, the median is 86.2%, the best is 99.2%, and the worst is 30.3%. Anything sitting well under the median on the traffic device your store actually gets is a real risk during a spike, since this data comes from actual visitor sessions in CrUX for July 2026, not a lab test.
Passing review means the theme scored at least 60 on Lighthouse performance across product, collection, and home pages, for both desktop and mobile, plus at least 90 on accessibility for the same pages and devices. That is a floor, not a target, and it is a lab score rather than a measurement of real visitors. The market's real-world median pass rate of 85.5% on mobile and 86.2% on desktop is a much higher bar than the 60-point Lighthouse minimum, so store review approval alone tells you very little about BFCM readiness.
The market's average rating is 4.53 out of 5 across 308 themes, with a median of 23 reviews per theme, and that rating measures buyer satisfaction with design and support, not page speed under load. Core Web Vitals pass rates, measured separately across 247 mobile-data themes and 199 desktop-data themes, tell you how the theme performs for actual shoppers. A theme can carry a high rating and still sit near the 46.1% mobile floor, so check both numbers, not one.