Drupal vs WordPress

When we first started developing sites in 2007, every site we built was with WordPress. At that time, these sites were smaller and WordPress was evolving from a blogging platform to a full fledged content management system (CMS). The sites that we were developing had very minimal content types and the general WordPress page content block was sufficient to give our clients a clean page admin experience. Note: we often refer to the “admin” as the password protected web portal where clients update their content.

The saying is very true “if the only tool you have is a hammer, everything starts looking like a nail”. We hit up all of the WordCamps that we could and hung out at the Automattic office, back when it was on the unstable pier in San Francisco.

Along the way, our client roster grew and we encountered needs for more content types, a richer admin experience, and a more Enterprise Level CMS. That is when we starteddeveloping sites with Drupal. Today, we are an Acquia partner, and spend our conference time at DrupalCons.

Compared to WordPress, Drupal is an absolute beast! Drupal’s taxonomies and core structure took us a while to get used to. However, after building numerous sites with Drupal, we slowly and surely came to love Drupal as the CMS of choice for Enterprise level websites and web applications. If you have a web app, or any type of web project that requires user permissions, Drupal’s functionality is hardier than WordPress. Drupal is also more flexible when it comes to API development and its default caching features are more robust out of the box.

In this article, we will analyze key differentiators between the two CMS’s and help steer you in the right direction towards which is right for you.

Security

Security is hands down the biggest differentiator between WordPress or Drupal. Drupal has enterprise level security and site scale. Numerous government websites are built with Drupal, with the most famous being Whitehouse.gov.

With WordPress, hackers can target a vulnerability inside a plugin and wipe out hundreds of thousands of sites. There’s some street cred behind the damage that can be done to the WordPress ecosystem.

Within the past few years, there have been a rise of platform specific hosting applications that help manage your security risks. For Drupal, our favorites are Acquia and Pantheon. For WordPress, WP Engine was one of the first to offer a managed WordPress platform, and MediaTemple recently launched a WordPress service. Most security vulnerabilities happen at the server level, and hosting with one of these companies will help mitigate against waking up to a mess.

Responsive Design and Development

If your interactive strategy calls for responsive design and development, one element that you need to fully understand is how your images will be managed. With responsive design, images don’t just automatically scale perfectly to each break point. Both CMS’s have solutions to responsive images, but they take different tracks.

With WordPress, image sizes per break points are declared in the functions.php file.

**Beware, some themes will scale with images with CSS and this can lead to performance issues ***

With Drupal, you can set image sizes inside the admin by using the Image Style module. This does take a bit of setup time but your work can be done inside of the admin instead of php files.

On the bright side, both CMS’s have plugins or modules that provide legacy support by allowing you to regenerate your previous generated images. If you are building a new theme and will need to regenerate many new images, the regenerate thumbnails plugin is a handy little tool.

As far as the actual “design” aspect, both CMS’s are design agnostic and you can design your templates however you like. Both CMS’s have starter responsive themes that can accelerate your development time, and even allow you to “design in the browser”.

Mobile Theme or Mobile Development

If your site strategy calls for a dedicated mobile theme, both WordPress and Drupal have nice starter themes to help your site get to market quickly. WPTouch has been a tried and true solution for WordPress, and there are plenty of Drupal mobile starter themes available on drupal.org

There is a core differences though to how Drupal or WordPress handle content for mobile. With Drupal, you can have additional content fields, per page, that will just display on mobile devices.

In addition to the content that will display on mobile, most Drupal mobile themes are better run off a sub-domain (m.yourdomain.com). However, this can create challenges regarding mobile indexation in the search engines and your mobile search process needs to be really thought out. WordPress mobile themes can be run off the same subdomain, which is normally www, and will not create any SEO issues.

As far as content editing on mobile, WordPress has an extremely nice native mobile app. This app is awesome if you are updating your blog in real time. Drupal does not have a native app, but Drupal 8’s admin is responsive and executes a solid mobile first strategy.

Search Engine Optimization

I’ll put to bed the concept that WordPress sites rank higher than Drupal sites. SEO is platform agnostic and there is not a particular SEO advantage towards either CMS if it was developed using best standards. However, Drupal sites can go terribly bad if the developer did not know what they were doing. WordPress has less margin of error.

Consider these factors when perfecting your on-page optimization.

  • Page load times. Drupal’s default caching features are very robust out of the box. WordPress has caching plugins which should be utilized.
  • Schema.org implementation. Schemas can be added to Drupal’s views, or hard-coded to template files. The same process works for WordPress.
  • Content Delivery Networks can be integrated with either content to serve assets to the closest local distribution point.

Future Proofing

Come year 2016, the last thing you want to do is hop in the DeLorean to go back to the future to change your mind on your CMS.

Understand some core concepts:

WordPress: The code is upgradable but the database requires an upgrade which is done seamlessly in the background. WordPress’s release schedule is about every 3-4 months.

Drupal: Database is upgradable and the code is not. Upgrading from versions are more intensive and usually revolve around a re-design.

Matt Mullenweg had a great interview on Smashing Magazine describing how in the future, he would love if you didn’t know that you are using WordPress. Quite frankly, there’s a Tumblr (whose interface is the simpliest of all), or even Instagram may be competitors). WordPress’s market share is so strong that this could very well be the case.

I do think that WordPress will continue to own the blogging and small website market. They recently went through their Series C funding and are well positioned for the future.

Acquia, the founder of Drupal, positions itself against Enterprise and proprietary CMS’s. They have invested in the “personalized web” and recently launched nice products such as Acquia Lift. This is a testing, targeting and reporting platform that is built into your Drupal installation. It is comparable to Optimizely but has some additional targeting capabilities. Acquia recently had a $50 million series F funding round and is poised for growth and innovation.

User Interface:

If we’re in a scenario where a new client is debating WordPress or Drupal, we often hear the argument that Drupal is too hard to learn or is impossible to update. If the stakeholder has used WordPress before, they will favor WordPress.

I believe this reasoning stems from the fact that Drupal nodes have relationships and dependencies. This means that a chunk of content has the ability to appear throughout the site, not just on one page. You have to think “Ok, if I publish this piece of content, will it show in other places”. There are taxonomies, content types, blocks, views, etc. that leads to a learning curve with Drupal. I really think that this process can be intimidating to newbies and lead to displeasure with Drupal.

Ultimately, when determining a CMS, please consider the following questions:

    • How many different page templates or content types do you need?
    • Do you have different user permissions? An example of a user permission would be site admin, content editor, access to private content.
    • Do you need enterprise level security?
    • Is your budget healthy enough for Drupal development as opposed to WordPress. In General, it takes 2 to 3 times as long to develop a Drupal site as compared to WordPress.

Other factors

Wrapping up, other differences between WordPress and Drupal include:

  • Theme Market: WordPress has an amazing theme market for do-it yourselfers. Do not ever buy a Drupal theme! There are amazing drupal starter themes, such as the Adaptive Responsive theme, but Drupal development is not the type of project that you can spin a theme off of. It is custom development!
  • Market Share: WordPress has wide scale adoption and a plethora of plugins that are suitable for smaller websites.
  • Deployment Time: WordPress is very easy to develop a site from start to finish. WordPress is perfect if you have minimal content types and are building a general marketing website.
  • Content Types: Drupal supports multiple site stakeholders (admin, editors, logged in users requiring customized content, private groups, etc)
  • Admin experience: Drupal has a cleaner admin experience for content editors. With WordPress, you can use the Advanced Custom Fields module to create a similar experience.
  • App Development and API Development Projects Drupal has, in general, more robust features for complex projects. Drupal 8′s web services integration takes this feature to the next level.
  • Multi-lingual: Multi-national or multi-lingual sites can be easily deployed with out of the box drupal features.

Most developers will recommend the CMS that they are most familiar with without considering the site’s needs and objectives. Knowing which CMS is right for your project will ultimately save you both time in money, both now and in the future.