If you’re seeing 404 errors after migration, the cause is almost always the same: your old platform used one URL structure and Shopify uses another, so every old URL that didn’t get a 301 redirect now returns a “page not found.” Google and every inbound link still point at those old addresses. The fix isn’t to redirect everything to the homepage — it’s to build a complete one-to-one redirect map, prioritized by value, so each old URL lands on its closest Shopify equivalent. Do it well and you keep the rankings, backlinks and referral traffic those pages earned. Skip it and you quietly bleed both.
Why the 404s exist
Different platforms name pages differently. WooCommerce products live at /product/blue-widget/;
Shopify serves them at /products/blue-widget. Magento categories, BigCommerce collections, custom
blog paths, .html suffixes, trailing slashes — none of them survive a platform change unchanged.
When the migration moves your catalog and content into Shopify’s structure, the content comes
across but the addresses change. Any old address a search engine or backlink still knows about now
resolves to nothing, and Shopify returns a 404.
This is normal and expected. What’s not acceptable is leaving it unfixed. A migration without a redirect map is a migration that throws away the equity you spent years building.
Why it matters
A 404 costs you in three ways at once:
- Lost rankings. Google indexed your old URLs. When they 404, the ranking signals tied to them have nowhere to go, and those positions decay. This is the single biggest reason a store’s organic traffic falls off a cliff after a replatform — see Shopify traffic dropped after migration for the wider diagnosis.
- Lost referral traffic and link equity. Every backlink, email, PDF, social post and bookmark pointing at an old URL now sends visitors — and PageRank — into a dead end.
- Poor UX and lost sales. A shopper who clicks a product link and hits “page not found” rarely hunts for the replacement. They leave.
How to find every broken URL
You can’t redirect what you haven’t inventoried. Pull your old URLs from as many sources as you can, then combine and de-duplicate them:
- The old sitemap. If you still have it (or a cached copy via the Wayback Machine), it’s the cleanest full list of pages the old platform published.
- Google Search Console. Under Indexing → Pages, look for the spike in “Not found (404)” and “Crawled – currently not indexed.” The Performance report also shows which old URLs earned clicks and impressions — your highest-value pages.
- Analytics (GA4). Historical landing-page reports show which URLs actually pulled traffic and revenue before the move. Prioritize those.
- Backlink tools (Ahrefs, Semrush, Moz, or Search Console’s Links report). These reveal which old URLs have external links — the ones whose equity you most need to preserve.
- A crawl of the old site. Run Screaming Frog or Sitebliss against a staging copy or archived version to catch internal pages the other sources missed.
Merge everything into one spreadsheet, one row per old URL. That sheet becomes your redirect map.
How to prioritize
You won’t map thousands of URLs by hand overnight, so triage. Rank each old URL by the value it carried, and handle the highest-value ones first:
| Priority | Signal | Why it comes first |
|---|---|---|
| 1 | Backlinks | External links are irreplaceable equity; a 404 wastes every one pointing at that URL. |
| 2 | Organic traffic / rankings | Pages that ranked and pulled clicks lose the most when they die. |
| 3 | Revenue | Product and collection pages that converted are direct sales at risk. |
| 4 | Crawl frequency | URLs Googlebot hits often should resolve cleanly fast, so the new signals settle sooner. |
| 5 | Everything else | Low-value, orphaned or already-thin pages — map or consolidate last. |
A page that scores on several signals — say a product with backlinks and revenue — is a must-fix-first. Long-dead pages with no links and no traffic can be batched or, where content no longer exists, deliberately left to 404 or 410.
How to map one-to-one
The rule: each old URL points to the single closest equivalent on the new store.
- Old product → the same product on Shopify (
/products/handle). - Old category → the matching collection (
/collections/handle). - Old blog post → the migrated post (
/blogs/news/handle). - Old page → its new counterpart.
Where there’s no exact match, redirect up to the nearest relevant parent — a discontinued product
to its collection, for example — not to the homepage. Homepage dumping (sending everything to
/) is the classic mistake: Google reads it as “this content is gone,” and the old page’s rankings
usually evaporate. Reserve the homepage as a fallback only for the genuine handful with no relevant
destination at all.
Fill a “new URL” column for every high-priority row before you build a single redirect.
How to implement 301s on Shopify
Shopify has this built in — no app required. Go to Online Store → Navigation → URL Redirects (or Settings → Redirects in newer admin layouts), click Create URL redirect, enter the old path in Redirect from and the new path in Redirect to, and save. Shopify serves these as 301 (permanent) redirects, which is exactly what search engines need to pass equity to the new URL.
For a large map, don’t hand-enter thousands of rows. Shopify supports bulk CSV import of redirects (Redirect from, Redirect to columns), and the Admin API can create them programmatically — the right approach for a big migration. This is a core part of any real store migration engagement.
A note on limits: Shopify’s redirects match the path of the old URL. Make sure the “redirect from”
values match how the old URLs were actually indexed — including or excluding trailing slashes and
.html suffixes as appropriate — or the redirect won’t fire.
Clean up redirect chains and loops
Two subtle killers:
- Chains. URL A redirects to B, which redirects to C. Each hop leaks a little equity and slows the page. If you migrated once before, or edited a product handle after setting a redirect, chains creep in. Fix them by pointing every old URL straight to its final destination — A → C, not A → B → C.
- Loops. A redirects to B and B redirects back to A. The browser errors out entirely. Audit for these before you finish.
A crawl of your redirect list (Screaming Frog will flag chains and loops automatically) catches both in one pass.
How to verify
- Spot-check the top URLs. Paste your highest-priority old URLs into a browser and confirm each lands on the right new page with a single 301 hop (a crawler or an HTTP header checker confirms the status code).
- Submit the new sitemap in Search Console and watch the “Not found (404)” count fall over the following weeks.
- Re-crawl the old URL list after go-live to confirm nothing important still 404s and no chains remain.
- Watch analytics — organic landing pages and referral traffic to key pages should recover as Google re-processes the redirects.
Common mistakes
- Redirecting everything to the homepage instead of one-to-one.
- Forgetting non-product URLs: blog posts, category pages, static pages, image and PDF links.
- Ignoring trailing-slash /
.htmlvariants that were separately indexed. - Leaving redirect chains from a previous move in place.
- Treating the redirect map as “done” at launch instead of monitoring 404s for weeks after.
When to get help
If your old store had a few dozen pages, you can build the map yourself in an afternoon. If it had thousands of products, real backlinks, and revenue on the line, the cost of getting it wrong dwarfs the cost of getting it right. That’s exactly the work we do on a migrate to Shopify project — full URL inventory, value-based prioritization, a clean one-to-one 301 map, and post-launch monitoring. If you want a second opinion on a migration that’s already live, a free profit audit will surface the broken URLs that are costing you most.
For the wider picture, see our Shopify migration checklist and, if you’re coming off WooCommerce, the specific WooCommerce to Shopify migration problems to watch for.
Drowning in 404s after your migration? Send us your store URL — we’ll find the broken URLs that matter, build the redirect recovery plan, and tell you what to fix first to stop the bleed. See migrate to Shopify or get a free profit audit.