Shopify Horizon migration checklist
A working checklist for migrating a Shopify store to Horizon, covering the phases where things actually go wrong.
Free to use, no email required, and structured so you can hand it to whoever is doing the work — including us, or including nobody.
Before you start
Complete these before any building begins. Skipping this phase is the origin of most migration problems.
- Inventory every template, section and snippet in the current theme
- Record how far the theme has drifted from its base version — which files were modified and by how much
- List every app, and record how each is integrated: theme app extension, app embed, hardcoded snippet, or script tag
- Score every app against Horizon — works as-is, needs reconfiguration, needs a vendor update, needs a rebuild, or has no path today
- Map every metafield and metaobject to the templates that reference it
- Enumerate every script injected into theme.liquid, and get a keep, drop or replace decision on each in writing
- Export the full redirect table
- Record every structured data type the current theme emits, tested on live URLs
- Record every tag and event currently firing, with its trigger
- Capture a behavioral baseline across your top templates, states and breakpoints
- Measure current Core Web Vitals, mobile and desktop, median of three runs
- Run an accessibility scan and record the failure count by severity
- Document the business rules that exist only in your team’s heads
- Name one approver for the requirements document, with a turnaround commitment
Before you build
- Requirements document signed off, with an acceptance criterion on every must-have
- Freeze date agreed — the point after which additions become change orders
- Horizon installed as an unpublished theme. Never build on the live theme
- Version control connected, so the work is recoverable
- Architecture decision made: all custom work goes in new files, never in Horizon’s core block and section files
- Any app requiring a vendor update has been raised with that vendor, with a date
- Launch date chosen — Tuesday or Wednesday morning, never Friday
Before you publish
- Every requirement verified against its acceptance criterion
- New build diffed against the behavioral baseline, state by state
- URL structure confirmed identical on every template type
- Structured data validated on a live preview URL of each template type
- Every tag and event verified firing, compared to the pre-migration recording — not eyeballed in preview
- Every app confirmed present and functional, including manually re-embedded ones
- Every metafield reference confirmed rendering
- Core Web Vitals measured and compared to the baseline
- Accessibility rescanned and compared
- Checkout path tested end to end, including discounts, subscriptions and gift cards if applicable
- Account and order-history pages tested
- Every custom template tested — these are the ones most often forgotten
- Tested on real devices, not only in browser emulation
- Merchandising team has used the editor and can do their job in it
- Rollback plan confirmed: previous theme unpublished, unmodified, and one click away
On launch day
- Publish Tuesday or Wednesday morning, in your team’s working hours
- Submit the sitemap and confirm indexing is not blocked
- Spot-check 20 URLs across every template type
- Confirm redirects resolve
- Confirm analytics and tag firing on the live site
- Complete a live purchase, all the way through
- Watch real-time analytics for two hours — conversion rate is the earliest signal something is wrong
- Tell customer support the site changed today, and ask them to flag anything unusual
The first 48 hours
- Monitor 404s. A spike is the first sign a URL structure moved
- Monitor crawl stats and coverage errors in Search Console
- Compare conversion rate to the same period last week
- Compare add-to-cart rate — a drop here points at the product page specifically
- Check console errors on key templates
- Review support tickets for anything site-related
Two weeks later
- Compare rich result appearance to the pre-migration baseline. This is when structured data problems become visible
- Compare organic sessions by template type, not in aggregate — a problem confined to collection pages looks like a small overall dip and is actually a specific, fixable failure
- Recheck Core Web Vitals on field data, which lags lab data
- Ask the merchandising team what they’ve been unable to do
- Log anything discovered that wasn’t in the requirements, so the gap informs the next project
The mistakes that cause most problems
Five errors account for most of what goes wrong, and every one of them is avoidable.
Publish Tuesday or Wednesday morning. You need two full business days with your team available to catch silent regressions before weekend traffic arrives.
Installing Horizon on production and customizing it before publishing produces a half-built draft that behaves unpredictably and can’t be cleanly rolled back. Build on an unpublished duplicate.
Horizon updates frequently. Any customization made inside Horizon’s own block and section files gets overwritten by the next update. Custom work goes in new files.
App blocks and embeds usually re-inject cleanly. Anything installed by editing code does not. More on what breaks →
Both fail silently, and both surface weeks later when the cause is hard to isolate. Scope them at the beginning. More on SEO through a migration →
Frequently asked questions
What should be on a Shopify theme migration checklist?
The essential items are a full inventory of the current theme, app compatibility scored before any building, a behavioral baseline recorded pre-migration, verification of URLs, redirects, structured data and tag firing before publishing, and a monitoring plan for the two weeks after launch.
When is the best day to launch a new Shopify theme?
Tuesday or Wednesday morning. Launching on a Friday leaves silent regressions undiscovered through the weekend, when traffic is high and your team isn’t available.
Should I build a new Shopify theme on my live store?
No. Build on an unpublished duplicate theme. Customizing on production before publishing produces a half-built draft that can’t be cleanly rolled back.
How do I stop Horizon updates from overwriting my customizations?
Never edit Horizon’s core block and section files. Put all custom work in new files. Horizon updates frequently, and updates overwrite core files.
What should I check two weeks after a theme migration?
Rich result appearance compared to the pre-migration baseline, organic sessions segmented by template type, and field-data Core Web Vitals. Structured data and SEO problems surface at roughly this point, not on launch day.
Want the current-state half of this done for you?
A five-day Readiness Audit produces the inventory, the app compatibility register, the baselines and the scores — the entire “before you start” section, in writing. $2,500, credited in full against a migration.
Or start with a free scorecard — speed, accessibility and technical SEO, benchmarked against three competitors you name.








