TL;DR: Horizon is now Shopify's flagship free theme and one of the most installed themes on the platform. Real-user data from September 2026 shows it loads fast (96.7% of stores pass LCP) and holds layout well (96.8% pass CLS), but only 89.3% pass Interaction to Next Paint, and on mobile the INP pass rate drops to roughly 72%. That single metric is why Horizon trails Dawn on overall Core Web Vitals. This guide explains where the gap comes from and how to close it.
In this guide
- Shopify Horizon theme performance by the numbers
- Horizon vs Dawn: where the two themes differ
- Why INP is the Horizon weak spot
- What merchants add on top of the theme
- A fix plan for Horizon stores
- How to measure improvement the right way
- Frequently asked questions
Shopify introduced Horizon in 2025 as the successor foundation to Dawn: a component-driven theme built on theme blocks, with a wider set of presets and a design system that looks far more premium out of the box. Adoption has been fast. Theme Vitals counted more than 27,000 mobile origins running Horizon in August 2026, up from roughly 14,000 in March, and estimates it as the second most popular Shopify theme on mobile with about 4.3% market share.
That growth means a lot of brands are now asking the same question: is Shopify Horizon theme performance good enough to protect conversion rate, or does the new foundation carry hidden costs? The answer, based on two independent real-user datasets, is that Horizon is fast where most themes are fast and weak in the one place that is hardest for merchants to see. Here is what the field data actually says.
Shopify Horizon theme performance by the numbers
Shopify publishes an aggregated Core Web Vitals table for its most popular themes, refreshed weekly from 100% of real storefront events. For each theme it reports the percentage of shops where at least 75% of users experienced a "good" score. The table only counts shops on one of the three most recent theme versions, so the numbers reflect current code rather than stores that never updated.
In the update dated 15 September 2026, Horizon posted the following:
- Largest Contentful Paint (LCP): 96.7% of shops good
- Cumulative Layout Shift (CLS): 96.8% of shops good
- Interaction to Next Paint (INP): 89.3% of shops good
- All three Core Web Vitals passing: 85.3% of shops
For context, the median theme in the same table passes LCP at 96.0%, CLS at 95.1%, and INP at 97.1%, with 87.8% of shops passing all three. Horizon sits above the median on loading and layout stability and nearly eight points below the median on responsiveness. That gap is the whole story.
Theme Vitals, an independent dataset built on Chrome UX Report data and split by device, tells the same story with more resolution. For August 2026, Horizon on desktop earned an A grade with 90.5% of origins passing all Core Web Vitals. On mobile it earned a C: 72.6% passing. The mobile breakdown was 89.0% good LCP, 97.1% good CLS, and 72.3% good INP. Desktop INP was 97.7%. In other words, Horizon's responsiveness problem is almost entirely a mobile problem, and mobile is where most Shopify traffic lives.
Horizon vs Dawn: where the two themes differ
Dawn remains the reference point for Shopify theme speed, and the two themes are close on most metrics. In the September 2026 Shopify table, Dawn posted 97.1% good LCP, 93.2% good CLS, and 96.6% good INP, with 88.5% of shops passing everything. Horizon beats Dawn on layout stability by more than three points, essentially ties on LCP, and loses on INP by more than seven points. The net result is that a Dawn store is a little more likely to pass all three vitals than a Horizon store.
Why does Horizon hold layout better? Its block architecture reserves space more predictably, and its image handling sets dimensions consistently, so fewer late-arriving elements push content around. That is a real advantage on product and collection pages where badges, reviews, and promotional banners often cause shifts on older themes.
Why does it lose on INP? The same richness that makes Horizon look premium also puts more JavaScript on the main thread at the moment a shopper taps. Larger interactive components, more animation, and more event handlers all compete with the browser's ability to paint the next frame after an interaction. Dawn is deliberately sparse; Horizon is deliberately expressive. On a fast desktop the difference is invisible. On a mid-range Android phone it shows up as a half-second delay between tapping "Add to cart" and seeing anything happen.
None of this means Horizon is a bad choice. It means the default trade-off has moved: Horizon buys visual polish with responsiveness budget, and merchants need to give some of that budget back on mobile. If you want a broader view of how each metric maps to revenue, our post on what 100 milliseconds is worth on Shopify breaks down the conversion data.
Why INP is the Horizon weak spot
Interaction to Next Paint measures the delay between a user interaction (tap, click, key press) and the next time the screen visually updates. Google's threshold for "good" is 200 milliseconds or less at the 75th percentile. Unlike LCP, which happens once per page load, INP is sampled across the whole visit, so the worst interactions on the slowest pages define the score. For a deeper primer, see our guide to Interaction to Next Paint.
On Horizon, three patterns account for most of the mobile INP misses we see:
1. Variant and cart interactions doing too much synchronous work. Selecting a variant on a Horizon product page can trigger price updates, image gallery changes, availability checks, and section re-rendering. When those handlers run together on the main thread, the browser cannot paint until they finish. On desktop this takes 40 milliseconds. On a budget phone it can take 400.
2. Long tasks from third-party scripts that were already running. INP is not only about your click handler. If a reviews widget, a chat app, or a tag manager container is executing a 300 millisecond task when the shopper taps, the tap waits in line. Horizon does nothing wrong here, but its own JavaScript footprint leaves less headroom for everyone else's.
3. Animations and transitions attached to interactions. Horizon's polish includes drawer transitions, hover-to-tap gallery effects, and animated reveals. When those are implemented with JavaScript rather than compositor-only CSS, they add main-thread work exactly when INP is being measured.
The version data supports the idea that Shopify is actively working on this. Theme Vitals shows the Horizon install base spread across versions 1.0 through 4.1, with 3.5 and 4.1 the most common in August 2026. Stores on older versions miss out on fixes that later releases already shipped, which is one reason Shopify's own table excludes anything older than the last three versions.
What merchants add on top of the theme
Shopify is explicit that theme code is only one factor in real-user performance. Apps, third-party tags, and custom code added after installation frequently outweigh the base theme. In practice, the Horizon stores that fail mobile INP almost always share a few traits.
They run a dozen or more apps that inject storefront JavaScript, often for features (upsells, countdown timers, size charts) that Horizon's native blocks could cover. They load a tag manager container with tags nobody has audited in a year. They embed multiple font families with several weights each, which delays text rendering and pushes layout work later into the interaction window (our Shopify font optimization guide covers the fix). And they carry custom Liquid sections from a previous theme that were never rebuilt as Horizon blocks.
Each addition is small. Together they consume the responsiveness budget Horizon already spends aggressively. The third-party app audit is the highest-leverage first step for almost any Horizon store, because removing one heavy app can recover more INP headroom than any theme-level tweak.
A fix plan for Horizon stores
The following sequence is ordered by impact per hour of effort. Most stores can complete the first four steps in a week without touching theme code.
Update to the latest Horizon version. Check your theme library in the Shopify admin and pull the newest release. If you have heavy customizations, duplicate the theme, update the copy, and compare Core Web Vitals in preview before publishing.
Audit and remove storefront apps. List every installed app, identify which ones inject JavaScript into the storefront (as opposed to admin-only apps), and remove the ones whose function is now covered by a Horizon block. After uninstalling, check theme.liquid and any app embed blocks for leftover snippets. Shopify's app embed system makes this cleaner than it used to be, but orphaned code is still common.
Clean the tag manager container. Export the container, sort tags by last fired date, and pause anything stale. Move pixels that support it to Shopify's server-side Customer Events (web pixels) so they stop running on the main thread during interactions.
Reduce font weight count. Two families, three weights total, is enough for nearly every brand. Each extra weight is another file that competes for bandwidth and layout time on mobile.
Rebuild legacy sections as blocks. If a developer ported sections from Dawn or a paid theme, have them rebuilt using Horizon's theme block system. Native blocks inherit Horizon's optimized rendering and reserve layout space correctly.
Defer non-critical JavaScript. Anything that does not affect the first interaction (chat, reviews carousel below the fold, exit-intent popups) should load after the page becomes interactive, ideally on a scroll or idle trigger. This is the step where a delivery layer earns its keep: Nostra's Edge Delivery Speed Agent handles script deferral, image optimization, and edge caching automatically across the storefront, so the theme's own JavaScript has the main thread to itself when a shopper taps.
How to measure improvement the right way
The most common mistake after a performance project is judging it with the wrong data. Lighthouse and the Shopify speed score are lab tools: they run on a simulated device, once, with no apps warmed up and no real interactions. They cannot measure INP at all, because INP requires a real user to tap something. If your team is celebrating a higher speed score while Search Console still shows "needs improvement" on mobile, that is why. Our explainer on lab data vs field data covers the distinction in detail.
Use these sources instead:
- Shopify's Web Performance dashboard in the admin, which reports real-user Core Web Vitals by page type, updated daily.
- Google Search Console's Core Web Vitals report, which groups URLs by status and shows exactly which templates fail INP on mobile.
- The Chrome UX Report (CrUX) for your origin, which is the same data Google uses for ranking signals.
- Theme Vitals, to see how your theme's install base is trending and whether a new version has moved the needle.
Give any change 28 days before drawing conclusions. CrUX and Search Console both use a rolling 28-day window, so a fix shipped today reaches full weight in the data about a month later. Track mobile and desktop separately, because Horizon's gap is a mobile gap and a blended number will hide it.
Frequently asked questions
Is the Shopify Horizon theme slower than Dawn?
Not on loading. In Shopify's September 2026 real-user data, Horizon and Dawn are within half a point on Largest Contentful Paint, and Horizon is more than three points better on Cumulative Layout Shift. The difference is Interaction to Next Paint, where Dawn passes on 96.6% of shops and Horizon on 89.3%. That gap is concentrated on mobile.
Why does my Horizon store fail INP on mobile but pass on desktop?
INP measures how quickly the screen updates after a tap. Horizon's interactive components and any apps you have added run more JavaScript per interaction than a sparse theme, and mobile processors are far slower than desktop ones. Theme Vitals data for August 2026 shows 97.7% of Horizon desktop origins passing INP versus 72.3% on mobile. The same code, on a slower device, crosses the 200 millisecond threshold.
Will updating to the latest Horizon version fix Core Web Vitals?
It helps, and it is the cheapest first step. Shopify ships performance fixes in new theme releases, and its published theme table only counts stores on the latest three versions for exactly that reason. But an update cannot remove apps, tags, or custom code you added. Most stores need the update plus a third-party audit to pass mobile INP consistently.
Does a bad Shopify speed score mean Horizon is hurting my SEO?
The speed score is a lab measurement and does not feed Google ranking directly. Google uses real-user Core Web Vitals from the Chrome UX Report as a page experience signal. Check Search Console's Core Web Vitals report for mobile URLs marked "poor" or "needs improvement"; that is the data that matters, and it is where a Horizon INP problem would appear.
How many apps are too many on a Horizon store?
There is no fixed number, because apps vary enormously in weight. A useful rule is that any app injecting JavaScript into every storefront page should justify itself with measurable revenue, and anything Horizon can do natively with a block should be removed. Stores that pass mobile INP comfortably tend to have under ten storefront-injecting apps.
Can an edge delivery platform improve Horizon INP without theme changes?
Yes, within limits. An edge layer can defer and prioritize scripts, optimize and cache images, and serve pages from locations closer to shoppers, which frees main-thread time during interactions. It cannot rewrite a synchronous variant handler inside the theme. In practice, most stores get the majority of their INP recovery from deferring third-party scripts, which is exactly the part an edge platform automates.
Horizon is the theme most new Shopify brands will build on for the next several years, and the data says the foundation is sound. The work is in keeping mobile responsiveness intact as apps, tags, and customizations pile on. If you want to see how your Horizon store performs for real shoppers on real devices, run a free Nostra speed test, or book a demo to see how the Edge Delivery Speed Agent recovers INP headroom across your entire storefront without a theme rebuild.