Server-Driven UI on the Web: Examples, Benefits & Use Cases
29 Oct 2022
Developers and WordPress: a love-hate relationship that seems to last for too long, 21 years in particular. Even after 20 years, WordPress is still one of the most popular CMSs, accumulating a market share of over 43% of websites across the globe. so why do developers hate WordPress?
It is a common belief that WordPress websites are slow, insecure, and full of outdated plugins that make frequent updates and SEO hard to maintain. Compared to modern CMSs and front-end development tools, these beliefs have a strong foundation and may seem true, but developers being developers, couldn't they make WP more functional?
I know, why would they? Well, because companies and marketers are in love with WP, which makes total sense since it was built for bloggers, and most are known to be non-techies.
So dear developers, stop complaining about WP and realize that you don’t necessarily hate WP but the wrong ways you use it.
These are the most common reasons why every developer curses while working on WP projects:
PHP's code structure can feel outdated and messy, especially when it mixes HTML and PHP logic within the same files. This leads to hard-to-maintain code with inconsistent syntax, legacy baggage, and the ease with which new developers can write insecure or inefficient code.
But it gets worse:
The loose typing of PHP leads to constant type coercion headaches. You’ll find numbers turning into strings without warning.
There’s no clear separation of concerns. In modern frameworks, you expect an MVC architecture. In WP? Get ready for a mishmash of SQL, PHP, and HTML all in the same file.
And because WP supports PHP 5.6 for backward compatibility, you're often left writing code that feels more like archaeology than development.
But let's be real—plenty of modern PHP frameworks (Laravel, anyone?) are proving that PHP isn't the problem, it's how it’s written. WordPress, unfortunately, suffers from spaghetti PHP—a tangle of logic, functions, and inconsistent syntax.
Speaking of codes, WP is an open-source CMS, meaning anyone can contribute to its development. A large community of developers works together to improve it.
WP projects often depend on a mix of plugins and themes, created by various developers or companies. While open-source projects are great for giving people a chance to contribute and get recognized, it also means the quality of the code can vary.
Let’s be real:
Some plugins are coded beautifully, while others look like they were written by someone who learned PHP yesterday. You’ll find global variables, hardcoded paths, and no modularity.
There’s no clear coding standard across the board. What should be a simple action or filter can be implemented in a dozen different ways, and not all of them are pretty.
And don't even get me started on plugin collisions. The more plugins you install, the more likely they are to conflict. It’s like a bad reality show where all the contestants have the same name and nobody knows who’s fighting with who.
It’s easy to hate WordPress for this. But to be fair, it’s the nature of any open-source project. The real issue isn’t the open-source model—it’s that WordPress lacks the strict control of code governance that frameworks like Symfony or Django enforce.
Even though companies and marketers believe that developers can build websites faster with WP, that is not true.
Although WordPress is great for creating websites, the development of those websites isn't as flexible as with other platforms. It can be time-consuming and frustrating to customize WordPress without finding workarounds or creating plugins.
The pain point for developers is explaining to their clients that sometimes what they want just isn't possible.
WP isn’t flexible by default—it’s flexible with enough custom coding. But for that level of customization, other platforms give you better tools, faster.
WP plugins are popular because they extend the functionality of sites without requiring you to write code.
Although some plugins can indeed achieve virtually anything on WP, the number of plugins needed just to make a basic functioning website is staggering compared to competing frameworks.
WordPress's flexibility, largely due to its vast plugin ecosystem, is a double-edged sword.
They extend functionality, sure, but they also turn your site into a ticking time bomb.
What no one talks about:
Version control for plugins? What’s that? Plugins update independently, often without proper changelogs. One update could tank your entire site, and unless you manually diff the code, you’re flying blind.
The more plugins you use, the higher the risk of conflicts. Two plugins might modify the same filter or action, leaving you to figure out why half your site stopped working after the last update.
Relying on plugins also means you’re at the mercy of developers who may or may not keep their code up to date. Plugin abandoned? Good luck finding a replacement that won’t break your site.
To get a basic website up and running with essential features like contact forms, SEO, security, analytics, and more, you often need several plugins. While each plugin adds valuable functionality, it also adds its code, scripts, and database queries, which can quickly accumulate. Another challenge is piecing together various plugins to achieve a complete solution. As a result, there may be compatibility issues and a lack of cohesion when implementing different features.
If you're managing a WordPress site, you know that updates are a non-stop headache. WordPress core, themes, plugins—everything needs updating, constantly.
But it’s worse than that:
Automated updates are a gamble. They could fix things, but they’re just as likely to break something important. It’s like Russian roulette, except the bullet is your entire site crashing.
Plugin developers don’t always care about backward compatibility, leaving you to deal with the fallout of a broken site.
And when you delay updates, you leave your site vulnerable to security breaches. So you’re stuck between a rock and a hard place—update and risk breaking something, or don’t and risk getting hacked.
Developers end up wasting time they could be spending on new features or projects, instead, they’re constantly fixing what’s already broken.
Between platform and plugin updates, maintaining a WordPress site can become a full-time job. This constant need for attention detracts from other projects and makes developers feel like they can never fully complete a WP project.
WP markets itself as a CMS, but ask any developer—its content management is anything but systematic.
Outside of adding more plugins for a "better", modular content authoring experience, WP relies on a single content area to manage the layout and content of a page. To support rich layouts and various content types, the database is loaded with a lot of data.
Though WordPress supports multiple content types writing content on WordPress can be a tedious process compared to some of its competitors.
Everything is crammed into posts, pages, and custom fields. Need a complex relationship between different content types? Good luck.
This is because WordPress often requires multiple plugins to achieve the desired functionality, which can complicate the workflow. Additionally, the need to switch between different plugins and the core editor can interrupt the writing process. The frequent updates and maintenance of these plugins can also add to the complexity and time investment needed.
For a real content management experience, devs are better off with a headless CMS. WordPress just isn’t built to handle complex, structured content.
WP websites consist of pages, content blocks, shortcodes, menus, sidebars, breadcrumbs, etc. In other words, every time you visit a page, you have to load the entire page with all these elements. In turn, this affects the performance of the website.
This full-load page approach has negative effects on website performance, especially compared to modern JavaScript techniques, where practices like partial page loading, client-side rendering, and static site generation lead to faster load times.
WP is slow, and not just because of its server-rendered architecture. Every page load drags down the entire site’s performance.
Here’s why:
WP runs multiple MySQL queries for every page request—queries that are often redundant or inefficient. Without custom query optimization, you're stuck with a bloated database load.
Caching? Not natively. Developers have to rely on third-party plugins like WP Super Cache or W3 Total Cache to do something that should be built into the core.
Most themes are packed with unnecessary scripts and assets that load on every page, regardless of whether you need them or not.
The solution? Aggressive caching and a CDN. But again, that’s more plugins, more dependencies, and more work.
WP claims to be free, and technically it is. But only if you don’t need a functional website.
Developers often find themselves explaining the hidden costs—hosting, domains, premium plugins, and ongoing maintenance.
The most common WP hidden costs:
Premium plugins and themes: While WordPress offers free options, many advanced features and customizations require premium plugins and themes, which come with additional costs that aren't always anticipated at the start.
Hosting: The initial hosting plan might seem affordable, but as your site grows and requires more resources or better performance, you may need to upgrade to a more expensive plan.
Domain: The cost of renewing your domain, especially if you choose a premium domain name or multiple domains, can add up over time, which isn't always factored in initially.
SSL certificate: While some hosts include basic SSL certificates for free, more advanced or extended validation certificates often come with additional costs.
Custom development: Custom features and specific functionalities often require hiring a developer, which can lead to unexpected expenses as your needs go beyond the standard capabilities of WordPress.
Migration: If you need to move your site to a new host or domain, the migration process can incur additional costs, especially if technical assistance or specialized tools are required.
Scaling WordPress can be challenging due to its reliance on a single database and dynamic content generation.
The bigger your site gets, the more sluggish the database becomes.
Here’s why:
WordPress doesn’t support sharding or any form of distributed databases out of the box. If your database grows too large, you’ll need to start implementing complex Redis or Memcached solutions to keep up.
Horizontal scaling is a nightmare. You’ll need serious engineering chops to make sure data between nodes stays consistent and doesn't lead to race conditions.
And without proper caching, WordPress collapses under high traffic. Sure, you can use plugins like WP Rocket or Cloudflare for caching, but that’s just more layers to manage.
Considering all of this, scaling WordPress requires major technical workarounds and custom development, that other CMSs handle with ease.
Did you know WordPress is the most commonly hacked CMS, facing about 90,000 attacks per minute?
In 2023, approximately 58.84% of new WordPress vulnerabilities did not require any authentication, meaning attackers could exploit them without needing to log in. Plugin vulnerabilities are especially common, with 93% of them originating from plugins.
For these reasons, developers hate WordPress and like to choose more secure CMS options.
Finally, WordPress’s tendency to break after updates is a major headache for developers. Whether it’s plugins, themes, or the core itself, one small change can send your site into chaos.
Why is WP so fragile?
Version mismatches: WordPress core, plugins, and themes all update independently. A plugin might be optimized for the latest WP version, but your theme isn’t, and bam—your site crashes. Good luck tracing the issue when everything is tangled in a web of dependencies.
Breaking changes in plugins: Many plugins don’t follow proper versioning practices, so a minor update could introduce breaking changes without warning. And since changelogs are often non-existent or cryptic, you’re left guessing what went wrong.
Custom code conflicts: Injecting custom PHP into functions.php
or directly modifying theme files works—until an update overwrites it or changes a hook. Suddenly, your custom code breaks, and you’re scrambling to figure out what happened.
Caching issues after updates: Caching plugins don’t always play nice after an update. You’ll fix the backend, but users are still seeing broken layouts because outdated cached files are being served. This adds extra layers of debugging frustration.
In short, WordPress breaks often because it’s a delicate ecosystem of plugins, themes, and core updates, all working independently. You’re constantly playing catch-up, trying to make sure one doesn’t break the other.
These are the most common "I hate WordPress " reasons, but are they justified or just serve as excuses?
Below, you'll discover things that some developers ignore and some don't. Who knows, maybe after reading this part, these reasons will no longer exist.
Although developers disdain WordPress for many valid reasons, many overlook its significant advancements over the years. In reality, WordPress is no longer the obsolete, clunky system many developers believe it is. Here’s why:
WordPress can be a headless CMS
That means it is as adaptable as you like. You can construct a variety of things on top of it. Are you worried that you won’t have enough features? Include them in the code. Working with WordPress involves a solid understanding of PHP and MySQL. If you don't have experience with these technologies and wish to use a custom front-end, use WordPress as a headless CMS.
Going headless allows you to decouple the backend from the frontend and turn WP into just an API that serves content.
Build your frontend with React, Vue, or Next.js. Use the WordPress REST API to fetch content, while a modern JavaScript framework handles the user experience. Your users get lightning-fast, client-side rendering, and you no longer have to wrestle with slow, monolithic page loads.
You will be able to update your front end several times because you are only changing the front side of your website.
WordPress REST API
WordPress REST API allows WordPress developers to interact with content, media, and settings using JSON objects. This RESTful approach replaces the clunky, PHP-based APIs of the past, making it much easier for developers to build dynamic, scalable applications on top of WordPress.
Gutenberg’s block-based approach allows developers to create rich, dynamic content with modern JavaScript while maintaining a user-friendly interface for non-technical users.
With this, developers don't have to rely on shortcodes and meta boxes to build complex layouts.
WP-CLI
WP-CLI is a command-line interface that allows developers to manage WordPress installations with ease. From updating plugins and themes to migrating databases and fetching external data, WP-CLI reduces the manual effort required to manage WP projects.
Version control with Git
While the WordPress core still relies on SVN, developers are not limited to this outdated system. By using Git for version control and deploying updates via tools like GitHub Actions or Capistrano, developers can manage their WordPress projects. Git-based deployments can be automated to include testing, compatibility checks, and more, ensuring that WordPress updates do not break the site.
WordPress is not inherently bad—far from it. The platform has evolved significantly over the years, incorporating modern tools and practices that make it a viable option for developers who know how to use it correctly.
In the end, WordPress isn’t the problem—it’s how you use it.
If you don't want to learn to love WP, WordPress alternatives, such as BCMS headless CMS, can help you with web development.
Get all the latest BCMS updates, news and events.
By submitting this form you consent to us emailing you occasionally about our products and services. You can unsubscribe from emails at any time, and we will never pass your email to third parties.
There are many actionable insights in this blog post. Learn more: