WordPress is, without a doubt, one of the most popular open source blog / CMS on the market but it suffers from several issues that make it less than ideal for complex or high traffic websites. For years, CMS Critic ran on WordPress and today, I'm going to pit our current CMS, ProcessWire vs WordPress and explain why we made the switch and how things have changed.
Before I get into this, however, I think its important to point out that a number of popular websites that previously used WordPress to help establish themselves as major brands, have since made the switch to different CMS. Take Mashable for instance, one of the most popular websites in the world dropped WordPress in favor of a more custom solution.
In a post over on Quora when asked if Mashable still ran on the WP platform, Chris Heald, Chief Architect @ Mashable stated:
Mashable is now running on a custom technology stack. The public-facing bits are a Ruby on Rails backend, with a lot of the templating work pushed to the front-end with Handlebars and Backbone. We'll be doing a full writeup on the build in the near future.
Now, this is just one example but there are many. Having said that, there are also plenty that are successfully making use of WordPress as their platform of choice and likely have no plans to switch. Each situation is unique. This isn't intended to be an “abandon ship for the end is nigh” post but rather to show another side of things. Sometimes the “WordPress is the best 3ver !!!?!?!” posts we see all over the Internet get a bit old and it becomes necessary to point out that it's not always the best option out there.
Since our first site back in 2006, we ran on WordPress. I selected it for a number of reasons; it was easy to get up and running quickly with little effort, there were plenty of themes available for it and it was gaining in popularity which meant it would be easier to find support if needed. WordPress served us well for a number of years but we began to run into issues with the CMS that still plague it to this day. I'm going to break down the issues and address the differences in how things are handled between ProcessWire vs WordPress and why we prefer the former.
The #1 reason why we switched to ProcessWire from WordPress was bloat. Sadly, WordPress suffers from massive bloat issues that plague the CMS and cause countless headaches for those using the platform.
What do I mean by bloat?
WordPress; like a lot of CMS platforms; relies heavily on plugins for extra functionality over and above the core services. The main issue, however, is that these plugins are not actively vetted out (or tested) by core team members to ensure they use optimized code and are safe for your site. This means that by installing a plugin, you can bring down your whole site and cause yourself mountains of headaches all because you wanted to add some extra functionality.
Sure, you can have an extra instance of your CMS in a development state (and you should) in order to work on it but the average joe isn't going to go install two instances of WordPress for their blog. They most likely will simply choose to install and assume everything will continue to work as it should. An assumption that should be realistic.
Countless times when we were running on WP, we would have no idea that a plugin we installed broke some other functionality within our site until a user let us know. Let me tell you how embarassing it is to get an email from a user telling you your RSS feed is broken (and all because you wanted to add some fancy new widget to your sidebar).
With ProcessWire, most of the capability we require is already present within the system and anything over and above this can be added quickly and easily. We took the approach of having the author of ProcessWire (the amazing Ryan Cramer ) adapt the system by modifying templates and teaching us how to best utilize the platform to function better than what we had with WordPress.
What did we get by doing this?
A sleek system that works as intended with code that works alongside the core and does not compromise anything along the way. Yes, it cost to have this developed but this is not something you can do with WordPress. You cannot go to Automattic and ask them to build in some new capabilities for your site. Their platform is developed for a huge user base and unless that whole user base wants something, it won't be built into the core CMS.
Other frequent issues we encountered when running WP as our CMS was downtime thanks to our web hosts. We initially ran on HostGator when we first started but another frequent occurrence we would run into would be some rogue plugin causing a huge spike in memory usage which would then result in an email from HostGator support stating that due to memory or CPU load issues they've taken the site offline until I can figure out what is causing the spike. Picture yourself getting this email while trying to take your kids to the local Science Center. This happened to me quite frequently.
Since moving from WordPress, I've never received this email again.
Raise your hands if you are sick of updating your CMS and your plugins / themes every 2 days?
I'm guessing a lot of you have your hands up and rightfully so. Nothing is more annoying than the constant need to update plugins daily (I'm talking to your WordPress SEO!). While it's great that the authors are constantly updating to resolve issues and add functionality, it distracts from the sole purpose of your site in the first place, to publish content .
Furthermore, every time you update you are at risk of something breaking or causing a conflict with another plugin you have installed. Do you want to spend all of your time just trying to keep your site from breaking or do you want to get that article you've been thinking about and planning published for the world to see?
Me, I'm for the latter.
Don't get me wrong, it's great that there are people that work hard to constantly improve their product offerings by updating to resolve bugs and add features but do we need to update daily? The problem with the way things work here is that the end user typically has no idea if they need to update right away or if it can wait so they tend to update everything every time they see that there's a need. This simply compounds the opportunity for something to go wrong with a crash or conflict.
Believe me when I tell you that the plugin developers don't work together to ensure their plugins don't conflict with one another. With ProcessWire, I know that when something hits the modules directory, Ryan has had a look at it (90% of the time) and made suggestions on improvements. This doesn't mean that crashes can't and won't happen but they are far less likely (and haven't happened yet since switching in May 2013 to ProcessWire).
Caching for Speed
The next issue is with caching, WordPress has lots of great caching plugins such as WP Super Cache, W3 Total Cache and many others and while they work great to a point, they suffer from the same issues that I spoke about earlier. They simply aren't vetted out to work reliably and they overwhelm users with options and prompts to buy upgrades.
With ProcessWire, we have one plugin called ProcessWire ProCache that is installed, automatically enabled and simply does its job without annoying me with options or prompts to clear the cache. If I need to do so, I can turn it off or on and clear the cache with a simple checkbox but rarely do I ever need to touch it. Furthermore, our site loads far faster than it did in the past with a huge difference in response time over anything we had built with WordPress.
Making the move to ProcessWire was the best thing we've ever done. We have an amazingly good CMS directory that was built specifically for our needs, our system is rarely down and if it is, it's because I broke something playing with code and not because of the CMS itself.
As our writer, Kaya, will attest;
“When CMS Critic made the switch to ProcessWire, it was the sheer speed of the system which struck me hardest. Whether you're creating, editing or deleting a post, ProcessWire just seems to snap into action a lot faster than any WordPress setup I've ever used – and I have used many.
Furthermore, I've grown to prefer Processwire's interface over WordPress'. Post creation features like summary text, featured images, tags, etc, are all presented in a linear fashion, via toggle menus. It's all very clean and tidy. Paired together, the speed of Processwire along with its sleek interface makes the “ProcessWire vs WordPress” question well worth asking.”
That's not to say that WordPress doesn't have its own place. It most certainly is the top blog platform out there and if you are looking for a quick way to put together a site based off of a host of themes that exist on the market, then WP is the way to go. When it comes to the requirements of a full fledged CMS (speed, simplicity, stability) then I would quickly dismiss WordPress as a viable option.
I know for a fact that there are plenty of you who will disagree and that's great that you are experiencing success running WP in different environments but I will say that when I need something I can rely on, I will, in every instance, turn to ProcessWire as my CMS of choice.
What's your CMS of choice? Is it different than these? Do you have differing experiences? Feel free to let us know in the comments below.
** Update 7/30/14 **
I've noticed a few WP based bloggers have misinterpreted this article to mean that all publishers and bloggers should switch to Processwire because it's better at blogging. I'm not sure how this happened or why anyone would get that from this article but apparently a few people have so let me clarify a few things.