A client sent me a screenshot last week. Their WooCommerce dashboard plugin list was so long I had to scroll three times to see everything. They counted 34 plugins. Thirty-four.
Each one promised to solve something real: shipping complexity, tax calculation, review management, abandoned cart recovery, email automation, SEO optimization. Each one made sense when installed. Each one added weight.
That store was taking 7.2 seconds to load on a decent connection. Product pages were slower. Their checkout converted at 1.8%. The owner thought they needed better marketing. They needed fewer plugins.
The math of plugin sprawl
The average WooCommerce store runs 20-30 plugins. The average Shopify store uses 8-12 apps. These aren't accidents. They're symptoms.
A new plugin gets installed because it solves one specific problem. Shipping calculations? Plugin. Customer reviews? Plugin. Email marketing? Plugin. Stock notifications? Plugin. Each addition feels justified because it is. One plugin does nothing terrible. Fifteen plugins do everything badly.
Here's what happens to your store with every new plugin:
- Extra JavaScript loads on every page, even if that feature isn't visible to most visitors
- Extra CSS bloats your stylesheets
- Extra database queries on every page load
- Extra security surface area exposed to the internet
- Extra maintenance burden: updates, testing, compatibility checks
- Extra points of failure. One broken plugin breaks everything
This is called the plugin tax, and it's real. A lean store with 5 well-chosen plugins might load in 2 seconds. The same store with 30 plugins loads in 6-8 seconds. That's not a marginal difference. A one-second delay drops conversion by 7% on average. A six-second load costs you significant revenue every single month.
When plugins explode in your face
You know the feeling. You update a plugin on a Tuesday morning. Then you refresh your site and get a white screen. No error message. Nothing. Just white.
This happens because Plugin A now conflicts with Plugin B. Or a WordPress update breaks Plugin C. Or Plugin D hooked into the wrong function. Your store is down. Your hosting company says it's not their problem. The plugin developer says they don't support your specific configuration. Meanwhile you're losing sales by the minute.
I've seen this destroy relationships between store owners and their tech. The owner didn't cause this. They just tried to add a new feature. But now they don't update anything because they're terrified it will break again.
Security gets worse with every addition
WordPress plugins are responsible for something like 98% of WordPress vulnerabilities. Not WordPress itself. The plugins.
When you install a plugin, you're trusting a stranger with access to your entire database, your customer data, your payment processing pipeline. Some plugin developers are professionals who maintain their code religiously. Many are freelancers who built something useful two years ago and haven't touched it since. Some are just abandoned, waiting for the security breach that inevitably comes.
You don't know which category your 34 plugins fall into. You probably don't have time to audit them. And you certainly can't monitor all of them for security updates. So you cross your fingers and keep updating, hoping nothing breaks and hoping nothing worse happens.
The Shopify app tax is real money
Shopify stores avoid the technical debt of plugins. They get a different problem: apps cost money. Lots of it.
Shipping app: $15/month. Review app: $29/month. Inventory management: $25/month. Email marketing: $50/month. Upsell and cross-sell: $19/month. Abandoned cart recovery: $20/month. SEO: $20/month. That's $178/month just on apps. Add your base Shopify subscription, and you're at $250-300/month before you sell anything.
For a store doing $30k/month in revenue, that's fine. For a store doing $3k/month, you're spending 8-10% of your revenue on software before accounting, inventory costs, or staff. The math breaks.
Small store owners rationalize each app individually. This one has a free trial. That one solves a real problem I can't live without. But thirty decisions later, they're paying $300/month for a platform that was supposed to be cheap.
There's another way. It costs more upfront
A custom-built e-commerce store doesn't have plugins. It has code. Checkout is built with your payment processor from the start. Shipping logic is custom-written to your business rules. Inventory management is integrated. Email is connected directly to your order system. Security is baked in.
This costs more upfront. A solid custom store built on Next.js and modern infrastructure runs $20k-50k depending on complexity. That's a real commitment.
But spread that across 36 months, and you're at $500-1400/month. Meanwhile your plugin-heavy Shopify store might be costing you $300/month in apps plus 3-5 hours per month in maintenance and troubleshooting. Your custom store costs nothing to maintain because there's nothing extra to maintain. No plugins to update. No compatibility issues.
After two years, custom usually wins. After three years, it almost always wins.
Be honest with yourself about scale
Not everyone needs custom. If you're selling 10 products, making $2000/month, and don't have complex requirements, a Shopify basic plan is genuinely fine. You're not going to achieve enough revenue to justify the investment in custom infrastructure.
The turning point comes somewhere around $15-20k/month in revenue, or when your business has real specific needs that off-the-shelf solutions can't handle cleanly.
Before that inflection, plugin sprawl is the cheaper way. It's the realistic way. It's the way that makes sense.
After that inflection, it becomes a weight you're dragging.
When custom is the obvious move
Some businesses have requirements that plugins can't solve well. These are situations where custom becomes worth the investment early:
- Complex shipping rules: You charge different rates by zone, weight, speed, and product type. Plugins get tangled. Custom code handles it cleanly.
- Multi-currency and multi-region operations: Different prices, taxes, and shipping rules by country. This sprawls across five plugins in Shopify. One code module in custom.
- Custom product configurators: You sell products with options: size, color, material, engraving. You need real-time price calculations. Most plugins can't handle this gracefully.
- B2B pricing tiers: Different customers see different prices based on volume or relationship. Not a feature most Shopify apps handle well.
- Subscription complexity: You offer subscriptions with variable intervals, pause/resume logic, and loyalty tiers. Subscriptions apps exist but rarely match your business exactly.
- Integration with your existing systems: Your store needs to talk to your ERP, your CRM, your accounting software in real time. Custom integrations are worth the cost.
The decision isn't binary
You don't have to go from 30 plugins to zero. The smart move is usually to audit what you have, kill what you don't use, and consolidate.
Many stores have two plugins doing the same thing. Some have plugins they installed and forgot about. Some have plugins solving problems that barely exist anymore. A ruthless audit often cuts 30 plugins down to 12 without losing any functionality.
After that, you know what you're actually paying for. You can monitor your real dependencies. You can answer the question: Is this worth it?
Sometimes the answer is yes. Most of the time, the answer is I forgot we had this. And that's information.
What this means for your store right now
Check your plugin list. Count them. Write down what each one does.
Then be honest: Do I actually use this? Does it solve a real problem or a hypothetical one? Could I replace it with something smaller? If I deleted it today, what would break?
Disable the ones you're not sure about for a week. See if anything falls apart. Usually nothing does.
For the ones that stay, that's your baseline. That's the complexity your store actually needs. Everything beyond that is debt you're paying interest on.
Your store is probably slower than it needs to be. It's probably harder to maintain than it should be. It's probably exposed to more security risk than necessary. These aren't failures of character. They're consequences of choosing convenient solutions over better ones, over and over, until convenience becomes a problem.
The good news: you can fix this. It doesn't require starting from scratch. It just requires looking at what you built and being willing to question whether every piece is actually necessary.