A comparison of WordPress and Drupal (May, 2009)

Summary: A comparison of Wordpress and Drupal, circa 2009. (2011 Update: Drupal 7 is much easier to use than Drupal 6, which was described in this article.)

I've used WordPress as a blogging tool for several years now, and just three weeks ago I switched to Drupal because as I looked at adding other functionality to my OneMansAlaska website -- including a photo gallery, and other plans for a Wiki and Event Calendar, I didn't like what I was going to have to do with WordPress to make that happen. As a result, I think I'm qualified to write a little bit about the differences between WordPress and Drupal, and I thought I'd share my thoughts here.

WordPress review

WordPress is the best blogging tool I've ever used. At installation time you just install it, log in, start using it, and everything makes sense, and just works. It's great for creating blog posts, and really nice for adding images to blog posts, which was very important for my writing on my Alaska website.

WordPress has all the basic features you need for blogging, plus a ton of other cool features, including the ability to post articles at future dates, and the ability to create posts via email. There are also more than 4,000 plugins available through a vibrant developer community.

All in all, WordPress is a tremendous blogging tool, and you're going to be the only author on that website, and if that's all you need for your website, I wouldn't even bother reading the rest of this blog post, because when it comes to straight up one-person blogging, WordPress kicks Drupal's behind.

What I like about WordPress

Here's a summary of the things I like about WordPress:

  1. WordPress is easy to use, in every respect, from initial installation, to everything related to blogging. I know many non-techies who use WordPress every day.
  2. There are a ton of free themes for WordPress, though I must admit, I was looking into buying a "professional" WordPress theme right before I switched to Drupal. The free themes were nice, but none was exactly what I was looking for. (Now I understand why you see all those Digg links on "54 Great Free WordPress Themes".)
  3. After using the FCKEditor with Drupal, I appreciate the WordPress editor even more than I used to. I haven't used a lot of different tools, but I don't know of a better online editor than the WordPress editor, especially when it comes to adding images to your blog posts.
  4. There are many, many plugins available for WordPress.

What I don't like about WordPress

Here's a quick list of reasons I looked at switching from WordPress to Drupal:

  1. As I looked at adding a Photo Gallery to my OneMansAlaska website, I realized that I was going to have to download a third-party photo gallery tool, and then customize its look and feel to look as much like my WordPress site as possible. But worse than that, users were going to end up with one username and password for blogging, and a second username and password for uploading photos.
  2. As I looked at adding other functionality to my website I realized I'd keep having this same problem over and over: Each new module would have its own look and feel, its own navigation system, and its own database for usernames and passwords.

A nice thing about WordPress is that they have a page of "WordPress ideas", where users can discuss what features they want to see built into WordPress next.

Given these concerns, I looked around and found tools like Joomla and Drupal, and eventually settled on Drupal.

Drupal review

I've been working with Drupal on and off for the last three weeks, and in many ways it's the exact opposite of WordPress. With WordPress, I installed it and started using it immediately; with Drupal I installed it, then sat there and looked at it, trying to figure out what to do. After a little while I watched some Drupal videos. Then I went to the bookstore and bought a Drupal book.

After a few days of trial and error I got some of the blogging and photo gallery features working. I learned how to install Drupal themes, and found a couple I liked, so I was happy there. (Finding and installing these was almost as easy as the WordPress approach.) I even figured out how to bring all my old WordPress blog posts (over 200 of them) over to Drupal, although in the end I had to go back through and reformat each one.

Drupal taxonomies, vocabularies, and difficulties

Next, don't even get me started on Drupal "taxonomies" and "vocabularies". What WordPress makes simple, Drupal requires you to read a dictionary to figure out what it is they're trying to do. Yes, you can create things like categories and tags, but again, WordPress does this so simply you don't even think about it, while in Drupal you have to define your own ability for categories and tags. It's like you're the developer creating this functionality for someone else, instead of being the consumer of this functionality.

Oh, and if you want a simple list of categories to show up on your front page -- like WordPress displays automatically -- you have to write a little PHP code, create a block, and then tell your theme where to display that block. Yes, I admit, this is very powerful and flexible, but yeesh, you're telling me that non-techies are going to first have to search the internet to figure out how to do this, then copy and correct the PHP code, and figure out how to create and place a block? I'm sorry, but you're really limiting your audience here.

I could go on for a while, but I think you get the idea: Installing and configuring Drupal can be a beat-down, and I'm a developer. I can't imagine what this would be like for someone who isn't a developer.

What I like about Drupal

(This section could also be titled, "Why I continue to use Drupal after every bad thing I just wrote about it.")

After writing those last few paragraphs you'd think I'd switched back to WordPress by now, wouldn't you? But I haven't. I won't say that I've mastered Drupal yet, but I do have it working, and these are the reasons I'm continuing to invest a lot of time in it:

  1. I want the OneMansAlaska site -- and several other future planned sites -- to be multi-user, social sites, right out of the box, and Drupal has multi-user features built in, including features for roles, permissions, and workflows.
  2. Drupal is very flexible, and that's both its strength and its weakness. Yes, you can create a Photo Gallery with Drupal, and as I write that sentence, I think, "Wow, I can't believe I know how to create a gallery with Drupal now", because three weeks ago I was scouring the internet for Drupal photo gallery plugins.
  3. I am a programmer, and while I'm still fighting with Drupal's "Views" module for building database queries and dynamic pages and blocks, I feel like I'll eventually get it down, so I can create any sort of page content I want.

What I don't like about Drupal

I'll try not to be redundant, but here are the things I don't like about Drupal:

  1. It takes a lot of different modules to get Drupal running as a decent blogging tool. It would be great if the Drupal folks offered a bundle of all these plugins to save you a bunch of up-front work. You can't just download Drupal and start blogging; you need to download and install modules like PathAuto, ImageField, ImageAPI, FCKEditor, and other modules and all their dependencies. Come on guys, this is 2009.
  2. The taxonomy and vocabulary stuff may be very powerful, but is also a beat-down for simple blogging needs.
  3. The WordPress editor is much better than the FCKEditor.
  4. Unless I don't understand something, it's a real pain in the rump to add images to blog posts. In WordPress you just upload the image into your post, but the only way I've been able to do this in Drupal is to first upload all my images, then write the blog post, and reference the URL for the image(s) I want in the post. This is very clunky.
  5. The menu system still confuses me on a regular basis. It's so complicated I've had to make a lot of notes about where to go to modify everything.
  6. Not having off-the-shelf functionality to display a category list on the front page just blew me away. How can this not be built in?
  7. There are probably fewer themes available for Drupal than WordPress, maybe by a factor of 10, but I was able to find a few themes I like, and I now know how to customize them.
  8. After three weeks of using Drupal, I have to keep reminding myself that I chose it because it is more powerful, and I don't have to deal with all those WordPress integration issues I mentioned earlier.

Yeesh, if nothing else, it feels good to get that stuff off my chest.

Comment about security

I'm impressed by both the WordPress and Drupal communities in regards to their concerns for security. Both communities take security very seriously, and offer frequent patches to their systems. Both products have a way of letting you know through their admin interface when a patch is available. My guess is that either system is going to have at least 2-3 security patches each year.

Other tools

Before making the commitment to Drupal, I did look at other tools like Joomla and Plone, but in the end I settled on Drupal. I had a very bad impression of Plone; its interface seems very dated, and its performance was very poor. I'm also not a big fan of using a proprietary database.

Joomla seems like a potential competitor to Drupal, and I must admit to thinking that I should have given it a longer look. But in digging into other reviews on the internet I kept finding people writing that the Drupal architecture is superior to Joomla, and I never found a reference that said "Joomla has caught up to Drupal". I also had a bad experience with Joomla when working for a client who had installed Joomla as their CMS. Hopefully their system was just misconfigured, but like any end user, that sort of experience leaves a bad taste in your mouth.

SXSW CMS Showdown

As one final note here, this spring there was a "showdown" between three different CMS teams (WordPress versus Drupal versus Joomla) sponsored by the SXSW folks. You can find more details about the SXSW CMS showdown here.

There are some interesting statistics on the "competition" page. The Joomla solution was implemented in the fewest number of hours, with the fewest errors, and the fewest lines of custom code. What really stands out is the lines of custom code required to implement the solution:

  • Joomla: 30 lines
  • Drupal: 220 lines
  • WordPress: 1,808 lines

Wow, that's what I call orders of magnitude!

Summary

If you need a nice, modern blogging tool that lets you create blog posts, add images, define categories and tags, and supports social features like trackbacks and comments, WordPress is a no-brainer choice. Just install it, use it, and never look back.

If you want a very powerful website with almost unlimited functionality (photo gallery, event calendar, forums, etc.), including built-in multi-user, single sign-on support (that includes roles, permissions, and workflows), and you're willing to invest a lot of time (or money) into the solution, Drupal seems to offer a lot of power. Now that I understand Drupal more, I can't think of any features I don't know how to develop -- other than fixing the problem related to blog posts and images -- and I'll be looking into that problem shortly.