WordPress has become one of the most popular, if not the most popular, blogging platform and CMS on the planet. In early 2017, it is estimated WordPress powers 26% of the internet’s websites. Despite its popularity there are still a number of drawbacks. I’ve compiled a list of what I believe are the major factors in play for the platform, and against it.
Disclaimer: I do a lot of work with WordPress, including custom plugin and theme development. However, I don’t believe WordPress is the only viable option for content management systems. I have tried to balance the arguments each way with the aim of being as impartial as possible.
This article was last updated in February 2017. First published 29th April 2013.
Pro: Transparent Development
WordPress, and many of the themes and plugins for it, are freely available as Open Source code under the GPLv2 license. This means you can freely modify and distribute the code without paying licensing fees (assuming you comply with other aspects of the license). This one item here is fundamental to WordPress, and has a lot to do with every other pro and con on this list.
Since 2013 (when I first wrote this article) the development process has become much more transparent. The Make WordPress site is home to many blogs and progress updates for all the different WordPress sub-projects. Anyone can go there and track the status of different developments. Most sub-projects are also active on Slack, where anyone can join and take part in the conversation. While the development process has always been open, it’s come a long way in the last four years. It’s now very easy to see what’s going on.
Pro: Massive Ecosystem
Out of all the Content Management Systems and Blogging platforms out there, WordPress would have the biggest community.
At the time of writing, there are over 49,623 plugins and 2,449 themes available for free download on WordPress.org. The number of free plugins has more then doubled in the last four years. There are even more commercial plugins available for purchase from other marketplaces (such as Envato).
The massive ecosystem of developers is even more useful if you are planning on doing custom development. There are 75,870 questions on WordPress Stack Exchange. You then have the new WordPress Developer Resource website, plus thousands of other websites. If you have a question about WordPress development, it’s probably already been answered.
Pro: Stable Update Cycle
WordPress can receive automatic updates. The WordPress Core has a regular development schedule, with releases these days very rarely breaking backwards compatibility. The Core team stay on top of security issues, and go about responsibly testing, fixing, and publishing patches.
Pro: Easy to Install
WordPress is famous for it’s easy installation process. This is one of those things they have got so incredibly right. No other self-hosted web app can compare.
After the core installation, you can also install plugins right from within the web GUI without needing to download anything or change config files. It’s too simple, that it makes installation and development of any other platform seem incredibly difficult.
Pro: Lower Total Cost of Ownership
Any tech literate person can work in WordPress. Even those non tech literate can still find their way around the main tasks. This reduces the need for formal training and external support. Even upgrades are simple.
The ubiquity of WordPress also means there is a sizeable talent pool out there of experienced WordPress people. If you need someone to do development, maintenance, or support for you then you are in luck! You could hire someone to do all of this for you, from anywhere in the world (I’m one of those people).
Pro: REST API
WordPress now ships with the REST API. This is exciting because it allows WordPress to become a headless CMS (presentation separated from CMS). WordPress now has a standard interface to connect with all manner of third-party services. As this API is fairly new to the Core release, it hasn’t been exploited to it’s fullest extent – yet.
Pro: Security Plugins
There are a number of very good security plugins for WordPress, such as iThemes Security and Wordfence. These provide Web Application Firewalls (WAFs) which monitor all inbound requests and block malicious requests before they can do any harm.
This is particularly useful given how much insecure WordPress code is still out there. Having dedicated security experts working on these tools is something you don’t necessarily get with other platforms.
Con: Difficulties with Visual Design
WordPress has a reputation as a difficult platform to design on. This is partially true. There is no universal drag-and-drop WYSIWYG site editor, like you’ll see on Wix and other DIY website platforms. Everything needs to be hand-coded, which is fine for experienced developments but impractical for the smaller guys.
For this reason, WordPress may not be the best option for the casual website operator.
Con: Open Source
Many people see Open Source software as some wonderful, magical thing, free for anyone to do anything with. Sadly, it’s not quite like that. Yes, you are granted a number of freedoms not available with closed-source software. But it is wrong of anyone to assume it’s a free-for-all.
WordPress is licensed under the GNU General Public License v2.0. This is regarded as a “strong copyleft” license. One of the key aspects of the license is “all modified copies are distributed under the GPL v2“. WordPress interprets this to mean “plugins and themes are derivative work and thus inherit the GPL license“.
- Does this mean any code you create and distribute must be GPLv2 licensed? Yes.
- Does this mean anything you build for internal purposes only has to be GPLv2 Licensed? No.
- Does it mean that you have to distribute your code to everyone? No.
Clearly there are some limitations. You might want to build proprietary plugins for the world, but release the code under another license. This is technically a violation of the licensing terms. Even though it’s open source, you’ve got to be careful with what you do.
Con: Limited Permissions Scoping
A “real” CMS will give you granular control over who can access and edit every aspect of the site. You can create groups and assign people to them. WordPress doesn’t support this by default, and you need to use a third-party plugin for this.
Using a plug-in for something as fundamental as security and permissions isn’t ideal. I have built a couple of sites that require granular permissions. It’s quite tricky to find a plugin that actually works as required and doesn’t break too many other things.
Con: Restrictive Content Model
Historically WordPress has been designed as Blog platform. As such, the content model is a little restrictive. Out of the box, you can’t natively define multiple content areas within one template. You need to start programatically adding custom fields and handling them all yourself (or using plugins such as Advanced Custom Fields, and SiteOrigin Page Builder).
Other CMSes handle this a lot better and allow the users to add multiple content areas as a part of the native CMS. This is not an issue at all for bloggers and some smaller sites, but becomes problematic if you are designing for the Content Everywhere revolution.
Con: Internal API Inconsistency
A lot of inconsistencies exist with the internal API. WordPress was never designed as an Object Oriented platform, and thus a lot of inconsistently named functions exist. Moves have been made to make everything much more consistent, but a lot of the legacy function calls will never be done away with. I’ve been developing for WordPress for quite a few years now, and I still have to look up the reference for many of the common functions!
WordPress is used by some major websites. However, there’s a lot of behind-the-scenes work which needs to happen to make these sites scale and handle all the traffic. A lot of it is not obvious to the average WordPress developer or user.
What cache plugin should I use? Is my shared hosting good enough? What will happen if I get mentioned by a tweeter with a large following? Will my site survive, or will I be throwing out all of that precious referral traffic?
What are your pros and cons for WordPress? Let me know in the comments below.