Drupal to WordPress Migration Planning

Site migration project planning and analysis. Image copyright Free Range Stock, artist: Jack Moreh

This section of the Drupal to WordPress Migration Guide, focuses on critical preparation steps for a successful transition, from content mapping to user migration strategies. I link to detailed checklists for content auditing, technical requirements, and maintaining SEO during the switch.

1. Before you start a CMS migration project

Drupal to WordPress migration projects are often complex and need to be handled carefully. Rather than jumping in head-first, take some time to plan your approach. Some basic migration planning steps are outlined below but for more detail, I strongly recommend reading the guide, How to prepare for your Drupal to WordPress migration project.

The migration checklists below will help ensure you address common challenges that arise during migration projects. Additionally, the resources section includes worksheets and guides that may prove invaluable.

Also keep in mind that not all aspects of a migration are practical to automate. In many cases, manual adjustments will be necessary after the migration, using the WordPress interface.

Basic migration planning

Before starting, it is essential to take some basic planning steps.

Diagram for Drupal to WordPress migration planning

Step 1: Consider why you are migrating to WordPress

Understanding the reasons behind the migration ensures the project aligns with your business goals, such as improving usability, scalability, or reducing costs. It also helps define the project’s scope and priorities, ensuring resources are used effectively.

Step 2: Decide on your approach to building the WordPress theme

The theme determines the design and to some extent, the functionality of your new site. It's therefore important to decide whether to use a custom-built or pre-designed theme. A clear plan helps reduce the amount of theme and plugin development needed.

Step 3: Be aware of any SEO impact when migrating to WordPress

Preserving SEO rankings is essential to maintaining website traffic and visibility, so you must carefully manage URL structures, metadata, and redirects. Overlooking SEO considerations can lead to a significant drop in search engine rankings and organic traffic

Step 4: Gather as much information as you can about your Drupal installation

Understanding your Drupal setup, including custom content types, taxonomies, and custom modules, is essential for planning the migration accurately. This ensures no critical data or functionality is missed during the transition.

Step 5: Write a Drupal to WordPress migration mapping document

A mapping document outlines how Drupal content types, fields, and taxonomies will be converted into WordPress structures. This step provides a clear blueprint for the migration, reducing errors and ensuring consistency in the final site.

Focus on value

It is easy to overlook that your WordPress site does not need to be an exact replica of your Drupal site in all respects. Attempting this will lead it inflated budgets and linelines.

Instead, focus on prioritising the content and functionality that provide the most value. Defining clear migration requirements will help streamline your efforts and ensure you concentrate on what matters most.

Assembling your migration team

Getting the migration team assembled early can make or break a project. Too often, I see teams scrambling to bring key people on board when the technical work has already started, or even close to completion—and that's a recipe for complications.

Whether you're coordinating this from within the organization or as an external partner, you'll want the entire team to be involved from the beginning.

Depending on the scale of the project, the migration team should also include the following people.

Agency side Client side
Project manager CMS administrator
Web producer IT operations
Developers Sales and marketing
Designers Content manager
UX/UI experts Customer service
SEO consultant

This table assumes a model of an agency running the migration for a client. The roles apply if you're performing the migration in-house.

2. How long will a site migration take?

There are automated migration services that claim to do a great job in 15 minutes. In my opinion, this severely underestimates the scope of the work necessary and inexperienced migration teams are often given false expectations about timescales.

One common remark I hear from people who have gone through the process is that it ended up being much more work and taking much longer than they expected This is because, for a typical Drupal to WordPress migration project, most of the time is taken by:

  • Pre-migration planning
  • Site and content auditing
  • Data cleaning and content pruning
  • Quality assurance
  • Post-migration review
  • SEO adjustments

Furthermore, while automated tools and scripts will speed up transferring your content, be aware that manual adjustments will be necessary in almost every project. There is currently no way to automate the work performed by skilled content strategy experts, editors and quality assurance testers.

Hours and timelines for the average migration project

From experience with my own migration projects, I've found that a small site can take anywhere from 20-30 hours. The average content-focused site, such as a blog or news site, can take me between 50-100 hours to complete. Complex migrations for e-commerce sites can take 80-130 hours. Your experience will differ but it's certainly much more than 15 minutes.

Project duration

In terms of time to launch, I always recommend leaving at least three months from project kick-off. Six months to one year for a large, business-critical site with lots of stakeholders requiring sign-off approval is not uncommon.

Migration type Expected timeline Deliverable
Discovery phase 1-3 weeks A detailed migration plan with timescales and budget.
Content migration only 4-8 weeks A database dump of your content that can be imported into a fresh WordPress installation.
Full site rebuild 6-12 months A fully functional WordPress site with a new design and all the functionality of your Drupal site.

These estimates are typical in the industry as highlighted in some key statistics drawn from a 2024 WP Engine seminar.

3. The three main components of a CMS migration

There are three main components of a site migration:

  • Site content
  • Design templates
  • Functionality

Web developers experienced in either Drupal or WordPress platforms will be familiar with these aspects of a site but I’ll give a brief overview for site owners and business-focused staff.

Site content

The content, such as the pages, articles, blog posts, and media uploads, make up the core material for your site. Content is separate from the design aspects like the textures, buttons and other bits of ‘eye-candy' that go into making the site visually appealing.

Content migration is nearly always the primary focus of any CMS migration project. Both Drupal and WordPress store content in a database that supports widely-used open source technologies. While they share the same basic technologies, Drupal uses a different database structure, or schema, which cannot be directly copied into a WordPress database. The technology's open-source nature makes it feasible to export content from one system to the other but our challenge is in knowing the best way to translate those different storage structures.

Diagram of CMS migration components

Design templates

Design templates display your content with a specific look and feel. Under Drupal and WordPress, these design templates are called themes. When you first created your site, the main building effort would have been for a designer to come up with a look that you like and for the developer to translate that look into web code. The designer and developer may have been the same person but design and code are separate tasks.

In my experience, site owners usually take the opportunity to update the site design during a migration. Some hire a designer to come up with a custom look but those on a budget tend to download a pre-made theme. Arguably, a big part of WordPress' success lies in its wide range of professionally designed, easy to install, easy to use, and easy to customise theme selection.

Functionality

Under Drupal, site functionality comes in the form of modules. WordPress calls these plugins. Both modules and plugins are additional software components that extend the core content management system's utility. The vast majority are created by independent developers and web development shops. Modules and plugins help create feature-rich websites quickly and at a lower cost than programming from scratch but they have an important downside: site owners can face a serious problem if the original developer abandons their efforts.

I have found many long-running Drupal sites to be cluttered with out-dated and abandoned plugins. In fact, the push to migrate often stems from concerns about dependencies and the inability to upgrade without breaking the entire site, mostly due to a critical but abandoned module. Just as WordPress offers a wide range of themes, it also offers a rich ecosystem of plugins and plugin developers. Site owners can replicate legacy Drupal functionality by building a custom WordPress plugin or by installing one of the many free or premium offerings.

4. Migrating Drupal users to WordPress

Unsurprisingly, migrating user accounts is a high priority for owners of membership and community sites. Whereas most areas of a site migration can be run behind-the-scenes, it’s important to know that user account migration will need action from people with login access. This might present you with an extra user management challenge after the migration. First, here’s an overview of the user components that need to be mapped in the database:

  • User data and metadata: This includes elements such as the user ID, username, email address and associated profile fields. In most cases, Drupal user fields can be mapped fairly easily into the WordPress user and usermeta tables.
  • Roles and permissions: Drupal’s roles and permissions are more flexible when compared to WordPress roles. Nevertheless, it’s possible to shoehorn a Drupal site’s access control model into standard WordPress roles with a bit of creativity. WordPress has many access control and user management plugins if you need to set up more complex login permissions.
  • Content authorship: Assigning post authorship is straightforward by setting the posts’ post_author field with the appropriate user ID.
  • Credentials: Due to the different password hashing algorithms used by Drupal and WordPress, the user password cannot be easily migrated.

Password hashing and why it matters for your migration

To understand why you can’t easily transfer the password field when migrating Drupal users to WordPress, you need to know about password hashing. Hashing is a method of irreversibly scrambling text: password text is converted using a mathematical operation into a set of alternative characters (the ‘hash’) but you can’t use that operation to convert those characters back to the original password. It’s a one-way process that’s as strong as the mathematical operation, or the hashing algorithm. Some methods make reversing the process more difficult by adding a ‘salt’, which is an additional random bit of text. The hash and salt technique is often used to secure passwords in the event of a data breach.

Drupal 7 and Drupal 8 use a hashing algorithm called SHA-512 with a salt while Drupal 6 uses MD5 without a salt. WordPress, on the other hand, uses MD5 with a salt. The different hashing mechanisms means that as far as WordPress is concerned, any text migrated into the password field is unusable. It has no way to get back to the original password. When a users tries to log in, it can’t tell if the entered password is correct.

Plan your post-migration password reset process

The consequence is that there’s no simple way to seamlessly migrate user passwords. I mean this in the ethical ‘white-hat’ sense. Malicious hackers can use other techniques to crack the password but these aren’t viable for a migration project. If it were, we’d be presented with a security failure as anyone with access to the database could reconstruct user passwords without too much effort.

After the migration, your users will therefore need to reset their passwords on the new WordPress platform before they can log in. If you have many users on the legacy Drupal site, it’s worth considering how to manage this process during your migration planning stage.

5. Migrating Drupal views and blocks to WordPress

Drupal views and blocks are among the most powerful and regularly used features available to Drupal developers. They help web builders create data-rich displays by showing content listings on different areas of the site. Note, however, that views and blocks aren’t bits of content themselves but a method of presenting content in different ways. Nevertheless, they’re sometimes important considerations during a site migration because of their close relationship to how visitors experience the site. It’s worth taking a bit of time explaining what views and blocks are and how to transfer them to WordPress.

Migrating Drupal views to WordPress

Views are simply groups of content organized into listings. For example, you can have a view that lists recent comments, top articles by month, posts from users, or terms in a particular vocabulary. They’re controlled by the Drupal Views module which allows site builders to query the database without writing code. Essentially, Drupal Views is a point-and-click wrapper for some powerful database queries that pull out and sort content.

WordPress developers usually build these types of content listings by querying the database in code using the WP_Query programming interface. There have been WordPress plugins, such as Query Wrangler and Query Posts, offering similar functionality to Drupal views. Unfortunately, these now seem to be abandoned projects. Toolset, a plugin mentioned in the Drupal to WordPress Migration plugins section below, offers a views query builder for WordPress but you’ll have to pay a yearly licence fee.

I prefer to ‘migrate’ a Drupal view into WordPress by coding it into a child theme template. The WP_Query interface is a standard theme developer tool so a lighter-weight approach makes more sense to me. Installing plugins to handle views functionality may lead to unwanted dependencies and licence renewal costs in the future. On the other hand, any experienced theme developer can adjust theme templates without too much trouble when needed.

Migrating Drupal blocks to WordPress

Drupal blocks are boxes of content that can be placed on different areas of a page. Drupal views are usually displayed in blocks so the two features tend to work together. WordPress has a direct equivalent for blocks: Widgets.

As with views, blocks fall into the theme and development domain but people often ask about migrating Drupal blocks into WordPress. They are best considered part of the theme or plugin development effort rather than the content migration phase.

6. Drupal to WordPress Migration checklists

Migrating websites to a different content management system is notoriously complex but even seasoned developers still underestimate the amount of work involved. Drupal to WordPress migrations can be especially tricky because they target very different types of users. Consequently, their platform architectures are also very different. You can quickly run into trouble if you forget some key areas during your migration process.

My own migration project framework starts off with an analysis phase designed to discover as much as possible about the client’s needs and the project’s impact on project resources. Over the years I’ve compiled a set of questions and considerations specifically for Drupal to WordPress migrations.

They’re organised as checklists of three main areas that often concern my clients:

I regularly update them to include new items that often come up and you can find them in the Appendix section of this guide.

A web search will also bring up many detailed migration checklists targetted to website migration SEO.

Whether you use a pre-defined checklist or compile your own from scratch, I strongly recommend that your migration project be based around some sort of checklist framework. No matter how many CMS migration projects you’ve completed, it’s easy to forget important tasks without them.

View my sample Drupal to WordPress migration checklists.

Drupal to WordPress migration service

All content · Custom content types · SEO · Plugins

Migrating content from a site and need a specialist? Please contact us for a quotation. Whether you're a media agency who needs a database expert or a site owner looking for advice, we'll save you time and ensure accurate content exports.


Next Section