Shopify is a great platform, and I mean that genuinely.
For a huge range of ecommerce businesses it’s the right call. The speed at which you can get a good store live still beats the alternatives comfortably.
But every platform has limits, and Shopify’s get glossed over. Partly because their marketing is excellent (it really is). Partly because a lot of agencies selling Shopify implementations would rather not complicate the conversation. And partly because you don’t find most of these until you’ve been on the platform a couple of years and start pushing.
These are the ones I see causing real problems for growing brands.
You don’t control your checkout
On standard Shopify, your checkout is Shopify’s checkout. You can change the colours, add your logo and make a few cosmetic tweaks, and that is genuinely all of it.
This matters far more than people realise when they’re picking a platform. Your checkout is where the decision gets finalised. Trust needs to be highest there and friction lowest. It’s where the specific questions your customers have at the point of purchase need answering.
If you need custom fields, particular trust signals, a different layout, or anything beyond the basics, standard Shopify can’t do it. Plus opens up checkout extensibility, but that’s a serious jump in cost.
For brands where checkout optimisation is a real part of the CRO plan, this is a genuine constraint. It’s the one I most often have to break to people after they’ve already committed.
URL structure is fixed
Products live at /products/product-name and collections live at /collections/collection-name, and you can’t change either of them.
Starting fresh that’s fine. Migrating to Shopify from another platform with years of equity built up in URLs that don’t match is a different matter. Redirects only carry you so far, and I’ve watched brands lose rankings they’d spent years earning because nobody costed that in.
It’s also awkward for anyone with a catalogue structure that doesn’t map neatly onto Shopify’s collections model. You end up working around the platform instead of with it, and that shows up in every future build.

The app dependency problem
The app ecosystem is one of Shopify’s selling points. Almost anything you need exists as an app. The more you install, the more problems you collect.
Every app adds code to your store, and that code loads for every visitor whether the feature is relevant to the page or not. Performance degrades and conflicts appear, and you end up paying monthly for five apps that half-overlap because none of them does exactly the thing you wanted.
It creates fragility too, because an app you depend on gets acquired, changes its pricing, or stops being maintained. Then you either pay the new price, migrate your data somewhere else, or go without.
Brands three or four years into Shopify who haven’t actively managed their app stack are almost always running more than they need. They pay more than they should, and load slower for it. I’ve written about what that actually costs in more detail.
Reporting has a ceiling
Shopify’s built-in reporting is fine at lower volumes. As the business grows and the questions get harder, it starts showing its limits.
Cohort analysis, custom attribution models, detailed segmentation, revenue broken down by channel and product type in the same view. Those need Plus, third-party analytics, or both.
If you’re serious about using data to make commercial decisions, native reporting often won’t get you there. Fine if you have a separate BI setup. Worth knowing before you’re on the platform wondering why a question that sounds simple has no answer. I’ve sat in enough board meetings where that question was the whole agenda.
Multi-currency and international gets complicated fast
Shopify has improved a lot here with Markets. Running a genuinely localised multi-market operation is still harder than the marketing implies.
Real localisation means different product ranges, different pricing logic, different promotional mechanics per market. Shopify handles some of that natively and not all of it. You end up with multiple stores, third-party apps, or both.
Straightforward international requirements, same catalogue with currency adjusted, work well. Anything more complicated and the limits arrive quickly.
Customisation has a ceiling
Shopify is hosted, which is a strength. Infrastructure, security and performance are handled for you and you never think about them.
It also means you operate within Shopify’s rules. There are things you simply cannot change about how the platform works structurally. Checkout logic, URL structure, how the cart behaves, certain backend workflows. If your business needs something outside that, you build a workaround, buy an app, or accept it can’t be done.
For most retailers that’s a non-issue. For brands with genuinely unusual requirements it can be the whole issue, and it’s where a conversation about Adobe Commerce or Magento starts making sense.
B2B has improved a lot, but still has limits
Worth flagging separately because it changed recently. Until April 2026, native B2B on Shopify was largely a Plus feature, and that is no longer the case.
Basic, Grow and Advanced now get company profiles, up to three B2B catalogs with customer-specific pricing, payment terms, volume pricing and vaulted credit cards. If your wholesale operation is straightforward, that may now be enough on its own.
Still Plus-only: unlimited catalogs, direct catalog assignment, partial payments and deposits. Complex wholesale, Plus is still the answer. But the gap has closed a long way, and if B2B was your main reason for considering a platform change or a Plus upgrade, go and reassess that. I’ve gone through it properly in Shopify B2B is no longer just for Plus brands.
Which of these have you run into?