How to Update Shopify Theme Safely Without Losing Custom
Table of Contents Hide
Keeping your Shopify theme up to date is one of the smartest things you can do for your online store. Theme updates fix bugs, optimize speed, improve mobile experience, and ensure compatibility with Shopify's latest changes. This directly contributes to higher conversion rates and better SEO performance. In this comprehensive guide, NextSky will show how to update Shopify themes, with a focus on Online Store 2.0 themes, the current standard.
How to update your Shopify theme with 3 methods
Automatic update via Shopify admin
When a new version of your theme is available, Shopify will display a badge or notification in your Online Store → Themes dashboard. This is your signal to act.
Step-by-step:
Method 1: Update directly via Shopify Admin
This is the easiest and safest method for themes purchased/installed directly from the Shopify Theme Store.
- Step 1: In Shopify Admin, go to Online Store → Themes. Select your current live theme, click Actions → Duplicate, and rename the copy to something like “Backup – [Date, e.g., 15Jan2026]” for easy identification and rollback if needed.
- Step 2: On the Themes page, if an update is available, Shopify will display a notification, such as “New version available,” next to your theme.

-
Step 3: Click the update notification and select View release notes to review changes, including:
- New features and enhancements.
- Bug fixes and performance improvements.
-
Step 4: Click Add to theme library. Shopify creates a new unpublished copy (often named “Updated copy of [Theme Name]”). The system automatically handles:
- Editor settings (colours, fonts, sections, blocks, templates, app embeds)
- Non-conflicting custom code (when supported).

Any conflicting code changes will need manual migration.
-
Step 5: Open Review or Customize on the new theme and thoroughly verify:
- Mobile and desktop layouts
- Core pages: home, product, collection, cart, checkout
- App integrations and embeds
- Custom CSS/JS behaviour
- Overall performance (test with tools like Google PageSpeed Insights)
- Step 6: When testing is complete, go to Actions → Publish on the new version. Your previous theme remains in the library as a backup for easy rollback.
Pros:
- Fastest method, minimal manual work
- Shopify handles editor-level customization migration automatically
- Low risk for themes with only editor-based changes
Cons:
- Custom code edits (Liquid, CSS, JS) may not migrate if conflicts exist
- No control over which parts of the update get applied
- Not available for themes outside the Shopify Theme Store
Best for: Themes installed directly from the Shopify Theme Store (Dawn, Debut, Prestige, Impulse, etc.) with minimal or no custom code edits.
Pro tip: Even if Shopify says the update is conflict-free, always open the Customize editor and manually walk through every key page before publishing. Automated migrations are good but not infallible.
Read more
What Is a Shopify Theme? Definition, Features Explained
How to Upload a Theme to Shopify: Step-by-Steps (Updated)
Manual update for third-party or custom themes
This is the method that gives you the most control — and the one most often done wrong. The goal is to transfer your customizations into the new theme version, not overwrite the new version with your old files.
Step-by-step:
Step 1: Back up everything. In Shopify Admin, go to Online Store → Themes → Actions → Download on your current live theme. Save the ZIP file somewhere safe.

Step 2: Download the new theme version. Get the latest ZIP from your theme developer's website, customer portal, or ThemeForest downloads page. Do not upload it yet.
Step 3: Upload the new version. In Online Store → Themes, click Add theme → Upload ZIP file. Upload the new version. It will appear as an unpublished theme.

Step 4: Copy your theme settings.
- In your current live theme, go to Actions → Edit code and open config/settings_data.json.
- Copy the full contents.
- In the new theme's code editor, open the same config/settings_data.json and paste your settings.
- Be cautious: if the new theme version added or removed settings, a full paste might cause conflicts. Compare the two files before overwriting.
Step 5: Re-apply code customizations
This is the most involved step. Open both themes side-by-side (your old code and the new theme files) and identify every file you modified:
- Liquid templates (e.g., product.liquid, cart.liquid, custom sections)
- CSS/SCSS files (custom styles you added)
- JavaScript files (custom scripts, tracking code, third-party integrations)
For each modified file, do not copy-paste your old file wholesale. Instead:
- Use a diff tool (VS Code's built-in diff, Beyond Compare, or a free online diff checker) to compare your old version vs. the new theme's version of that file
- Identify your additions specifically
- Manually port those changes into the new file
Step 6: Test thoroughly
Preview the new theme, test every page, test on mobile, test all app integrations. Use Shopify's Theme Preview mode to share a preview link with teammates before going live.
Step 7: Publish
When confident, publish the updated theme. Keep the old one as a backup.
Pros:
- Full control over what gets migrated
- Works for any theme, from any source
- Prevents update from breaking custom functionality
Cons:
- Time-intensive, especially for heavily customized themes
- Requires familiarity with Liquid, CSS, and basic file diffing
- Higher margin for human error if rushed
Best for: Premium themes from third-party marketplaces (ThemeForest, theme developers' own sites), or any theme where you've made direct edits to Liquid, CSS, or JavaScript files.
Advanced update via Shopify CLI or theme kit ( For developers )
Using git for version control
The core idea: keep your customized theme in a Git repository. When a new version is released, pull the upstream changes and merge them with your customizations using standard branching and conflict resolution.
bash
# Clone your current theme into a local repo (first time setup)
shopify theme pull --store your-store.myshopify.com --theme THEME_ID
# Initialize git and commit your current working state
git init
git add .
git commit -m "Working theme snapshot before update"
# Create a branch for the new version
git checkout -b theme-update-v4.3.0
# Copy in the new theme files (from the developer's ZIP)
# Then stage and review changes
git diff main theme-update-v4.3.0
Git gives you a full diff of every file that changed — so you can see exactly where conflicts exist and resolve them deliberately.
Using Shopify CLI for development workflow
The Shopify CLI (v3+) is the modern replacement for the deprecated Theme Kit. It lets you push, pull, and preview themes directly from your terminal.
bash
# Install Shopify CLI (if not already installed)
npm install -g @shopify/cli @shopify/theme
# Authenticate
shopify auth login --store your-store.myshopify.com
# Pull the current live theme to local
shopify theme pull
# After merging new version files locally, push to an unpublished theme for testing
shopify theme push --unpublished --store your-store.myshopify.com
# Preview the theme via a shareable URL
shopify theme dev
This workflow is particularly powerful when:
- Multiple developers are working on the same theme
- You want a full audit trail of what changed and when
- You're updating themes across multiple client stores systematically
Pros:
- Fully auditable — every change is tracked in version history
- Conflict resolution is clean and deliberate
- Easily reversible — roll back to any previous commit
- Scalable across multiple stores or team members
Cons:
- Requires Git knowledge and CLI comfort
- Initial setup takes time
- Not practical for non-technical store owners
How to update without losing customizations
This section is the most important for anyone who has invested time in customizing their theme. The risk of an update isn't the update itself, it's the failure to properly identify and protect your custom work beforehand.
Step 1: Identify your custom files
Before updating, audit every file you've ever touched. In Shopify's code editor, look for these common locations:
- layout/theme.liquid — global header/footer changes, script tags, tracking pixels
- sections/ — any custom section files you added or modified
- snippets/ — reusable components you've edited
- assets/ — custom CSS files (e.g., custom.css) or JavaScript files
- templates/ — custom page templates for specific landing pages
- config/settings_schema.json — if you added new theme settings
- config/settings_data.json — all your editor-based content
Create a simple checklist. For each file: note what you changed and why.
Step 2: Compare old vs. new theme files
With your list in hand, compare each modified file against the corresponding file in the new theme version. The goal is to answer:
- Did the theme developer also change this file in the new version?
- If yes — what did they change, and does it conflict with my changes?
- If no — can I safely carry my changes straight across?
Tools for diffing:
- VS Code: Open both file versions and use the built-in diff editor (View → Compare Active File With...)
- DiffChecker.com: Paste two file versions and get a clear line-by-line diff in your browser
- Beyond Compare: Professional-grade tool for complex merges
- GitHub/GitLab: If your theme is in a repo, pull requests give you visual diffs automatically
Step 3: Merge Code Carefully (Liquid, CSS, JS)
For each conflicting file, the merge strategy differs slightly:
- Liquid files: Transfer only your custom logic like added if blocks, snippet renders, or section calls into the updated file structure. Don’t assume the layout is unchanged, newer theme versions are often refactored.
- CSS/SCSS: Separate files like custom.css usually migrate cleanly. If you edited core theme styles, compare carefully since variables, classes, or structure may have changed.
- JavaScript: Standalone JS in assets/ is typically safe to move over. Inline JS inside Liquid files needs extra review because DOM structure or event handling may differ in the updated theme.
- Golden rule: Always use the updated theme file as the base and reapply your customizations selectively. Replacing new files with old ones risks losing fixes, optimizations, and new features.
