Switch Shopify Themes Without Losing Your Work

Changing to a different Shopify theme: what carries over, what doesn't, and a step-by-step plan to migrate your content, code, and custom sections safely.

5 min readUpdated

Part of our guide to Update Your Shopify Theme Without Losing Customizations.

Switching to a different theme is a bigger move than updating the same theme, and it is worth being clear about why up front: when you change themes, even your theme-editor settings do not automatically carry over the way they do in a same-theme update. A new theme has its own sections, its own settings, and its own file structure, so both your content and your code need a deliberate migration. This guide is that plan.

It sits under Update your Shopify theme without losing customizations. If you are updating the same theme rather than swapping to a new one, start with does a theme update delete your customizations instead — the rules there are gentler.

Why a theme swap is different from an update

A same-theme update keeps the theme's identity, so Shopify can map your settings from the old version to the new one. A theme swap replaces everything: Theme B does not have Theme A's image-with-text section, its setting ids, or its file names. There is no automatic mapping, because the two themes do not share a structure. So the honest expectation is: plan to re-enter content and re-apply code in the new theme, not to have it appear on its own.

The good news is that nothing is lost as long as you keep the old theme intact while you build the new one.

Step 1 — Keep the old theme live and untouched

Do not publish the new theme yet, and do not delete or edit the old one. Install the new theme from the Theme Store or add it as a draft — it lands in your theme library as unpublished. Your current theme stays live and serving customers. Everything in the next steps happens on the unpublished new theme, so there is no risk to the storefront until you deliberately publish.

Step 2 — Back up the old theme completely

Before you migrate anything, capture the old theme in full so it is a reliable reference. Duplicate it (Themes → ⋯ → Duplicate) and export it (⋯ → Export) for an off-store copy. This is the same routine as the pre-update backup, and it gives you a frozen version of every setting and file to copy from as you build the new theme.

Step 3 — Recreate content in the new theme's editor

Open the new theme in Customize and rebuild your pages using its sections. Work template by template — home, product, collection, blog, pages — and re-enter the content the old theme held: headings, body text, images, buttons, and the order of sections. Where the new theme has an equivalent section, use it; where it does not, note the gap for Step 4.

This is manual, but it is also a chance to use the new theme's layout properly rather than forcing the old design into it. Keep the old theme open in a second tab as your reference.

Step 4 — Port custom code and sections

Now handle anything that lived in files rather than the editor. From your Step 2 backup, identify each custom item and recreate it in the new theme:

  • Custom sections — add the section file to the new theme's sections/ folder. Because setting ids and CSS class names may collide or differ, review the section against the new theme rather than pasting blindly. The clean way to rebuild is in how to create a custom section.
  • Snippets — copy custom snippets/ files over and re-add any {% render %} calls in the new theme's templates.
  • CSS and JS — move added stylesheets and scripts into the new theme's assets/, and re-scope styles to the new markup so they do not fight the new theme's own CSS.
  • Head/script edits — re-insert tracking scripts, meta tags, and custom markup you had added to the old theme.liquid.
# With the Shopify CLI, pull both themes locally and diff the custom files
shopify theme pull --theme <old-theme-id> --path ./old-theme
shopify theme pull --theme <new-theme-id> --path ./new-theme
diff ./old-theme/sections/feature-banner.liquid ./new-theme/sections/feature-banner.liquid

Test each ported piece on the new theme's preview as you go, rather than all at once at the end.

Step 5 — Preview, then publish

Preview the unpublished new theme thoroughly: every template, mobile and desktop, plus cart and checkout entry. Confirm content is complete, custom sections render, styles are clean, and scripts fire. When it is right, publish the new theme. Keep the old theme and your export for a while afterward in case you spot something you missed.

The part that does carry over automatically

Notice which of your custom sections needed the most careful porting in Step 4: the ones that lived in theme files. A section rendered by an app through a Theme App Extension is not part of any theme, so it appears in the new theme's editor the same as it did in the old one — no re-adding the file, no re-scoping CSS. That is the model SectionGuard uses: your sections and their settings follow you across a theme swap because they were never tied to Theme A in the first place.

For most content, a theme swap will always involve some manual rebuilding — that is the nature of two different themes. But the sections you most want to keep can be the ones you do not have to rebuild at all. The trade-offs of file-based versus app-based sections, including what each survives, are in the honest comparison.