Three Surprises From a Shopify Migration

Shopify Migration Surprises

If you’re an ecommerce developer or considering replatforming an ecommerce site to Shopify, this post is for you.

It’s the last day of the year and I’ve spent more than half of it working on large multi-store migration for Xero Shoes. Earlier this spring, a decision was made to move all of our websites to Shopify.

The two main sites are XeroShoes.com and XeroShoes.eu, with a wholesale site scheduled to move in early 2026.

We migrated years of data, worked with a Shopify Platinum Partner agency to build a new theme, and most importantly, ended up with an apples-to-apples comparison of the same business running on WooCommerce versus Shopify.

And the results were illuminating.

Surprise #1 — Shopify Can Be Much Slower

One of the key selling points of Shopify is that it's fast. Other platforms can be fast, but only if you invest in performance engineering. Shopify’s promise is that speed comes out of the box.

My expectation for this migration is that Shopify, with thousands of engineers, could certainly make XeroShoes.com load as fast as a small team of 4 coders could. 

What surprised me wasn’t a small regression. It was the magnitude of the change. In our case, Shopify is nearly twice as slow as the WooCommerce site it replaced.

Here’s the performance before & after migration.

Before the migration, our homepage loaded in 5.76 seconds on a 3G mobile connection.

After the migration, that number jumped to 11.44 seconds. Nearly double the load time.

It wasn't just the homepage. Our product detail page (PDP) went from 6.51 seconds to 9.38 seconds on 3G mobile. An almost 50% increase.

We have a lot of work to do. We'd love to improve the homepage performance by 5-6 seconds. And the PDP performance by 3-5 seconds.

It’s worth restating why performance matters so much:

  • Improving SEO rankings. Google prefers faster websites.
  • Improving conversion rate. The slower the site the more people drop out of the funnel.

The lesson I take is that Shopify probably is very fast for a straightforward ecommerce store. If you’re selling t-shirts you’re going to be fine. But if your business has any bespoke aspects you’ll still need performance engineering. Maybe another agency. But in our case we'll handle this in-house.

Surprise #2 — The App Ecosystem Is Unreliable

One of the assumptions I had going into this migration was that Shopify’s app ecosystem worked like mobile apps: you install them, configure a few settings, and they just work. For anything non-trivial, that turned out not to be true.

The app ecosystem is one of the main reasons people pick Shopify, but many apps aren’t isolated add-ons. Apps that affect the front-end often require deep theme-level integration and shared frontend code ownership.

It’s the apps that make Shopify used by most major online brands. We installed a few obvious apps that are highly recommended in the community. Matrixify is very useful for importing and exporting data and is working extremely well. As are some other well recommended apps like Klaviyo, Elevar, and Data Feed Watch, etc.

This difference became very clear when we tried to recreate a piece of variation merchandising functionality we had previously built on WooCommerce.

Variation Merchandizing on WooCommerce

About a year ago we built custom functionality for our WooCommerce site that lets us take a new color for an existing product and highlight that specific variation on a landing page.

This is really useful when we want to have a landing page that shows all of our new products on one page.

In this example, showing the black leather shoe alongside the brown leather shoe captures two different buying intents that would otherwise be obscured behind a single product image.

Variation Merchandizing on Shopify

Now how hard do you think it was to find comparable functionality on Shopify?

We asked our platinum partner and did our own research and found 5 potential apps. The apps claimed to let you split parent products into variations on specified collection pages.

And here’s the first surprise: they didn’t work… at least not initially. We tested all 5 apps and only 2 of them showed promise at working. The other 3 failed entirely.

We reached out for support and one of them had excellent support. That made the final selection easy.

After 20 emails back and forth and a few code snippets we had variation merchandising functionality working 7 days before Thanksgiving. Pfew! Just in time. 😅

So we made code changes to our theme and our app developer made code changes to their system to get this functionality working. At least now that it’s installed you don’t need to worry about it breaking (unlike other eCommerce platforms). Right?

On Thanksgiving, production behavior changed without a deployment on our end. The variation merchandising functionality, previously tested and stable, suddenly manifested a brand-new bug.

Users can no longer click thumbnails to change the product color. This isn’t a website crashing bug. But it is certainly not helpful. It's a clear demonstration that when critical functionality depends on third-party apps, you no longer fully control the production behavior of your site. At any time a Shopify app could break and the only thing you can do is disable the entire app. 😱

We emailed our app developer for help on Black Friday. The bug was finally resolved on our site on Wednesday December 3rd. Completely missing the Black Friday Cyber Monday sales weekend and the most important 5 days of the year. 😭

With WooCommerce, we wrote the merchandizing functionality ourselves in a single sprint and didn’t need to upgrade it all year. It worked and we were able to freeze our working code in place. Ensuring success over critical sales weekends.

Surprise #3 — Yes, You Can Break Shopify (and unfortunately We Did)

The biggest myth about Shopify is that you can’t break the checkout. 🛒 

With other eCommerce platforms when you install a new plugin and you must always make a test purchase to make sure that none of the new functionality breaks the checkout.

On Shopify this is theoretically impossible. This is a huge part of what makes Shopify so reliable and the default choice in the eCommerce world.

And while the promise of an unbreakable cart is tempting. It’s not true.

We experienced a subtle but serious regression that corrupted cart data when users added items to the cart. Instead of adding the selected size to the cart it always added the lowest size. And because the checkout flow otherwise appeared normal, most users did not catch this subtle but important mistake. 😱 

The bug was live on our site for most of the morning before we detected it. And the bug affected over five-figures of sales 💸🔥. 

Nearly all orders during this time needed some sort of CS involvement and/or a refund. 

So while you technically can’t break the Shopify checkout, it can create a false sense of invulnerability around the much larger surface area of code that feeds into it.

Conclusion

In a short timeframe, we migrated two enterprise-scale sites, moved years of data, resolved a large volume of issues, and successfully launched ahead of the most important sales period of the year.

The biggest lesson from this migration is that Shopify doesn’t eliminate complexity or work. Performance, app integrations, and frontend behavior is where most of the real work ended up.

  • Your website won't magically run faster on Shopify than another platform
  • Shopify Apps aren't as self sufficient or reliable as apps for your phone
  • The sense of invulnerability with Shopify allowed a bug to manifest that risked 5-figures of revenue

Shopify isn’t magic… but it is powerful when you understand its tradeoffs.

If you go in with clear expectations and are willing to invest where the platform draws its boundaries, it can absolutely support a large, growing business. We just know now where to be careful.

3 thoughts on “Three Surprises From a Shopify Migration

  1. I am both surprised and not surprised, so much so I opted to read this during a call instead of paying attention after I saw you share this post! Mainly because Xero has been such a big advocate of Woo for such a long time that a Shopify move… was both a shock and inevitable? So many areas of Woo that I’m sure you all were eagerly awaiting news on … and if you’re like me probably got impatient as time went on. Things like going all in on block based checkout to break most customizations and then not having a path to fixing it all still all this time later. Sorry my Woo slack rants are leaking into your comment section ha.

    This post is a really good example of the similarities of the two platforms though. Shopify has the huge marketing engine of how simple and easy and hands off their platform can be, but the black box has some teeth and as you found – you can get bit. The agency you choose is supposed to be able to help guide you around those issues – I’m sorry that the agency you all worked with didn’t… some of the issues you describe are easily avoided.

    Shopify at its core is pretty fast and performant, but like Woo the performance your site has depends on how it is built. Everything from your theme, to the apps you use, to the way you structure your product data… just like Woo, performance problems are self inflicted and are solvable. One place I see a lot is people overloading the frontend with too much data and then browsers just struggling to parse all the json and html. Something easily overlooked – but not always the case.

    On top of all that, your second surprise is one of the gotchas that sort of smack you in the face the first time you run into it. If you run a Woo store and leave it untouched, it will remain as it sits… if built correctly its a static machine that just keeps chugging. Shopify as a platform will change, so dedicate time quarterly for their changes, and then all the apps you use also are going to change. The quality of apps is a lot harder to gauge from the Shopify app store, and because it is all hosted externally you have no control over when and how they impact your store. Do not be afraid to build your own custom apps – you can keep them entirely internal. This way you have total control over your own site for critical functionality. It will take more work, but should be expected for a business the size of Xero.

    These custom apps and custom theme code built on custom meta schemas that you create, that is how you build the UX you were looking for with merchandising. Then leverage your own internal app for management of some of that data at scale.

    Many stores, both Woo and Shopify, also have the same problem of not even remotely enough monitoring and visibility. You really need to focus on instrumentation. Where you give up control with using platforms and third party apps, you need to 10x your observability of the site. If there is a key function or feature or dataflow that can impact tens or hundreds of thousands of dollars, then pay then hundreds of dollars it would take to ensure things are running smoothly. All those browser console errors I’m seeing – get those piped into a dashboard somewhere so you can prioritize frontend reliability (probably would help performance too). Pipe your orders into a system that validates order data is correct, in some cases you could actually have ML anomaly detection running against your orders that can flag when things go sideways. All sorts of tooling out there is available for this.

    Hopefully these notes are helpful to you and others – the post was a great read, and hope the new site wrinkles get smoothed out quickly and your scales go to the moon now that you have Shop Pay. Congrats!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.