My Shopify migration is stuck or incomplete: what should I do?

Is your move to Shopify stuck or incomplete? Learn what to check for products, customers, orders, redirects and SEO, and why to keep the old store running.

Open a support ticket

Moving an online store to Shopify, whether from WooCommerce, Magento, PrestaShop, Wix or another platform, involves much more than copying products. When a migration stops halfway or finishes with gaps, it can leave you with two stores, neither of which is quite complete.

Common situations include:

  • some products are missing, or variants and images did not come across
  • customers were imported, but cannot log in
  • past orders are missing or incomplete
  • old URLs now lead to "page not found"
  • traffic from Google has dropped since the switch
  • features from the old store, such as subscriptions or wholesale prices, no longer exist
  • the import tool stopped with an error and you are not sure what was imported

If this sounds familiar, the most important thing to know is that an incomplete migration can usually be completed or corrected, as long as the original store and its data are still available.

This guide explains what typically goes wrong, how to check what is missing, why redirects and SEO need special attention, what happens to customer accounts and passwords, and why you should not shut down the old store too early.

Why do Shopify migrations get stuck?

A migration means translating data from one system into another. Every platform stores products, customers and orders differently, so some things never transfer one to one.

Data that does not map neatly

For example:

  • products with many variants or options may exceed what Shopify handles in the same way
  • custom fields from the old platform need to be mapped to Shopify metafields
  • product types, tags and categories may need restructuring into collections
  • bundles, composite products or configurable products may have no direct equivalent

Import tools with limits

Shopify's own import options and third-party migration apps each support different data types and platforms. Some handle products and customers well but import orders only partially, or not at all. An import may also stop when it meets data it does not expect, such as an unusual character, a missing required field or an image URL that no longer works.

Large catalogs and long imports

Very large catalogs may be imported in several runs. If one run fails, it can be difficult to tell which records were created and which were not.

Features that depended on plugins

On WooCommerce and similar platforms, many features come from plugins: subscriptions, product add-ons, booking, wholesale pricing, loyalty points, gift cards. These do not migrate automatically. Each one needs a Shopify app or a custom solution, and the related data may need its own migration.

First, find out what was actually imported

Before trying to import anything again, establish what is already in Shopify. Importing again without checking can create duplicate products or customers.

Compare counts

Note the totals on both stores:

  • number of products, and if possible number of variants
  • number of collections or categories
  • number of customers
  • number of orders
  • number of pages and blog posts

Big differences tell you where to look. Small differences are also worth investigating, because they may be specific products or customers that failed for a reason.

Check a sample in detail

Pick a handful of products, including your best sellers and some complex ones, and compare them field by field:

  • title, description and images
  • variants, options and prices
  • SKUs and barcodes
  • stock levels
  • weight and shipping settings
  • SEO title and meta description
  • tags and collection membership

Do the same for a few customers and a few orders.

Look for error reports

Most import tools produce a report or log of failed records. Save it. It often tells you exactly which rows failed and why, which is much faster than finding them by comparison.

What about products, customers and orders?

Products

Missing or incomplete products are usually the easiest to fix. They can be corrected individually, re-imported from a cleaned file or updated in bulk. Pay particular attention to variants, images and inventory, which are the parts most often affected.

Customers

Customer records such as name, email, addresses and marketing consent can usually be imported. Check that marketing consent has been carried over correctly, because sending marketing emails to customers who did not agree to them can create legal and reputational problems.

Orders

Historical orders are often the most difficult part. Depending on the tool, they may be imported fully, partially or not at all. Even when they are imported, they are historical records: they are not connected to the original payments, and refunds for old orders usually need to be handled through the payment provider that took the original payment.

Decide what you actually need from past orders. For some businesses, an archive of the old data is enough. Others need order history in Shopify for customer service, reports or customer accounts.

Why are redirects so important?

When a store moves to Shopify, its URLs usually change. Shopify uses a fixed structure, for example:

  • products under /products/
  • collections under /collections/
  • pages under /pages/
  • blog posts under /blogs/ followed by the blog name

A WooCommerce store, for instance, typically uses different paths for products and categories. Without redirects, every old URL that Google, customers, ads, emails and other websites point to will lead to a "page not found" page.

This can mean:

  • loss of search visibility built up over years
  • customers landing on error pages from bookmarks and old emails
  • broken links in ad campaigns
  • lost value from links on other websites

How redirects help

A redirect tells browsers and search engines that a page has permanently moved to a new address. Shopify lets you create URL redirects in the admin, either one by one or by importing a file.

Redirects should be in place as soon as the new store goes live on your domain, ideally prepared before the switch.

What if the store is already live without redirects?

Add them as soon as possible. Search engines and visitors will start following them once they are in place. The longer old URLs return errors, the more search visibility may be affected, but it is not too late to correct it.

Check Google Search Console for pages reported as not found after the switch. They are a good starting list. See Unknown pages on Google if you are also seeing old or unexpected URLs in search results.

What happens to customer accounts and passwords?

This is one of the most common surprises.

Customer passwords are stored in a protected, encrypted form, and they cannot be transferred from another platform to Shopify. This is a security feature, not a migration error.

Depending on how customer accounts are set up on your Shopify store, customers may:

  • sign in with a one-time code sent to their email, without needing a password
  • need to activate their account or set a new password

Plan how you will tell customers about this. A short, clear email explaining that the store has moved and how to sign in usually prevents confusion and support requests. Never ask customers to send you their passwords.

Which apps replace my old plugins?

Make a list of every feature the old store provided through plugins or custom code, and decide for each one:

  • Does Shopify do this natively?
  • Is there an app that does it well?
  • Does it need a custom solution or integration?
  • Is it actually still needed?

Some features carry data that must be migrated separately, such as:

  • active subscriptions and their payment details
  • gift card balances
  • loyalty points
  • product reviews
  • wholesale customer groups

Active subscriptions need particular care, because recurring payments depend on how payment details are stored by the payment provider. This usually involves the subscription app, the payment provider and sometimes a formal data transfer process. Do not cancel subscriptions on the old platform until the new setup is confirmed.

Integrations with accounting, warehouse, ERP or shipping systems also need to be reconnected and tested.

Why should I keep the old store running?

Until the migration is verified, the old store is your reference copy and your safety net.

Keep it available, even if it is no longer public, so that you can:

  • compare data and fill gaps
  • export records that were missed
  • check old URLs for the redirect list
  • look up past orders and customer history
  • recover settings, texts and images

Avoid canceling hosting, deleting the database or ending the old platform subscription until:

  • products, customers and the orders you need are confirmed
  • redirects are in place and tested
  • payments, shipping and taxes are tested on Shopify
  • integrations are working
  • you have a full backup or export of the old store stored safely

If the old store is still live on your domain, avoid running two live stores that both take orders for too long, because stock and orders can get out of sync.

What should I avoid?

  • Running the same import again without checking. You may create duplicates.
  • Deleting the old store or its hosting early. You may need it later.
  • Switching the domain before redirects are ready. This is when search visibility is most at risk.
  • Forgetting customer communication. Customers who cannot log in may assume something is wrong.
  • Assuming plugins will move across. Each feature needs a decision.
  • Skipping checkout tests. Test payments, shipping rates, taxes and discount codes before launch.

When should I ask for support?

It is worth involving a developer when:

  • the import tool has failed and you cannot tell what was imported
  • orders, subscriptions or gift cards need to be migrated
  • you have a large or complex catalog
  • the store is already live and search traffic has dropped
  • you need to build a large redirect list
  • integrations with other systems need to be reconnected
  • custom functionality from the old store needs to be rebuilt

What information should I collect?

Useful information includes:

  • the old platform and how to access it
  • the migration tool or app used, and any error reports
  • counts of products, customers and orders on both stores
  • examples of records that are missing or incorrect
  • whether the new store is already live on your domain
  • a list of features and plugins from the old store
  • access to Google Search Console, if available

Do not send passwords by email. D4Hub can explain the safest way to grant access.

How D4Hub can help

The aim is to finish the migration properly, without losing data, search visibility or important features.

Depending on the situation, D4Hub can help with:

  • working out exactly what was and was not imported
  • correcting or re-importing products, customers and orders
  • mapping old custom fields to Shopify metafields
  • building and testing the redirect list
  • reviewing search visibility after the switch
  • choosing apps to replace old plugins
  • reconnecting integrations with accounting, warehouse or shipping systems
  • testing checkout, payments, shipping and taxes
  • planning customer communication about accounts
  • advising on when it is safe to retire the old store

You can ask for support at any stage, whether the migration has just stalled or the new store has been live for some time.

Open a support ticket

For hands-on users: verifying a migration

These checks are for users comfortable with exports, spreadsheets and the Shopify admin. Before importing or bulk editing anything, export the current Shopify data so you can compare and recover if needed.

Export both stores

Export products, customers and, where possible, orders from the old platform as CSV files. In Shopify, the products, customers and orders lists in the admin each offer an Export option. Store these files safely: customer and order exports contain personal data.

Compare by a unique key

Use a field that exists in both stores to match records, for example:

  • SKU for products and variants
  • email address for customers
  • order number for orders

In a spreadsheet, compare the two lists and filter for records that appear only in the old store. These are your missing items.

Re-import only what is missing

Create a file containing only the missing records instead of re-importing everything. Shopify's product CSV import has an option to overwrite existing products with the same handle. Leave it off unless you deliberately intend to update existing products, and test with a few rows first.

Build the redirect list

Collect the old URLs from the old store's sitemap, a crawl of the old site or Google Search Console. Match each old URL to the new Shopify URL. Shopify's URL redirect import uses a CSV with two columns:

Redirect from,Redirect to
/product/blue-ceramic-mug/,/products/blue-ceramic-mug
/product-category/mugs/,/collections/mugs
/about-us/,/pages/about-us

The paths above are examples: use the real paths from your old store. Find the URL redirects area by searching "URL redirects" in the Shopify admin search bar, and import a small test file before the full list.

Test the redirects

After importing, open a selection of old URLs in a private browser window and confirm they lead to the right page. Prioritize your most visited pages and those with links from other websites. Check Google Search Console over the following weeks for new "not found" reports.

Test the checkout end to end

Place test orders covering different products, shipping zones, discount codes and payment methods. Check that order confirmation emails arrive, that stock decreases correctly and that orders reach any connected systems.

D4Hub can help you analyze the comparison, prepare redirect files and decide what can safely be imported again.

FAQFrequently asked questions

Only after checking what was already imported. Running a full import again can create duplicate products or customers. It is usually better to identify the missing records and import only those.

Passwords are stored in an encrypted form that cannot be transferred between platforms. Depending on your Shopify customer account settings, customers either sign in with a one-time email code or set up a new password. Tell them clearly before or right after the switch.

Some fluctuation is common after any migration. The biggest risk comes from old URLs that return errors without redirects. Setting up redirects for all important pages, keeping content and SEO titles consistent and monitoring Search Console reduces that risk considerably, although no one can guarantee rankings.

It depends on how you use them. If you need order history for customer service, accounts or reports, importing them may be worthwhile. Otherwise, a secure archive of the old data may be enough. Remember that imported orders are records only and are not linked to the original payments.

When products, customers and needed orders are verified, redirects are live and tested, checkout works, integrations are connected and you have a complete export or backup stored safely. Until then, keep it available.

WooCommerce stores often rely on many plugins for subscriptions, product add-ons, bookings or wholesale pricing. Each needs a Shopify equivalent. WooCommerce URLs also differ from Shopify's, so redirects are essential. If you are moving away from WordPress entirely, keep the old site and database until everything has been verified.