In this edition of “This Vs. That” series, our Mightybytes developers Bryan Zera and Davo Hynds go head-to-head over content management systems by trying to answer “Which CMS is better for your website: Drupal or WordPress?”
Drupal and WordPress are the two most popular open-source CMS platforms on the internet. Each has its own set of advantages and challenges which position them to uniquely tackle specific problems. However, the two platforms do offer plenty of shared functions. Both Drupal and WordPress are capable of running on most commercial hosting platforms and can use the same database backends. Both have roughly similar system requirements. Ultimately, both systems are capable of solving the same problems, although it may take some extra effort to get one system to perform the same functions that the other does natively.
Ease of Content Administration
BZ: Drupal doesn’t have a lot going for it in this category. The names of the default content types may not make sense to a CMS administrator. If you want to use a WYSIWYG editor, you’ll need to install a contributed module and configure it. The default node types don’t include any method of categorization. Drupal gives you almost nothing out of the box. Instead, it requires that you install contributed modules to provide the functionality that is provided by other CMS, like WordPress. For CMS purists that don’t want a lot of overhead, this can be a feature, but for content administrators, it requires that you have someone who can build you the functionality you want.
DH: WordPress is a strong contender in this arena. Although it now functions well for a variety of applications, WordPress was originally created to be a blogging platform. As such, the admin area was designed for content-driven websites. It has an intuitive user interface, easily navigable back end, and comes with a WYSIWYG editor out of the box. Even the terminology it uses is more friendly to the non-techie crowd (posts, pages, categories and tags, versus Drupal’s enigmatic “node”). By default, the post editor includes a title, content area, thumbnail, and hierarchical and non-hierarchical taxonomies (categories and tags).
Ease of Theming
BZ: Theming in Drupal can happen in several places within the CMS. Sometimes, it takes place inside a function you create. Sometimes, it takes place within a file. Those theme functions and files follow specific naming conventions that make logical sense to a Drupal builder, but for someone looking to make a simple change to their site, knowing where to make the change is difficult. Add to this the fact that Drupal can have multiple themes enabled at once and you’ve got a theming situation that is unapproachable without prior experience and research.
BZ: Drupal’s architecture lives by the contributed module. While Drupal’s core comes with modules that can be enabled to extend Drupal’s functionality, you will be hard pressed to find a Drupal site that used no contributed modules. The modular approach helps shape development of each major release of Drupal, as major releases now tend to subsume the most popular contributed modules, making the functionality that the Drupal community found most useful part of the Drupal core. The structure of how modules operate includes a dependency hierarchy—making it possible to build on the work of others. Personally, my top modules (of the more than 28,000 available) for Drupal are Views (which is part of core in the upcoming major release of Drupal), WYSIWYG, IMCE, Media and Devel.
DH: WordPress has a strong community of contributors who create plugins (like modules in Drupal) that extend the native functionality of WordPress. You can research and install new plugins directly from the WordPress admin area. You don’t have to visit another website, download or FTP files, or use a special plugin or command line tool to install plugins. A brief search and a few quick clicks are all it takes. To date there are 33,670 plugins available on WordPress.org, and many more proprietary plugins available for purchase and download around the web. If searching for the right plugin still feels daunting check out Tidy Repo for a vetted, curated list. Regardless of how you use WordPress, some universally helpful plugins include Advanced Custom Fields, W3 Total Cache, WordPress SEO, Contact Form 7, and WordFence Security.
Ease of Finding Quality Developers / Market for Talent
BZ: Quality Drupal developers have spent several years honing their knowledge of what certain contributed modules can do and how different contributed modules can interact to solve user stories. A lot of new Drupal developers don’t have that experience. Due to the time commitment needed to gain that experience, good Drupal talent can be hard to come by and can be expensive. Also, there is likely more than one way to solve any user story with Drupal. This flexibility is great for a CMS, but makes creating a standard certification program for Drupal developers difficult. Acquia, a Drupal PaaS vendor, has created a certification program, but it revolves around the use of their service and not the Drupal CMS itself. Dries Buytaert, the creator of Drupal, thinks that a certification program for Drupal will be forthcoming, but not from the Drupal Association.
DH: Compared to Drupal, WordPress has a lower learning curve, which has advantages and disadvantages. While there is high demand for WordPress developers, a lower learning curve means its more accessible and easier to get the basic necessary experience for new developers. Related to that, WordPress has less infrastructure for finding and verifying quality developers. There is no official WordPress certification process or directory of approved vendors. This fact and the low learning curve make it more difficult to find and evaluate quality developers. It is easier for WordPress developers to misrepresent their skills and abilities compared to seasoned Drupal devs, but there tends to be more of us around.
Security / Updates
BZ: In the past 12 months, eight total updates to Drupal core have been released, five of which fix security vulnerabilities. Updating Drupal requires putting the site into maintenance mode (which makes the site inaccessible to users), replacing the core files, running an update script to perform updates to the database structure, and then taking the site out of maintenance mode.
DH: This is where the WordPress/Drupal debate really begins to equalize. One advantage WordPress has here is the relative ease of applying updates. There’s no maintenance mode. Updating requires just a few quick clicks in the admin area, a task that rarely takes more than 15 minutes. While WordPress is easier, I will concede that Drupal is recognized as the security juggernaut of content management systems. WordPress doesn’t perform poorly in this category, but like the previous category, Drupal has a more developed infrastructure in this regard. WordPress has had 14 core updates in the past year, including three minor releases and one major release. However, unlike Drupal, WordPress doesn’t differentiate between security updates and feature/bugfix updates. Although the WordPress Core is reasonably secure, plugins can often introduce vulnerabilities. For an in depth exploration of this topic, check out our blog post on WordPress Security.
BZ: Up to this point, Drupal has taken a beating at every point we’ve compared it against WordPress. This is the section where Drupal shines. Drupal has matured enough that major organizations in every industry use Drupal. Platform-as-a-Service vendors like Acquia and Pantheon have sprung up to fill the hosting needs of high-availability Drupal sites. With unit testing built into Drupal, developers can be assured that their work meets exacting business goals. Backups can be managed by contributed modules or by using Drush. Configuration settings of the CMS can be encapsulated and committed to your source code tool. This allows you to migrate your configuration changes from your development to your staging to your production environments, which is crucial for enterprise level projects.
DH: This is the point in the matchup where WordPress is left looking a little dazed and ill-prepared. WordPress does offer a few Platform-as-a-Service vendors: Pantheon and several others. However, WordPress is noticeably lacking in terms of maintenance and configuration tasks. Several plugins exist that help fill this gap, but even these don’t go far enough to catch up with Drupal. WordPress doesn’t have any native way to backup your site files or database, so you will need to install a couple plugins to do this for you. WordPress also doesn’t have native unit testing, so you’ll need to do it manually or find some plugins to help out with this. Finally, short of manual database migration, WordPress doesn’t offer any way to migrate configuration settings nor are there many plugins that are very helpful here.
At Mightybytes, we decide on the CMS for a project using the following loose criteria. First we determine if the site is data-focused with complex relationships between content to be displayed in a variety of ways. If so, then Drupal will likely be the CMS we use. If the website’s focus is organized, textual content and needs a rock-solid content administration interface from the start, WordPress is likely to be used. Ultimately, the decision about which CMS to use should come after making an assessment of what kind of site you want to build, where it will be hosted, how it will grow, and who will developing and managing it.