Originally written Feb 2010
I'm often asked which of the three major free CMS's are worth a clients time. Truth be told, it most likely depends on their ultimate goal with the site. Wordpress currently is the most popular, but that doesn't mean it's the best nor the right choice for your website. Over the last few years all 3 CMS's have gained a lot of popularity.
As you can see, Drupal is the furthest behind while WP leads the way. This most likely is attributed to ease and usability rather than "which CMS fits the project best". If a developer knows how to do one over the other, the options are irrelevant and they will continue to push the (often incorrect) CMS onto clients. We will go over 8 aspects for each CMS (Ease/Usability, Community, Features, SEO, Scalability, Best Attribute, Worst Attribute) and hopefully make your next CMS choice an easy one.
The little water drop that could! This CMS was developed by the infamous Dries Buytaert. Dries still to this day continues to play a major role in it's development, continually working with developers at conferences (DrupalCon) and other functions while still allowing the community to ultimately control it's fate. He is also the founder of Acquia, a successful venture providing commercial Drupal support. In 2001, the original project was a message board that was released as open source and has grown nearly exponentially since it's inception. Drupal is the least popular of the three but in my opinion can become the most powerful and popular with some more novice friendly implementations, Drupal is like learning martial arts, it takes a long time to learn but once you, do you can kick a lot of ass.
Ease/Usability: Drupal is notorious for it's steep learning curve and unfortunately, this is true. It's pretty difficult for a first time developer to understand how to hook into modules or even to drop some code in the proper place. The reason for this is because Drupal is also the most dynamic and flexible. This is achieved through a more abstract model where all content (pages, forum posts, invoices) is essentially created the same way, but is then processed differently by name. This allows your code to benefit from a very robust core API and will perpetually allow others to do the same with your code (This model really strives to prevent repetition). The understanding of this context will of course make it more difficult to learn. You could never develop a massive social network in Wordpress, but you could in Drupal, quite easily. For advanced users, Drupal is the choice. It's simply the most powerful of the three.
Designers often struggle with Drupal as well, there are a lot of areas that are themeable and not necessarily easily realized. Also to design a Drupal site properly you will need to know the core of the theming layer pretty well (which most designers do not have the time, skillset or will to learn).
The back end for the user could be a lot better as well, it lacks a core WYSIWYG (without a 3rd party module) and often provides "too many options". Clients sometimes find it difficult to even understand what a node is. The word on the Drupal street is that Drupal 7 will be a lot more user friendly but we shall wait and see.
Community: Absolutely the best community out of all three. It is fantastic, the amount of modules is overwhelming. The community ports nearly every cutting edge item available and is pretty up to date. Anything from SIFR to Lightbox is easily installed with a module. You would be hard up to find a function or ability that is not acheived with a Drupal module (which is easily found and quick to install). The templates they offer are really nothing to write home about, but they are improving. The community is very willing to help you and that goes a long way. They also have a lot of pride, I was at DrupalCon DC and I can say the pride amongst the users beats any other CMS hands down. They are very optimistic that this will be the only CMS that matters in the near future. It's almost like a cult movie, where when you "get it" you can't stop expressing your love and enjoy showing others.
Features: Drupal offers it's users thousands of modules that can do almost anything you would ever want. It also offers multiple content types, not just pages but forms, profiles and news articles. Once you can grasp how to create content types and do basic features you have the ability to develop elaborate sites with communities and social features in hours, not weeks. It also allows users to edit content and features via the front and back end, which is nice for new users. It offers threaded comments and search features built in. Drupal also comes with a layered permissions system centered around roles assigned to users, fantastic for sites with complex workflows.
SEO: A lot of what's built in is much better for SEO than the others. SEO Friendly URLs are implemented in core and are executed almost without thought as you create nodes/pages. Lots of modules are available to increase your SEO (including SEO Checklist) with no experience at all. Tagging systems are within each node and keywords are generated based on content providing good SEO. Even someone without any experience will find themselves with better ranks when ported into Drupal.
Scalability: It's scalability is a major issue that will not be resolved in the near future, a decent site can make up to 300 requests to the database per page. This is weak, everything is "joined at the hip" which is the centralized database, no clear cut resolutions other than caching, which can go a long way as long as you are serving static pages. This solution falls short for social networks and dynamic sites that require users to log in and view dynamic content.
Best Attribute: The community.
Worst Attribute: (I bite my lip not to say their logo) Usability/learning curve.
The "all together" CMS solution was started by MasterCheif (Andrew Eddie) upon leaving the Mambo development team and starting OpenSourceMatters, a site to inform users of updates. In 2005, after much input from the user base- the name, logo and initial core were complete and have been promoting ever since. It has achieved a lot of popularity with it's presentation and usability. It currently at 24 on the Alexa ratings and 2nd place in popularity amongst the free CMS options.
Ease/Usability: This is what pushes Joomla ahead of Drupal. It's usability/user friendly interface for newcomers is essential to it's success. It is quite simple to add and edit pages. Built in WYSIWYG, easily understood navigation systems and basic features keep a novice from blowing his brains out.
The design layer is about the same as Drupal, they both don't have a lot of amazing designers developing templates and new designers find it slightly overwhelming to develop for on initial attempts. This often leads to block-y designs with often clear cut columns and little creativity. Most Joomla sites look the same.
There have been some complaints such as how pages have to be linked to a menu system (regardless of visibility) which can cause confusion but as a whole they execute a user friendly experience (while staying in the client realm of things you'd like to do). Also if you wish to do such dynamic sites like social networks with advanced features that may not be ready for you, PHP developers are discouraged at how hard it is to simply add a php snippet, this is attributed to it's limited modular capabilities, where modules have a hard time getting the rigid core to play nice.
Community: A large community, I don't view it as loyal or die hard as the Drupal developers but I do see it's popularity. It's support site is in the top 500 sites on the internet and that says a lot. Although it's documentation has been criticized, finding answers from other users should not present difficulty. There is constant communication amongst it's uses on the forum.
Features: It has a lot of things you'd come to expect (such as User Management, Contact Management, Polls and Search Features) and even some you wouldn't expect (Media Manager, Advertising Systems and Language Managers). Almost all easily understood and easily to implement on your site. Unfortunately though it lacks basic things such as a built in commenting system (upgradable) and SEO items like clean URLS. Also sometimes the plug-ins do not install properly and some are not free.. (this bothers me when dealing with such open source platforms).
SEO: With a lack of clean URLS and almost horribly unique url syntax like Component and Option (i.e. www.yoursite.com/component/_weblinks/catid,6/Itemid,15/), a Joomla site is easily identified. It really does not show near the care for SEO as Drupal or even WP. Hopefully this will be resolved in coming versions.
Scalability: It's scalability is essentially the same as Drupal, poor. With lots of database queries bogging down each page request it's difficult to see it being scalable and fast.
Best Attribute: Usability for beginners.
Worst Attribute: Flexibility
Now with 200 million sites and counting, Wordpress has become the leader in CMS development, it's massive template community and ease of use propelled this platform into every developers resume. Created by Matt Mullenweg as a fork of b2/cafelog in 2003, it's now one of the premier open source platforms and is synonymous with user-friendly workflow and plug-in rich development. When a user needs a small website or blog (and want CMS capabilities) only one option will always be mentioned, Wordpress.
Ease/Usability: When dealing with small sites with blogging in mind, there is no better solution. Wordpress's simplicity allows a user friendly back end which makes it the perfect solution for small websites and bloggers everywhere. To install a stunning base template, is extremely simple. It's a main contributer to what I call "developer guilt", when something is so easy you get nervous. The issue with Wordpress is the moment you want to do something outside of the blogging world. It's as flexible as a rock. It's so far from Drupal's capabilities, its often referred to as "barely a CMS platform".
Community: Wordpress has a great community for development and the best community for theming (even after Wordpress banned "sponsored themes" which were viewed as spam by the community). Amazing designers are completely in-touch with Wordpress's popularity and have tapped it and donated tons of great templates. Well written documentation, plentiful plug-ins and excellent base templates leave little to complain about when dealing with the Wordpress community.
SEO: With a phenomenal tagging, indexing and clean URL system, it's SEO is top notch.
Scalability: It's not very scalable and does not handle a lot of hits in a short amount of time well (although better than Drupal). There have been numerous issues when hit with a lot of traffic at one time or "the digg effect". When dealing with dynamic content, it will surely have issues when under fire, the only solution seems to be to cache as much as possible and/or present static html under the attack.
Best Attribute: Design/Plug-In Community
Worst Attribute: Flexibility
Hopefully these comparisons and brief overviews will help you when your next CMS project arrives.
Plan and accurately decide with your client. Which one suits you best? Which one makes the most sense for you?