Why upgrades go wrong
Merchants often report the same trouble after switching to a newer theme: custom code that no longer appears, apps that stop working, and layouts that break. It happens because customisations were typed straight into theme files, and apps sometimes inject their code into those files as well, so a fresh theme starts without any of it.
Step 1: make an inventory
List every customisation and every app that touches the storefront: custom sections, edited product templates, added scripts, and any code an app left behind. This list is your checklist for the new theme, and it often shows things you can drop.
To find what has been added by hand, download the theme and compare it with a fresh copy of the same version. Shopify’s command line tool makes this quick.
npm install -g @shopify/cli@latest
shopify theme list
shopify theme pull --liveStep 2: never edit the live theme
Duplicate your current theme and work on the copy, or install the new theme unpublished and preview it. Your live store stays untouched until everything has been checked, and the old theme stays available as an instant way back.
# Upload as a new, unpublished theme
shopify theme push --unpublished --theme "Upgrade test"
# Preview with hot reload at http://127.0.0.1:9292
shopify theme dev
# Catch Liquid and performance mistakes before they go live
shopify theme checkStep 3: prefer app blocks and sections to pasted code
Modern themes let apps and content be added as blocks in the theme editor, with no edits to code. Where an app offers an app block, use it. Where a customisation was pasted into a template, rebuild it as a section, so it moves cleanly with any future theme.
If you build your own section, allow app blocks in its schema so apps can slot in without touching the code.
{% schema %}
{
"name": "Product info",
"blocks": [
{ "type": "@app" }
]
}
{% endschema %}Step 4: keep your changes under version control
Shopify can connect a theme to a GitHub repository, so every change is recorded and can be reverted. That is what makes later updates a matter of merging changes instead of starting again.
Step 5: test, then publish
On the preview, check the home page, a collection, a product with variants, the cart and a full test order on both a phone and a laptop. Confirm your apps and tracking work, then publish at a quiet time and keep the old theme for a couple of weeks.
Common questions
Will I lose my content if I change my Shopify theme?
Products, collections, pages and blog posts are stored in Shopify, not in the theme, so they stay. What can be lost are theme settings, custom sections and code added to the old theme, which is why you list and rebuild them first.
Do my apps work with a new theme?
Apps that use app blocks do. Apps that inserted code into the old theme files need to be reinstalled or reconnected on the new theme, and some older apps are not compatible with newer themes.
How do I test a new Shopify theme without going live?
Upload it as an unpublished theme and use the preview link or shopify theme dev. Visitors keep seeing the live theme until you choose to publish the new one.
Sources
Have a project in mind? I reply within a day or two.