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.

WooCommerce Security

Airport Security

I talk about the features about eCommerce platforms all the time. But I don't often talk about related but important concepts. Every store owner has thought about security and how to keep their store safe both for their customers and so they don't get sued. When it comes to security there are two things you need to worry about.

  1. The security of your site
  2. The security of payment information

Continue Reading…

What I Learned Organizing Three Events This Year

Female Speaker in Front of Crowd

Now that the wrap up post for WooConf is out the door I can finally relax. WooConf was the latest event I worked on this year and by far the most intense. Working on three different events – all at different levels of complexity – taught me a few things about running events.

I'm going to share some lessons but first let me give a little context:

1. Lift Off Summit – I designed this summit to help people develop a marketing strategy for their online store. It's a virtual summit so you can tune in and watch ~20 hours of content for free and you can pay to watch the sessions whenever you want.

Event cost: free to stream / $97 for recordings

2. WordCamp Denver – I've always loved helping my local WordPress scene. I've helped organize several meetups and WordCamps in the past. This is my third year organizing this particular conference and it was one of the best we've done.

Event cost: $40

3. WooConf – I've been heavily involved with WooCommerce for years as a customer, developer, product manager, and now educator. So when they asked me to help them plan the content I couldn't say no.

Event cost: $500 early bird / $700 regular

Continue Reading…

Value of Making Mistakes

Dark Profile Shot

In 2011 Netflix made an announcement that they’d be splitting into two companies:

  1. Netflix would focus on streaming &
  2. Qwikster (the new company) would focus on DVD rentals.

Netflix claimed they wanted to make it easier for customers and doing this gives both companies the best chance for success. The feedback was instantaneous & almost uniformly bad.

There were numerous reasons this separation didn’t work (it didn’t add any value for customers, costed more, required more work, was rushed, terrible name, etc. They made a mistake and that mistake cost them nearly 800,000 customers.

The most important part of the story is that two months later they reversed their position. They could have continued down the path of “I know best” but they didn't. They stopped all plans for Qwikster and haven't looked back. They started earning back the trust of their customers and they went on to dominate online streaming.

Continue Reading…

How to Add a WooCommerce Announcement Bar

Announcement Banner

Imagine it's the week before Xmas and you realize you forget to get a present for someone. You start looking for the perfect gift and you manage to find it. It's exactly what this special someone would love.

You add it to your cart and as you start looking at the shipping options you realize you don't know if it will arrive in time. There's “free shipping” – who knows how long that will take. And there's “expedited shipping” which will probably get there on time but you don't know if it's worth the extra $20.

You start googling rates, prices, and shipping times and you go down a rabbit hole and might never come back to that site.

It's the holidays and we're approaching the cut off date to get presents on time. As a store owner you want to let your customers know the last day they can order and still get presents. This does two things:

  1. It removes uncertainty. If you're uncertain if the present will get there on time you might not order. Or if you have to do a bunch of work to guess if it comes on time you might just get lost down the rabbit hole and never come back and order.
  2. It creates urgency. When users come to your site and they see a banner that lists the last day to order it creates pressure. They don't want to forget the present and they don't want to miss the cut off date. They will be more likely to buy right now.

Continue Reading…

Selling Videos with WooCommerce

Computer Screen Selling Videos

There are a few different WooCommerce Facebook groups and all of them have great discussions. Earlier today there was a question about selling videos with WooCommerce:

If I have video files in a cloud storage independent from my WordPress site can I link those videos and sell them as digital, downloadable products? I don't want to store videos in my WordPress site.

The short answer is yes – WooCommerce can sell downloadable videos (or any sort of downloadable product).

Continue Reading…

How to Process Credit Cards Manually with Stripe

Entering Credit Card with Smartphone

Most e-commerce platforms let you create orders manually. That way even if you're at a conference or a potential customer calls you you can capture those orders.

While many systems let you create orders manually they don't always let you charge a credit card which kind of defeats the purpose. But even if your e-commerce platform doesn't let you process credit cards if you use Stripe you're in luck. They make processing credit cards really easy.

Continue Reading…

Easy Membership Sites With WooCommerce Memberships

Lock

Two years ago I wrote a post about how hard it was to setup a membership website with WooCommerce. It took twenty two steps and it required two plugins.

Not ideal.

At the time we thought it best to integrate with an existing solution that already had some users. Sounds smart but it forces users to go through the extra steps to make the integration work. And as someone who has to setup his own site & his own accounts I hate when someone drags me through extra steps.

End users don't care what powers their technology. They just want to solve their problem. Which is why we set out to build an entirely new system.

Continue Reading…