Where does it really come from?
Why are commercial themes and plugins so bloated?! Full of crap (you mostly don’t use) that slows down your site. Why can’t they just stick to essential functions?
The more I custom-develop plugins, the more I start to realize the sad truth. It comes from the commercial plugin business model.
It’s because of how plugins make money.
They’re forced to create value to customers and compete against other plugins. And so we know what that means.
- It means you’re gonna have a crap ton of unnecessary features added into one plugin.
- How else do you justify charging money for something? (Keep adding features!)
And the inevitable feature bloat makes sense, too! Because the more features you add, the more users you can accommodate. It’s an intelligent business decision.
And so there you have it. It doesn’t take long for a successful commercial plugin to ultimately become a giant bloated Frankenstein plugin that could have easily just been 4 or 5 separate free community plugins.
Does it always have to be features that justify the cost?
No. It could be support. It could a special 3rd-party service integration. Or some other unique value or function. But more often than not, it’s a downward spiral to see which plugin has more non-essential features.
Bloat mitigation & sneaky autoloads.
This pisses me off. Plugins end up with so many settings that they start building in their own internal caching, performance optimizations, and even memory-hogging index autoloads!! *(@#$&#)($&@#!!!!!
If your plugin is that bloated that you feel the need to address it with performance optimizations, just go back and remove some stuff or rewrite it! Yikes!
The point of mass adoption.
This is when it gets reeeeeally bad. When the plugin has so many users that it becomes impossible to improve (refactor) the code. Because even if you had the experience, time, budget, and personnel to do it…you still CAN’T! Because it’ll break all the thousands of existing sites running on it.
This is the reason why mega bloated plugins like Elementor can’t improve their codebase. They know how to recode their plugin to be so much better but it’s too late for that now. The way they built their code initially is permanently grafted onto existing client sites. There’s no way to cleanly decouple old settings and database entries, and install a new version of their plugin while keeping everything in tact.
So how do we keep bloat out of plugins?
There’s really no easy answer.
One way way is to have developer-grade plugins that are designed super lean, focused on only one core function, and almost “unfinished”. No styling. No opinion. No dumbed down pre-configured settings to wade through. They’re half-finished work so other developers can customize it perfectly how they want. No explanation needed. No support needed. Just the good of the community helping each other. Only problem is these plugins aren’t built for newbie users.
Another answer is to build the plugin with the future in mind. It sounds so simple but is anything but. If you know what your plugin will have in the future, you can prepare the code architecture for it so that future add-ons won’t weigh it down. But if not, then every future add-on becomes a hack. And this is almost always the case as industry trends change and competitors come up with such great features that you have no choice but to add them to your own plugin.
So how do we improve an inevitably bloated plugin?
You have to refactor it. You have to keep rebuilding it from scratch over time. After 5 years or so, just rebuild it entirely to readjust to trends. And redefining critical features from non-critical ones. Any pain of existing client sites breaking could be addressed with a migrator plugin. And as I’ve already said before…the pain with refactoring is that even if you wanted to do it, you might not be able to since it could break compatibility with many user’s setups.
What I’ve seen from here is many companies will just abandon the product. They’ll keep it around if it’s a cash-cow with enough recurring revenue. But they’re not going to spend time rebuilding an EXISTING plugin when they could use those hours to develop a brand NEW plugin and make even more money!