← All writing
Craft

Migrating to Shopify: the data traps that cause launch-week panic

Keith Pillay · 24 September 2026 · 3 min read

On a US retail client project I led Shopify migrations and catalogue and content transfers, with the goal of keeping the storefront running smoothly through the move. The technical part of a migration is rarely the hard part. The hard part is what's implicit in the old store.

Here are the traps I plan for, grouped by how late they tend to show up.

1. Redirects: the silent SEO killer

Every URL that earns traffic or search rankings on the old store needs a 301 redirect to its new equivalent. Product handles change, collection structures change, blog URLs change.

  • Export the old site's URLs before you touch anything.
  • Map old to new, and import the redirects into Shopify.
  • After launch, test a sample, and watch for 404s in the first days.

A migration that forgets this can look perfect and still lose search traffic.

2. Customers and passwords

Customer records can generally be imported. Their passwords can't, since password hashes don't transfer between platforms. Plan to invite customers to set up their account again, and tell them in advance so a flood of "I can't log in" doesn't surprise the support team.

Also check which customer fields you really need, and whether marketing consent comes across correctly. Consent is a legal matter, not a data field.

3. Products, variants and options

Different platforms model products differently. Watch for:

  • Option and variant limits. They differ between platforms and have changed over time, so check Shopify's current limits against your most complex product early.
  • Variant-level data: SKUs, barcodes, weights, per-variant images and prices.
  • Inventory across locations.
  • Handles (URL slugs), which affect redirects.
  • Images: broken or tiny images show up now, and if the store is going on Google Shopping, minimum sizes matter. See the 500×500 rule.

Always clean in a spreadsheet before import, then import a small batch first and inspect it.

4. Metafields and custom data

Old stores accumulate custom fields: care instructions, ingredients, size guides, badge flags. These need a home in Shopify, as metafields, or as metaobjects if the content is reusable. Decide the structure first, then migrate. See metafields vs metaobjects.

5. Content nobody remembered

  • Blog posts, with their URLs and images.
  • Static pages: about, delivery, returns, size guides.
  • Navigation structure, and any mega-menus.
  • Redirects the old platform had been quietly serving.
  • Favicons, social images and structured data.

6. The business logic hidden in the old setup

This is where "it looks the same" fails. Check:

  • Shipping rules and rates, per region and weight.
  • Tax settings and which markets you sell in.
  • Discount logic, gift cards, loyalty points, store credit.
  • Third-party integrations: accounting, fulfilment, email, reviews, subscriptions.
  • Order history. Importing past orders is possible with the right tools, but it's often partial. Decide what history customers need access to.

7. Payments and go-live timing

Payment gateways need their own set-up and testing. Plan the cutover so DNS changes happen at a low-traffic time with someone watching, and keep the old store available for a short while in case of rollback.

A migration plan in one list

  1. Audit what the old store does, including implicit behaviour.
  2. Map old to new: fields, URLs, rules.
  3. Clean the data before import.
  4. Import a small batch and inspect.
  5. Import everything, then verify with spot checks and counts.
  6. Test the journey: orders, emails, payments.
  7. Redirect and launch, using a launch checklist.
  8. Monitor for 404s, orders and emails in the first days.

The mindset

Migrations go wrong where people assume the new store will "just do what the old one did". Write down what the old store did. Then prove, item by item, that the new one does it too.

Hiring a senior Shopify developer?

I'm open to remote roles worldwide. Send a message and I'll reply within a day.