March 14, 2018 · 4 min read
WordPress vs Drupal
Photo credit: slayerjr.deviantart.com
Over our 18 year history we’ve dabbled with most offerings within the web content management system (CMS) arena, but we began to get serious with the WordPress platform around 2008. We were impressed by it’s simplicity and the speed within which a system could be pulled together.
We often looked at other systems – from Joomla to Expression Engine, MODX and everything in between – but our experience and expertise in WordPress flourished. Our technical team loved developing with it and our clients were happy using it to manage their website’s content.
WordPress isn’t without it’s drawbacks however and in some ways is a victim of its own popularity; an incredible 30% of all websites run on the WordPress platform. This popularity combined with it’s low barrier to entry means that WordPress can be perceived as lightweight, insecure and not suitable for enterprise scalability. These objections are particularly evident when we talk to senior technical teams. Preconceived barriers can exist even before discussions around maintenance, performance optimisation and hosting platform begin.
With this in mind we began to keep a keen eye on developments within the world of Drupal. We were impressed by where the platform was headed and launched various projects using Drupal 7. Work on Drupal 8 continued and we were even more inspired. Our developers were already working with the Symfony PHP framework, from which many components were being included in Drupal 8.
We were converted! We now had real-world experience in both platforms, could see the benefits offered by each and could make knowledgeable recommendations that suited a particular project’s needs.
For a while we’ve been taking advantage of WordPress’ simple and flat template structure to rapidly build great-looking site layouts for our clients. But for bigger projects, that have a requirement for a larger site structure, something more managed and modular is required: which we’ve found Drupal to be ideal for.
Drupal’s Block layout system, custom content types and fields, and well-supported community modules including Panels, Panelizer (now a part of Drupal’s core) give us the flexibility to manage site content in a more robust way. It can even provide our clients with a customisable drag and drop page layout builder should it be required.
This fits nicely with the concept of visual components – a concept increasing in popularity which allows site layouts to be split into reusable blocks. This helps maintain consistency across an interface and allows developers to work with defined and considered elements.
For more content-heavy sites, and sites that need to provide a user registration and login mechanism, Drupal has a well-supported set of features for these out of the box. User registration, login, and role management is provided, and creating good-looking, user-friendly login forms is straightforward. Built-in access controls make it easy to restrict pages and content to authorised users or those with a specific role.
We’ve also been really impressed with the built in management of content types, fields and Views – meaning that large amounts of content are easy to set up and display on the front-end. Multiple site languages are also supported natively out of the box, meaning the management of multilingual content can be a breeze.
We’ve got experience with this in WordPress too and have made great use of the Memberium plugin with Infusionsoft CRM to provide a membership site for members of PESGB and WPML to provide multilingual sites for World Habitat. And of course, WordPress’ huge plugin availability means it’s usually easy for us to find something that’ll provide any kind of similar functionality in minutes.
Drupal deals with caching and optimising pages by default, with no extra effort required. That means everything is ‘fast by default’, and with site performance becoming ever-more important (it’s now a factor in Google’s ranking), this is something we’re really focusing on.
There is perhaps a perception that the user-experience of the Drupal back-end is inferior to that of other CMS. This is not without some merit, prior to Drupal 8 the system didn’t actually contain a WYSIWYG editor within core. But once configured by an experienced developer, Drupal should be as familiar or easy-to-use as any other system.
The introduction to this article introduced some of the perception issues that WordPress often faces. However, WordPress is not inherently an insecure platform, it can be as secure as any other CMS out there. Many of the issues WordPress faces are down to using poorly written themes or plugins, failing to regularly update the software and poorly configured hosting environments.
We’re massive proponents of PaaS (Platform as a Service) and host the majority of our WordPress projects with WP Engine. We’ve also been impressed by the offering from Pantheon (for both WordPress and Drupal) and really like their multi-environment workflow to manage code deployments.
Drupal is used by many government, educational and commercial establishments around the globe and does, rightly or wrongly, have greater perceived security than WordPress. Backing up the idea of Drupal for enterprise are the likes of Acquia who offer a truly enterprise solution to the hosting of a Drupal system.
We’re really excited about working on future projects with WordPress and Drupal, they are both well established platforms that have a fantastic developer following and community.
We’ve recently been experimenting with the Gutenberg editor under development by the WordPress team. This looks like giving WordPress a real boost in the way it allows the visual editing of content, we can see content editors being blown away by the flexibility on offer.
We’ve also taken time recently to explore the world of Headless CMS’, a rapidly expanding sector. A Headless (or decoupled) CMS is a back-end only system that is built as a content repository and makes content accessible via an API. These have a natural place in the world of web or mobile applications where a traditional CMS doesn’t naturally fit.