Continuing on our series of things most agencies won't tell you, nobody actually likes Wordpress. Not your developers, not your designers and not even your clients. They might use it everyday sure, out of habit or because they have to but it's not a CMS that brings joy to anyone. Well, except perhaps for the agency bosses who can overcharge for a subpar product...
We'll de-structure Wordpress from top to bottom as we get more and more technical into why it just sucks.
What's Wordpress good for?
Nothing. We keep making excuses for using it, yet nobody ever praises it, it's like you're meant to hold some cognitive dissonance to be able to use it:
- "it has a rich ecosystem" - only in the same sense that Amazon can deliver anything, what does it matter if the quality is not guaranteed? Wordpress can't hold a candle to the ecosystems presented by Drupal, Laravel, Strapi or Payload
- "clients already know how to use it, it's familiar" - this is just an outright lie as the UI of WP is arguably the worst, deeply stuck in the past and as if editors struggle with modern alternatives, roll the eyes for this one 🙄
- "we can easily hire devs for it" - translation: it's the easiest platform to underpay people on due to the point & click and cowboy nature of Wordpress
We wanted to write "Wordpress is what 5 high-schoolers might output on a weekend hackathon" but it's simply not true any more as code standards have moved on drastically.
The interface, is it even mine?
No seriously, look at this, is this even my website? The interface of a bulletin board you might find on a school intranet in 2008, except this is the most used CMS and it's 2023.
Adding content shouldn't stress you out. Mind you this is for a simple site where the most complex component is a contact form. What you get is the web UX equivalent of entering a dollar store, and this is one of the cleanest Wordpress sites out there.
Let's look at the some of the competition on the market.
Payload doesn't throw the sales catalogue at you, it's just content.
Strapi also respects your sanity, speaking of which as seen below is also a clean canvas for your content and for your developers to build a good experience.
Editing content is not much better. You either use Gutenberg, an editor where developers suffer and editors can just about figure it out or you use one of the myriad of third party plugins just waiting to further upsell their services.
Gotta go slow!
So we're on the same page when it comes to the interface, what about performance? Well out of the box, Wordpress is just about ok but not great and it really should be better as you haven't even installed the necessary plugins yet. The caching mechanism it offers is weak so you have to install a plugin for improved caching and most companies are going to deploy Wordpress behind another layer of cache such as Varnish because they have to.
Running it headless via a REST API is also very slow and the developer experience is just not very good with a confusing API, slow speeds and lack of customisation. Oh and also, no generated Typescript types for you, since it's of course a PHP CMS.
A lack of solid foundations
Wordpress still makes some mindbogglingly stupid assumptions such as that you just want to blog! (hint: it's not even the best at that)
A lack of clear code standards and way of working has also resulted in a lot of security issues as the plugins don't have to follow any set standards, nor are they provided with a clear path that a framework such as Laravel has via its core services and methods to avoid common security pitfalls.
Baffling core decisions
- Absolute URLs, the only CMS to still do this and vehemently defended by core developers, weird hill to die on
- All content is a post, sort of, it's weird but it still assumes you just want to blog in the most ephemeral way possible
- Terrible database design, do not look under the hood as nothing is clear or standardised in this area
A developer problem is a designer's problem
We keep talking about these technical aspects and that's because we believe that, in this particular case, design and development are two sides of the same coin. If a developer does not have a set of tools that empowers them to deliver a quality product, then the design will have to be stifled too as we deal with deadlines and budgets in the real world.
Some people may respond with "you just haven't used ACF". We have. It's better but not great, ACF with Gutenberg still means you the developer suffers while trying to hide that pain behind a somewhat passable interface for components. Development should be fun.
What are my options?
The web has moved on to a headless approach where your CMS software is separate to your frontend, this approach has a few advantages, namely in performance, developer experience and deployments. We are biased towards using Payload, seriously it's good, but you can't go wrong with a modern CMS like Sanity.io either if you're ok with the vendor lock-in.
It's important to realise that when you're starting a new project and you're already compromising on such a fundamental piece of it, the core of your business logic, you're not giving yourself the best possible chance. So take the plunge, do a one time data migration off Wordpress and you'll notice improvements across the board for all team members.