Migrating to Shopify: The Complete Migration Guide
Migrating to Shopify is one of the highest-impact decisions you can make for your e-commerce business — but it’s also one of the riskiest if done poorly. A botched migration can wipe out years of accumulated SEO equity, break customer accounts, corrupt order history, and cause weeks of downtime. Done right, the same migration sets you up on a faster, more reliable platform with better conversion rates from day one.
This guide covers the complete process: what to migrate, what to leave behind, how to preserve your SEO rankings, and how to execute a clean cutover. We’ve structured it as a real working playbook, not a theoretical overview.
Step 1: Audit Your Current Store Before You Start
Before touching a single setting, document everything about your current store. This audit becomes your migration checklist.
What to Inventory
Products:
- Total product count
- Number of variants per product
- Product image count
- Metafields or custom attributes
- Bundle or subscription products
Customer Data:
- Total customer records
- Whether you need to migrate passwords (you can’t migrate hashed passwords between platforms)
- Customer tags and segments
Order History:
- How many years of order data you need
- Whether order history needs to be accessible in the new admin or just archived
Content:
- Blog posts and static pages
- Page content with embedded images
- Any custom URL structures
Technical:
- All existing URLs (crawl your site with Screaming Frog to get a complete URL list)
- Current domain and DNS configuration
- SSL certificate setup
- Any custom code or integrations
This audit typically takes 2–4 hours for a medium-sized store. Skip it and you’ll spend days chasing down things you forgot to migrate.
Step 2: Set Up Your Shopify Store
Create your Shopify account and configure the basics before migrating any data. You’ll be working in Shopify with the store password-protected during the migration.
Configure:
- Store settings (currency, timezone, address)
- Payment providers
- Shipping zones
- Tax settings
- Your domain (but don’t switch DNS yet)
- Theme (choose and configure your theme before product images arrive so you can test with real data)
Review Shopify’s migration documentation for platform-specific guidance on your source platform.
Step 3: Migrate Products
Products are the largest data migration task. Your options:
Option A: Shopify’s Built-in Store Importer
Shopify has a free Store Importer app that handles migrations from WooCommerce, BigCommerce, Squarespace, and others. For WooCommerce specifically, you export a CSV and the importer maps fields automatically.
Limitations: The Store Importer doesn’t handle custom metafields, complex variants, or image metadata well. It’s a solid starting point but usually requires manual cleanup.
Option B: CSV Import
Shopify accepts a standard product CSV format. If you can export your product data in this format from your current platform, this gives you maximum control over the migration.
Prepare your CSV meticulously:
- Each variant gets its own row
- Image URLs should point to your current live images (Shopify will download them during import)
- Collections are assigned via tags in the CSV
Option C: Third-Party Migration Services
Tools like LitExtension or Cart2Cart automate migrations for complex stores. They handle products, customers, orders, and often some SEO elements. Cost is typically $100–$500 depending on store size.
For stores with 1,000+ products or complex product structures, a specialized migration tool is usually worth the investment over manual CSV work.
Step 4: Migrate Customers
Customer migration is more nuanced than product migration because of password hashing. You cannot migrate customer passwords between platforms — the passwords are hashed using different algorithms and Shopify won’t accept them.
Your options for handling existing customer accounts:
- Send a password reset email after launch — import customers without passwords, then bulk-send a password reset prompt. This is the cleanest approach for most stores.
- Import customers without passwords and let them reset lazily — customers who try to log in will trigger a “forgot password” flow naturally.
Import your customer CSV through Shopify’s admin (Customers > Import). The Shopify customer CSV format requires First Name, Last Name, and Email at minimum.
Step 5: Migrate Order History
If you need order history for customer service, tax records, or analytics purposes, migrate it before launch. There are two approaches:
Import as read-only archive orders using a third-party app. Historical orders won’t affect Shopify’s inventory or analytics, but customer service staff can look up past orders.
Reference your old platform’s admin for historical orders and only run Shopify for new orders. This is simpler to implement but requires keeping your old platform accessible.
Don’t import fake historical orders into Shopify’s live order system — it corrupts your analytics baseline.

Step 6: Migrate Content (Blog Posts and Pages)
Blog posts and static pages require manual migration unless your source platform’s content maps cleanly to Shopify’s format.
For blog posts: Shopify’s blog uses a straightforward structure (title, content, author, tags, published date). You can import blog posts via CSV or third-party app. The harder part is ensuring embedded images are re-uploaded to Shopify’s media library and URLs in the post body are updated.
For static pages (About Us, FAQ, Contact): These are small in number and usually faster to recreate manually than to import. Recreating them lets you audit and improve the content at the same time.
Critical: Keep a complete list of your old blog and page URLs so you can create redirects in Step 7.
Step 7: Set Up 301 Redirects (This Is Critical for SEO)
This is the most important SEO step in the entire migration. Every URL that changes between platforms needs a 301 redirect from the old URL to the new URL.
Common URL Changes in Shopify Migrations
Shopify has a fixed URL structure:
- Products:
/products/[handle] - Collections:
/collections/[handle] - Blog posts:
/blogs/[blog-name]/[post-handle] - Pages:
/pages/[handle]
If your current store uses different URL patterns (e.g., WooCommerce uses /shop/[product-name] or /product-category/[category-name]), every single product and category URL changes.
Creating Redirects in Shopify
Go to Online Store > Navigation > URL Redirects. You can import redirects via CSV — this is essential for any store with more than 20 pages.
Format for the redirect CSV:
Redirect from,Redirect to
/shop/blue-widget,/products/blue-widget
/product-category/widgets,/collections/widgets
Create redirects for every URL that has ever appeared in Google’s index. Use your Screaming Frog crawl from Step 1 as your source list. Moz’s guide to 301 redirects explains why this step is non-negotiable for preserving link equity.
Missing redirects = Google treating your old pages as deleted = ranking drops that can take months to recover from.
Step 8: Configure Analytics and Tracking
Before go-live, ensure tracking is configured correctly:
- Google Analytics 4 — install via Shopify’s Google & YouTube app or via the GA4 tag in your theme’s
theme.liquid - Google Search Console — verify your new domain (if changing) and old domain separately so you can monitor both
- Facebook/Meta Pixel — use the official Facebook & Instagram Shopify app
- Any remarketing pixels — check your old platform for any additional tracking code that needs migrating
Test all tracking before switching DNS by using UTM-tagged URLs and verifying events fire in GA4’s DebugView.
Step 9: Pre-Launch Testing
With everything migrated and your store still password-protected, run a full test:
- Place a test order end-to-end (use a real payment method, then immediately refund)
- Test checkout with each payment method you’ve enabled
- Verify email notifications are firing (order confirmation, shipping notification)
- Test on mobile — at least one iOS and one Android device
- Verify all redirects work correctly with a spot check of 20–30 old URLs
- Confirm Google Analytics is tracking correctly on the test domain
- Test site search with your most common search queries
- Check that all product images loaded correctly
- Verify inventory levels are correct
- Test any discount codes you plan to carry over
Step 10: DNS Cutover and Go-Live
Plan your DNS switch for a low-traffic time (usually Tuesday–Thursday morning is lowest traffic for most B2C stores). DNS changes propagate in 15 minutes to 48 hours depending on TTL settings.
Reduce your DNS TTL 24–48 hours before the switch — set it to 300 seconds (5 minutes). This means if something goes wrong, you can roll back quickly.
Switch your domain’s A record to Shopify’s IP (23.227.38.65) and add the CNAME for www. In Shopify admin, go to Settings > Domains and verify the domain successfully connects.
Immediately after going live:
- Submit your updated sitemap to Google Search Console:
yourdomain.com/sitemap.xml - Request indexing for your homepage and top pages
- Monitor Search Console’s Coverage report daily for the first week
- Check your redirect logs — common for a few redirects to be missed
Step 11: Post-Migration Monitoring
For the first 30 days post-migration, monitor:
- Organic traffic in GA4 — a small dip immediately after migration is normal due to reindexing; a large sustained drop indicates redirect issues
- Search Console Core Web Vitals — ensure your new store is performing well
- Revenue and conversion rate — compare week-over-week against pre-migration baselines
- 404 errors in Search Console — any 404s indicate missing redirects; fix them immediately
A well-executed migration typically sees traffic return to baseline within 4–8 weeks as Google recrawls and reindexes your content.
Migrations are complex enough that most stores benefit from professional help. A missed redirect or misconfigured analytics can cost you months of revenue recovery. CodingGeek’s Shopify development team has executed dozens of platform migrations and can handle your migration from audit through post-launch monitoring — protecting your SEO equity while getting you onto a faster, more capable platform.