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 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:
- 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.
- 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".)
- 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.
- 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:
- 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.
- 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.
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:
- 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.
- 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.
- 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:
- 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.
- The taxonomy and vocabulary stuff may be very powerful, but is also a beat-down for simple blogging needs.
- The WordPress editor is much better than the FCKEditor.
- 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.
- 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.
- 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?
- 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.
- 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.
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!
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.
Nice article. I've been down a very similar path, with similar general feelings to you. You've summed up my position well, as I look on the task of converting a big HTML site into Drupal. I've kicked Wordpress around, and love what it does -- it simply doesn't do quite enough for my needs. But you're right -- for most people WP is a great solution. I am persisting with Drupal because I feel that the journey, although longer and tougher, will be worth it.
PS I just noticed that this was written in May. Any chance of an update?
Sure, here's a quick update:
I haven't worked with WordPress since I wrote this post, but I've made some decent progress with Drupal. I launched a new website named AlaskaSquirrel.com that I created with Drupal. It uses the Book module, and while I look back and laugh at that theme now, I created that theme using the Zen starter theme.
In a much larger effort, this past weekend I just converted this devdaily.com website to use Drupal. The devdaily website currently uses 19 third-party Drupal modules, with a few more to come this week.
Before I go off and make this too long, here's a summary of my current thoughts about Drupal:
- If someone just wants to create a simple blog, I'd go with WordPress in a heartbeat. The learning curve with Drupal 6.x for a simple blog wouldn't be worth it.
- I've purchased three books to help me through the Drupal learning curve.
- Now that I know how most things work, I really like the architecture, and I feel like I can do almost anything I want to do with Drupal, both with themes and modules.
- It's very nice to have the roles and permissions be a part of the core, and then if I want to add a photo gallery, workflow, or forum, I can just pull out the O'Reilly Drupal book and figure out how to configure it.
- Finally, if I was going to start another company to build dynamic websites for my clients, I would use Drupal for the foundation for building those sites. Despite the negatives I wrote about in my original post, I really like the Drupal architecture, and I can't think of anything I want to do with Drupal right now that I don't know how to do.
For the record, I've been working part-time with Drupal for three months now. It is a steep learning curve, but if you're working on one large site, or multiple dynamic sites, I'd certainly recommend giving it a spin.
Drupal has a lot of power but with great power comes great lag. You have to use many modules to create a functional site which means it will be slower.
Now with Drupal 6 you do have some performance features but still, the power resources with Drupal is heavy, dare I say bloatville. I sometimes feel like I have to put shovel coal into the engine just to kickstart it every morning, it feels like a chore.
With Wordpress you might need 10-15 plugins to create a really fine site. With Drupal you might need 50-80 modules, ridiculous, say it with me.
And every time you need to add more functionality, you need to install yet another module, very easy to have 100+ modules. Some areas you need 3-5 modules to do what just 1 Wordpress plugin can do.
Drupal has great potential and the multi-site function kicks Wordpress to the curb 10-fold. i just wish it used up less resoruces and was quick and fast like Wordpress.
I need to preface my statements with "I've never used Drupal 4.x or 5.x", but so far I haven't had any performance problems on this site using Drupal 6.x. At this point I don't have caching enabled, and I also haven't done any MySQL performance tuning yet.
For stats purposes, this site currently has nearly 1,500 blog posts, or Drupal "nodes". As of this moment, there are 22 Drupal modules installed, and the database has increased to 86 tables. I don't give out page view information, but you can find ballpark information on alexa.com or elsewhere. Also, right now the site is probably 95% database reads and 5% writes. Based on my current plans for this site, I don't think I'll get above 30 modules this year, but I could be wrong.
I'd like to see a Drupal versus Wordpress performance comparison, but I didn't see anything like that in the SXSW docs.
Really, my biggest frustration with Drupal is having to install modules that I expected to come with the core, modules like "Meta tags" to get meta tags on blog posts, and Pathauto to get human-readable URLs. I don't know anything about Drupal 7, but hopefully these will move into the core in that release.
But even with that complaint, I'm very happy with Drupal so far.
each of that CMS has benefit and weakness. But I prefer drupal to build web to wordpress. Good comparison review. Nice posting. Thank's
This was an excellent, unbiased review. I came to the same conclusions in my research. I have used both and am now preparing to launch a new site with Drupal only because we plan to eventually turn it into a newspaper. If it were to remain a blog, I would choose Wordpress.
I think Drupal is for people who
a) Want to get a Drupal job
b) Want to make money teaching it.
c) Like to think they are superior.
I use Wordpress, and i find its the best way to get from point a to b and focus on the travel, if you get what i mean. I tried to use Drupal, I gave it 1 day...I also stared at it, and stared at it,,, then I deleted it and installed Wordpress. My project was completed in 3 days.. Sure, its mostly for blogs, but don't kid yourself, you can tweak it easily and make it fit other types of projects, including powerful database apps, e-commerce and corporate sites. And lets face it, the days of regular websites are over... Most companies want a site with blog and social marketing features.
Ok ok, maybe you potentially (with too much work) can do more with Drupal if you are trying to create a community site with many user blogs etc.. But in that case you are better with Elgg, Social engine, or WP MU. I think social community sites are a passing fad anyway, because people are turning to the big all inclusive irons ie: twitter, facebook, myspace, xing etc...
I was a developer too at one time for many years. I even used Pascal, VB, Assembler...but Who cares...The future is about creating concepts quickly...
Getting started with Drupal 6 was definitely rough, but for my purposes (this website and a few others), I'm glad I made the switch (for all the reasons stated above).
FWIW, the Drupal 7 release is almost entirely geared at making Drupal more user-friendly, and now that it's officially in a code freeze, I look forward to giving it a test drive soon.
And in a timely/related note, Drupal just won the "Best Open Source CMS Award" for the second year in a row.