Drupal to WordPress Content Migration

Content migration

In this section of the Drupal to WordPress Migration Guide, we'll analyse different migration approaches, from manual copying to automated tools and professional services. I include detailed workflow recommendations and real-world considerations for choosing the right method for your site.

1. Drupal to WordPress migration options

I’ve been migrating sites from Drupal to WordPress since around 2011 and conclude that there’s no single method suitable for everyone. Generally speaking, you have the following options.

Migrate manually

If you have a small site and some time on your hands, you can simply copy-and-paste all your content across. It's an incredibly boring task but sometimes a low-tech solution is what's needed. I've even been contacted by operators of large sites with tens of thousands of posts who have considered this option. They usually plan to off-shore the work to a cheap labour location so the price is bearable. In my opinion, manual migration is unwise for large sites since quality control would be a nightmare.

Install a plugin or automated migration software

Several companies offer software that try to migrate content. CMS2CMS and FG Drupal to WordPress appear to be the main choices at the time of writing. CMS2CMS charges a fee calculated from the amount of content you want to migrate. FG Drupal to WordPress, on the other hand, follows a ‘freemium’ model. I’ve personally not needed to use this kind of migration software so I’m unable to comment on how well they perform. I can, however, offer an assessment of their merits based on available documentation and user feedback.

Customise an open-source migration script

The tools I offer fall into this category. Furthermore, there are plenty of scripts and tutorials detailing how you can go about exporting Drupal content into WordPress. Still, you should carefully consider if the time investment and effort needed is worth any monetary savings. Developers who come to me with a migration project often comment on how they under-estimated the amount of work needed.

Hire a content migration consultant

Since I offer a Drupal to WordPress migration service, it goes without saying that I’d recommend this route as the one giving the best results. Admittedly, budget is always a factor so hiring an expert may consequently be unrealistic for some situations. Nonetheless, those with heavily customised content types, complex taxonomies or specialised modules may have no other choice. An expert will also help steer you away from pitfalls that could end up being very expensive to fix.

2. Automated migration vs. migration service

You have probably found several Drupal to WordPress migration plugins and automated tools while researching this topic. Perhaps you’ve found services, including my own, offering a custom migration service. So, what are the advantages and disadvantages of either route? The answer depends on the complexity of your configuration and the particular goals of your migration.

When to use a migration plugin

Generally, migration plugins can convert Drupal content that have a clearly defined counterpart within WordPress. For example, export for article titles, the main article content body, tags, categories, and comments can be easily automated. A migration plugin may work for you if:

  • Your Drupal installation has very little in the way of customisation, such as a simple page-and-article setup, or uncomplicated custom content types.
  • The Drupal modules installed are fairly mainstream and can easily export into a WordPress equivalent plugin.
  • You run a hobby site with very little budget or are willing to spend time figuring things out.

When to hire a migration consultant

On the other hand, automation does fall short in some important ways. A great deal of the most valuable content in your Drupal site is often configured in ways that need human decisions. For example:

  • Which migration approach should be taken?
  • How closely will the approach meet your project's goals?
  • Will one WordPress plugin or another better suit your workflow?
  • What kind of compromises must you make?
  • How will you handle custom content types?
  • Will Drupal taxonomies be handled differently within WordPress?
  • Are you combining or converting content types?
  • Is data cleaning required and will you do that during migration or after going live?

These are critical decisions that cannot be automated. Human experience often provides more value than the short-term savings of a migration plugin. As a result, a reliable custom migration service does cost more than an off-the-shelf plugin but in return, you avoid expensive and potentially long-term problems.

Additionally, if you’ve read the first few sections of this guide, you may have realised that site migrations often involve more than simply migrating the content. If your website plays an important role in your business or outreach activity, it’s probably a good idea to get an expert to advise you.

3. My Drupal to WordPress migration utilities

In the early days of Another Cup of Coffee, I specialized in setting up and configuring Drupal since it was—and still is—a versatile content management system. However, starting around 2011, new and existing clients began asking me to convert their Drupal sites to WordPress. Manually exporting content from Drupal to WordPress would have been too time-consuming, especially for sites with lots of content types and entries. I therefore decided to hack together some scripts to build my own conversion tool. The first web-based version of my Drupal to WordPress Migration Tool was released in 2013 and then later replaced by a Python-based command-line tool.

The software has been released under The MIT License so feel free to customize the code to suit your own migration project. Download my migration tool and read the instructions in the Appendix section below. It was designed for complex migrations using my own workflow so you will need some coding knowledge to get started.

4. Drupal to WordPress Migration plugins

I offer a competing service so no doubt you'll take this section with a grain of salt. Nevertheless, I will try to be as objective as possible. At the time of writing, there seem to be two Drupal to WordPress Migration plugins on the market, FG Drupal to WordPress and CMS2CMS. Of the two, FG Drupal to WordPress is the only plugin that does not require a paid service but its free version is limited. Another plugin, Toolset, deserves a special mention because while it doesn't handle content migration, its tutorial comes up when searching for the topic.

FG Drupal to WordPress plugin

The FG Drupal to WordPress plugin operates on a ‘freemium' model. Its free version migrates standard content like Drupal pages, articles, images and taxonomies. You will need to pay for the premium version for a more extensive migration of comments, users, custom content types, custom fields and custom taxonomies. Purchased add-ons are necessary to support features like CCK custom fields, meta tags, and Drupal field collections.

Favourable reviews

It does have an obvious advantage over CMS2CMS: people on the WordPress Plugin Directory give FG Drupal to WordPress good feedback, on average rating it 4.6 out of 5 stars. Users also comment on the helpfulness of its author, Frédéric Gilles.

Creating dependencies

However, there is one big downside to be aware of when considering FG Drupal to WordPress. The plugin creates some dependencies on your migrated WordPress installation, even after the site migration:

  • FG Drupal to WordPress itself needs to stay activated for the life of your WordPress site in order to manage redirections and user authentication.
  • If you use custom content types, you will need the Post Type Switcher plugin to create the content types.
  • The Taxonomy Switcher plugin is needed to convert custom taxonomies into WordPress categories.
  • You will need the Toolset Types plugin, also for the lifetime of your WordPress installation, to support custom post types.

As any seasoned WordPress developer knows, plugin dependencies are a concern because important features of your site could stop working if the author abandons the plugin. To be fair, this goes for any plugin, not just for those that you use for site migrations.

Good for standard content

In summary, FG Drupal to WordPress seems to be good at doing its intended job of automated migration for standard content. Add-ons and extra plugins will be needed for anything more complex. I think this is a fair compromise because there are so many possible configurations that it's un-realistic to expect one single plugin to cover all use-cases.

CMS2CMS plugin

CMS2CMS clearly aims at the wholesale end of the market, claiming on their website ‘80,000+ migrations performed', an average 15 minutes for a full-scale CMS migration and no coding, with ‘a few mouse cliks' to do the job. They are often mentioned in the comments section whenever there's an article about migrating from Drupal to WordPress. Interestingly—and in contrast to FG Drupal to WordPress—actual user experience doesn't seem very favourable; they only rate 3.2 out of 5 stars on the WordPress Plugin Directory.

Limited demo only

Personally, I suspect the poor reviews are more to do with their marketing and a case of over-promising. It turns out the CMS2CMS WordPress plugin only migrates 10 pages or posts. The details on the WordPress Plugin Directory do mention running a free demo migration but it's not entirely clear that the plugin is severely limited. I cannot imagine this plugin being useful for anyone operating a mature real-world Drupal installation, even as a demo. You will need to sign up for their paid service if you'd like to run any kind of serious content migration. Fees are estimated based on the amount of content you enter on their CMS migration price calculator.

Satisfied paying clients

Judging by the testimonials on their site, there are clients very satisfied with their service. Nevertheless, their marketing approach is quite unfortunate because even if they do offer a good service, the tactics have obviously been poorly received in the plugin's review page.

Toolset plugin

OnTheGoSystems' Ultimate Guide to Migrating from Drupal to WordPress comes up when searching for the topic. The guide is based around their Toolset plugin so I thought it deserves a special mention. Toolset itself doesn't actually handle any content export/import functionality. Instead it provides Drupal-like features, such as custom post types, blocks and views, within the WordPress platform. You will still need to find a separate solution for the content migration itself.

Not solving the content migration problem

Toolset suggests creating an export file using Drupal’s Backup and Migrate module, then installing a third-party import plugin and possibly some Toolset compatibility add-ons. Therefore, while the plugin gives you a way to ‘migrate’ Drupal functionality into WordPress, it doesn’t solve the content migration problem. It only offloads the job to another component, assuming that you'll somehow get it sorted. The guide even suggests adding custom code or hiring a professional to get the job done right. Clearly, Toolset is a site-builder plugin and not a migration plugin.

Drupal-like functionality for WordPress

On the plus-side, the guide does a good job of explaining the WordPress equivalents of Drupal features. It also offers a comprehensive point-and-click method of developing Drupal-like behaviour in WordPress.

5. Database tools and CMS migration helper utilities

Content migrations involve spending a great deal of time manipulating the database. It's therefore useful to have a set of tools to make things easier. Here are some third-party utilities that can help with your migration project:

  • WP-CLI: A command-line interface for WordPress that I've found particularly useful during migration projects. For instance, you can use it for installing a new instance of WordPress, updating user credentials and activating plugins. WP-CLI will save you having to write SQL queries for simple database tasks that go along with a migration project.
  • Database search and replace script: Sometimes you need a way to search and replace text in the database. This PHP-based tool is useful for environments without command-line access, such as those offered by cloud-based hosting providers.
  • Search & Replace WordPress plugin: Though I haven't personally used this plugin, quite a few developers seem to recommend it.
  • Drupal to WordPress Image Migration plugin: Brendan Carr's WordPress plugin to help migrate images from Drupal 6.
  • Drush: A Drupal command-line shell which can be used, for example, in migrating Drupal sites. In particular, you can use it create a development version for analysis prior to exporting to WordPress. As a matter of fact, there's a drush bam-backup command to backup a site's database with the Backup and Migrate module.

6. Site migration workflow

Web development projects tend to use a variation of the Build/Test/Deploy workflow. If you're operating within a media agency or development shop especially, it should come as no surprise that site migrations can follow a similar process. For Drupal to WordPress migrations, I recommend the workflow:

Migrate → Test → Merge → Deploy

Migrate

The Migrate stage covers content export, redesign, theme development and feature porting. Separate teams can work on the different elements within their own environments. When the content export team and development team are working concurrently, they should work within their own isolated environments. This is because WordPress stores lots of its theme configuration within the database. If the content export team writes to the development team's database without taking precautions, they risk overwriting the dev team's work…and having a bunch of grumpy developers. You can greatly simplify a migration project by exporting the Drupal content into a blank WordPress database first, then working on theme and plugin development on top of that installation. This avoids having to do a complex database merge later on in the project. Nevertheless, project timescales often mean is isn't viable for all migration projects.

Test

The Quality Assurance team can check the accuracy of the exported content separately from testing theme and plugin development. When testing the content export, the goal is to verify that all the required custom fields and metadata have been migrated from Drupal; that content hasn't been corrupted; that all the expected content is present; and that the taxonomy relationships are intact. I like to start off with a bare-bones theme like Twenty Sixteen in the early stages of a migration because there's no extra eye-candy to distract from the content.

Migrate and Test iterations

For my projects, the Migrate and Test stages are iterative. Drupal to WordPress migration projects are usually quite complex so it doesn't make sense to try exporting all the content in one iteration. I usually focus on one part of the project first, like high priority content types. The QA team checks the exports and sends their feedback. If necessary, I'll tweak my migration scripts and migrate again until QA gives the OK to move on to another area, like taxonomies. This process repeats as often as necessary to get the results specified.

Merge

You will need to merge databases if the content export team and development team have been working on separate environments. This is a complex topic and the details are often project-specific so I won't elaborate here. Just understand that you will need to take care that database rows created by the Drupal migration don't overwrite rows created by your development team.

Deploy

Fingers-crossed, you end up with a successful migration and it's time to launch. Choose a good hosting company and deploy your new WordPress site.


Next Section