Why we migrated our blog from WordPress to Drupal

Image
Drupal butterfly emerging from a Wordpress cocoon

WordPress is well known for being a great blogging platform and widely used Open Source CMS solution. It's adoption and consistent platform has made it easy to get a simple site or blogging platform going quickly and easily - whether on wordpress.com, wpengine.com or any number of hosting platforms.

So why would we move our blog off of WordPress?

While WordPress is a great blogging platform and has had some adoption in the Enterprise space, WordPress isn't as flexible or powerful for driving the Connected Experiences we aim to deliver for our clients. 

Despite these facts, we've been running our blog on WordPress for a number of years. While it served us fairly well in the beginning, there have been increasing hurdles and pain points over the years that we needed to address.

Getting access to the blog has been a significant barrier to entry, raising the bar of creating content higher than necessary. Wordpress also lacked the tools to support a more refined editorial workflow, to give the governance desired to our marketing team for review and publication of new content. It also fell behind on aesthetic updates as our brand evolved, and suffered from poor performance as the web at large became more sophisticated.

With all of this in mind we started working on a solution, and as part of that we made the decision to move our blog from WordPress to Drupal. 

Our primary goals for the project were simple.

  • Preserve all of the content from WordPress
  • Make it easy for employees to contribute content
  • Make it easy for Marketing to manage and have governance over content
  • Make it easy to maintain and evolve over time
  • Refresh the look and feel to match Horizontal's new brand styling

Migrating from WordPress

Preserving all of the content from WordPress was easy, thanks to Drupal Core's powerful Migrate framework. We started with a fresh install of Drupal, and constructed migrations for users, terms, posts, files and even redirects from WordPress. 

We migrated the featured image for each blog post into Drupal Media Entities and mapped them to our new Blog content type. We also migrated all of the embedded images and files in the body of each Wordpress post to Drupal Media, updating the embed codes in each post body.

In the end, we had a robust, continuous migration available to us. We were able to run this migration many times over the course of development and ahead of launch. As we found new quirks or issues in the migrated content we were able to easily adjust the migration and reprocess the posts.

Since starting this project we've also been able to leverage these tools on several client projects, powering the migration of content from WordPress to Drupal on those projects as well.

Lowering the bar to contribution

Getting access to the Wordpress blog was a chore. It involved getting ahold of the right person, getting an account created for you and getting information to login. With the migration to Drupal, a key goal was to make getting started easy. To lower the bar and allow our experts here at Horizontal to easily share their knowledge through informative blog posts.

We leveraged the OpenID Connect module to easily integrate Drupal with our IDP and allow our team to use their same SSO credentials to gain access while automatically granting them with roles to allow them to contribute right away. 

Empowering Marketing

Moving to Drupal gave us the tools to further ease contribution while ensuring governance of content and empowering our marketing team. Leveraging Drupal Core's Workflows, we created a publishing workflow tailored to our team's needs. By adjusting the out of the box workflow, we added review states and capabilities to ensure posts are reviewed for technical accuracy and reviewed by our Marketing team before being published.

On top of this we leveraged Content Moderation Notifications to enable email notifications to the team when posts were ready for review and built an Editor and Contributor Dashboards to make it easy for the team to see the state of new content or their own content.

Finally, we added the Scheduler module to allow editors to schedule the publication of content, giving them the ability to choose when new posts go live.

Improving performance

Moving to Drupal came with some additional benefits as well. There has been significant efforts made in recent years to improve the performance of Drupal and continue to add new improvements as the web has evolved. Recent work in collaboration with Google focused on Core Web Vitals and yielded new features and improvements to Drupal Core.

By leveraging these improvements including Lazy Loading and Drupal's already excellent media management capabilities we were able to drastically improve the performance of the blog for visitors. I'll let the numbers speak for themselves

Google Page Speed of the Horizontal Blog

 

Where do we go from here?

In the months since the blog went live on Drupal we've seen a greater adoption and new contributors to the blog. We've also been able to continue to refine the experience both for our contributors and for our partners in Marketing. Drupal has made it incredibly easy to respond to new needs and optimize the experience as our use of the blog evolves.

And as for what's next? The sky is the limit. Drupal's broad community of Open Source developers are always pursuing new features and embracing the latest changes as technology evolves. Adding integrations for AI, adding lead capture direct to Salesforce or even integrating our blog content with our other platforms through Drupal's API capabilities.