The Best Things About Migrating to Shopify

I previously wrote about some surprises migrating multiple Xero Shoes WooCommerce sites over to Shopify.

That post focused on the myths about Shopify and how some things that work really well in WooCommerce don’t quite translate to Shopify.

This post looks at the flipside: the expected changes that turned out to be enormous wins for Xero Shoes. 💪

From server reliability and instant reporting to a fast, usable admin, Shopify removed whole categories of work that used to consume developer, marketing, and customer service attention. 👇

The Benefits of Shopify

Benefit #1: Forget About Server Performance

If you're a developer you might be familiar with the anxiety right before a large launch or sale. If you didn't write the code correctly the site could crash when thousands of customers arrive at the same time.

Our developer team used to share HOLD gifs when we were on WooCommerce. Yes we handled large sales that had back-to-back million dollar days all handled in WooCommerce. So WooCommerce can do this… but that doesn't mean it's easy. Or without stress.

To ensure server reliability we had to be painfully specific with Marketing. We'd ask in advance (and repeatedly) how many emails they were sending, when they were sending them, and how long we can spread out the delivery to reduce the load on our server.

A detailed list of emails for a marketing campaign

With Shopify, this 👆 is work we no longer have to do. 🎉

That's the best case outcome for a platform migration. As an engineer I shouldn’t care when the emails go out. Send 1 email or send 500. It should make no difference on my day to day.

Not having to worry about server performance certainly relieves stress. It also unlocks the ability to forecast email effectiveness. Within 2 hours of an email going out we have enough signal to estimate the daily traffic. 

We actually did this for BFCM. A few times throughout the weekend we noticed an email wasn’t delivering and we sent another email or text that afternoon.

Black Friday revenue expectations by hour combined with our email and sms blasts.

If you're worried about server performance and dripping your email out over 4 hours. The earliest you could measure if an email is working is around ~6 hours. You lose the ability to pivot and send an email within the same day.

And all of this is enabled by Shopify servers so you don't have to worry about crashing.

I used to worry about server performance which meant relentlessly hounding and restricting marketing. Marketing no longer has to change their process because of developer concerns. I’m free to use my brain power on other parts of the business. And we have timely data unlocking the ability to pivot and maximize the sales window.

Benefit #2: Phenomenal Reporting

One of the weakest areas of self-hosted e-commerce software is reporting. You don't want the same server that serves customers webpages to also process huge database queries. Either you're going to have a slow website or slow reporting… or both.

That's why we used Metorik for WooCommerce. It's a fantastic reporting platform that lets marketers, finance, customer service, etc do as much searching & generating reports as they want without affecting our site.

With Shopify you can use their built-in reporting. You don't need to pay for extra services.

And best of all it’s easy enough to use that you don't need a data scientist to generate reports.

The AI in the Shopify reporting section is insanely good.

A natural language question to Shopify's reporting section.

To give an example from this week, I was on a call with a vendor who wanted to know the revenue breakdown by country in the EU. I didn’t have this data handy but I wrote a natural question in Shopify’s reporting. I had the answer 2 minutes later.

A Shopify report generated by AI.

This isn’t limited to me. Anyone on the team can now answer data questions in the moment while the conversation is still happening.

Reporting used to be asynchronous, specialized, and delayed. Now it’s immediate and available to whoever’s in the room.

Benefit #3: An Admin Designed to be Used

One of the most embarrassing parts of our WooCommerce site was how SLLLLOOOOOWWWWW the admin loaded. 🙈

It's not that you can't speed up the WooCommerce backend. It's that it's not customer facing. So no one advocates for it.

  • Loading default products screen takes 28 seconds 
  • Loading recent orders takes 13 seconds 
  • Loading a specific order takes 12 seconds

If you spread this out over a CS team with a dozen people it really adds up.

It's not just the total amount of wasted loading time. It's about stepping over an attention threshold.

If a task takes a few seconds I can stay focused. As soon as a page takes 10+ seconds to load I’m going to start opening new tabs and working on multiple tickets (or just open social media).

This isn’t just intuition. Productivity research as early as the 1960s and reproduced in 1993 & 2010 by Jakob Nielsen shows that 10 seconds is the point where users lose attention and start thinking about other things.

10 seconds keeps the user's attention. From 1–10 seconds, users definitely feel at the mercy of the computer and wish it was faster, but they can handle it. After 10 seconds, they start thinking about other things, making it harder to get their brains back on track once the computer finally does respond.

Slow admin pages nudge humans to context switch. You’ll use dozens of tabs, there will be half finished tasks, and you’ll probably forget why you opened a specific tab. That’s the downside of context switching. The WooCommerce admin is so slow we change our own process to compensate for the slow system.

For teams doing operational work, sustained focus is how work actually gets completed. When pages take 3 seconds to load you can enter a period of sustained focus. You can't enter flow if you're waiting 12+ seconds between pages. You'll inevitably get distracted by a DM, email, or other task breaking your focus and slowing productivity..

One of the best things about Shopify is how fast the admin is.

  • Loading default products screen takes 3 seconds
  • Loading recent orders takes 3 seconds 
  • Loading a specific order takes 3 seconds

The Shopify admin is designed for task completion. It's designed so you can mono-task. Complete a task start to finish and move onto the next item on your list. Admin speed determines whether work is completed sequentially or fragmented across dozens of half-finished states.

Conclusion

I was prepared (and excited) for site reliability from Shopify. That saves engineers like myself some grey hairs.

But looking at all of these benefits together I’m struck that Shopify removed whole categories of work:

  • Devs had to manage marketing email sends
  • Data questions required special training
  • CS agents were fighting human nature just to get their work done

WooCommerce can do all of these, but the default is slower with more interdepartmental coordination.

Shopify isn’t necessarily better at e-commerce but it lets us spend more time actually doing e-commerce.

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.

How to Race 33% Faster

Patrick crossing the finish line for a triathalon

Two weeks ago I raced in my first-ever triathlon. 🏊🚴🏃‍♂️

Miraculously, I did not drown, crash, or collapse. I actually finished. 😅

I practiced the bike portion four times:

  • Sep 2 → 10.2 mph
  • Sep 4 → 10.5 mph
  • Sep 11 → 12.2 mph
  • Sep 17 → 12.4 mph
  • Sep 21 → 16.5 mph (race day)

My fastest practice time was 12.4 mph. On race day, I zoomed at 16.5 mph! That's 33% faster! ⚡

Not because I suddenly got stronger. Not because I learned a new technique or was drafting the bike in front of me.

I raced faster because there were no blockers:

  • We had our own lane on the road.
  • Police waved us through intersections
  • Volunteers held signs showing the way.

I was able to accelerate and keep moving at my top speed for ~45 minutes. The only thing I had to do was push with my legs and steer.

My practice route has 2 stop lights. It doesn't sound like much. But you lose all forward momentum and spend a lot of energy to ramp back up.

If you want to move fast you need to accelerate to max speed and then stay there as long as possible. Anything that slows you down wastes momentum.

To move quickly in business, tech, and life remove blockers before you start moving. It's a marvel how fast you can actually move.

How to Make the WooCommerce Sale Price Accessible

How to Make WooCommerce Sale Price Accessible

I recently joined Xero Shoes. They're one of the largest WooCommerce stores in the world. And as luck would have it we received the results of an accessibility (a11y) audit right after I started. That meant my first project is to dive deep into accessibility with WordPress & WooCommerce.

And the first item I looked into was making sure our sale prices were accessible. 👇

Continue Reading…

Seek Opportunities to Cut Your To-do List

Seek Opportunities to Cut Your To-Do List

We live in a world where there's always incentive to do more.

  • Write more blog posts for organic SEO
  • Tweet daily
  • Create Tiktoks to promote your products
  • Write unique content for your premium email list

And after a while it just adds up and you're paralyzed with an unending to-do list. I've found that the more on my todo list the less I actually get done. The more I can focus my attention with a clear priority for the day the more productive I am.

Recently I've been looking for ways to cut down my to-do list. Not by evaluating each individual task, that takes a ton of time, but by preventing tasks from getting on my list in the first place. I want to create rules so I know where I should spend my time.

Continue Reading…

Top Down SEO Research

Top Down SEO Research

 Hello internet friends. Today I want to share some of the awesome SEO work that I've been doing at eCommerceFuel. 🤓

If you're familiar with SEO research, a lot of writers come up with a list of topics they want to write about and then they will search for keywords related to that topic. They'll find a keyword somewhat related to their topic, they'll write about it, and hope that it ranks. 🤞 I call this bottom-up SEO research.

Then there's what I'm calling top-down research. And the hard part is you start the process ignoring what we want to speak about at first, doing all of the SEO keyword research, grouping everything, looking at the volumes (number of searches), and then from that list deciding which keywords we want to write about.

The benefit to doing keyword research this way is you know if you rank well you'll see decent traffic. And it prevents common problems like keyword cannibalization which can happen when you don't make an SEO plan.

Let me show you how I follow this process and how it drives traffic for eCommerceFuel:

Continue Reading…