Drupal to WordPress Migration Tool

Drupal to WordPress migration scripts to export the content from Drupal to WordPress. They run a series of MySQL queries to read information from a Drupal database and convert the content to WordPress. Temporary tables are written to the database and some changes may be made to your Drupal content. Backup your Drupal database before using these tools. You may need to make adjustments to your settings after running the migration to get your WordPress installation ready for launch.

Drupal to WordPress migration service

Any Drupal version · All content · Custom content types · SEO · Plugins

If you’re not sure how to make the appropriate changes or would simply like someone else to do the work, please contact me and ask about my Drupal to WordPress migration service.

Get a quote

Web-based Drupal to WordPress export utility

Note: I’m no longer updating my web-based Drupal to WordPress migration tool. My command-line migration script below is better suited to complex migrations.

This export utility migrates standard content types from Drupal to WordPress. (See this article for some background information.) The functionality is rudimentary and hasn’t been updated in a while. It was built on PHP 4 so you may need to make changes to run on your environment. I recommend using my Python command-line tool for more heavily customised Drupal installations.

The web-based Drupal to WordPress migration tool offers the following functionality:

Screenshot of our Drupal to WordPress migration tool

  • Migrates content from Drupal 6 to WordPress 3 and 4 database
  • Shows number of Drupal terms, node types and entries to be migrated
  • Option to select which Drupal content types to be converted into WordPress posts
  • Option to set WordPress file directory
  • Option to set WordPress permalink structure
  • Option to select which Drupal terms will be used as WordPress categories
  • Option to select the WordPress default category

Web-based content migration: Installation and use

Copy folder to a web server or hosting account and run the drupaltowordpress.php script on your browser. Follow the on-screen instructions. You should be able to use any type of MySQL and PHP environment so long as the code can connect to both the Drupal and WordPress databases on the same server. Both databases must share the same connection details.

The web front end works with very basic Drupal installations but for anything more complicated, you will get better results by customising the SQL queries in the file drupaltowordpress-custom.sql. Do not run the custom script without understanding what will be performed at each step as it contains sample values. You’ll need to edit the queries to suit your own Drupal setup. For more information, see Drupal to WordPress migration explained.

For post-export troubleshooting, please see Drupal to WordPress migration notes for additional help.

Command-line Drupal to WordPress migration tool

The web-based export utility proved too inefficient for more complex Drupal configurations so I wrote a Python-based command line replacement. It requires more manual editing of MySQL queries but allows for heavily customised site migrations.

Command line content migration: Installation and use

  1. You will need to install the Python modules in the requirements section below.
  2. Rename the settings-template.py to settings.py and edit it to match your migration project settings.
  3. Edit the included SQL sample files in the sql-sample directory to suit your migration requirements. At a minimum, you will need the migration script itself (see the sample migration_standard.sql file).
  4. Run the utility using the help flag to view the available commands:
    $ python d2w.py -h

Customising the export script for your Drupal setup

The Python script itself won’t perform the migration. You must supply it with an export SQL file that contains the migration queries. For information about customising the export script to suit your Drupal setup, see my step-by-step explanation of the Drupal to WordPress migration SQL queries.

Useful supporting script files are a dump of a pre-configured (but empty) WordPress installation and a dump of your Drupal database in a clean state before any migration attempts. Since migrations can often take several passes of fine-tuning, it can help to reset your databases.

Required Python modules

  • MySQLdb for accessing the backend Drupal and WordPress databases
  • prettytable for displaying results in a table format
  • phpserialize for unserializing Drupal fields

Database tools and migration helper utilities

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

  • WP-CLI: this is a command-line interface for WordPress. 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 hosting environments without command-line access.
  • Search & Replace WordPress plugin: I haven’t use this plugin but have heard recommendations.
  • Drupal to WordPress Image Migration plugin: Brendan Carr’s WordPress plugin to help migrate images from Drupal 6.
  • Drush: a Drupal command-line shell. It can be useful for migrating Drupal sites, for example to create a development version for analysis prior to exporting to WordPress. There’s a drush bam-backup command to backup a site’s database with Backup and Migrate.

Post-migration troubleshooting

You may encounter some problems on your WordPress site after running a migration. For example, WordPress might display permissions errors or content that seems to have been migrated shows ‘Not found’ error. There could be any number of reasons for these problems. Checking my Drupal to WordPress migration notes might point you in the right direction.

Other tools, resources and guides

Drupal to WordPress migration worksheet

It’s important that you gather as much information as you can about your Drupal installation before running your migration project. You can use the questions in my Drupal to WordPress migration worksheet to help structure your investigation process. I can help you with this if you’re not able to run the investigation yourself. Please ask for details.

How to write a migration mapping document

Preparing a migration mapping document before starting your project will help save you time. It will also reduce the complexity of the work by giving everyone involved a clear idea about the type of content will be involved. This short overview will help get you started with writing the migration mapping document.

Preserving SEO during a Drupal to WordPress migration

My guide for how to preserve SEO during a Drupal to WordPress migration. I explain the differences between Drupal and WordPress URL structures and pitfalls to keep in mind. Read it on the blog section: Preserving SEO during a Drupal to WordPress migration.

Troubleshooting Drupal to WordPress migrations

If you’re running your own Drupal to WordPress migration project and encounter problems, you might find some solutions in my migration troubleshooting articles. Need help with the project? Please contact me for a quote.

Scott Anderson’s blog post

Much credit goes to Scott Anderson and his blog post, How I migrated a client’s blog from Drupal to WordPress 3.0. His set of MySQL queries were invaluable when I started migrating client sites from Drupal back in 2011. Scott cites Mike Smullin (site offline), D’Arcy Norman and Dave Dash (site offline) as sources.

A Guide for Drupal Developers Migrating to WordPress

This guide from OnTheGoSystems gives Drupal developers an introduction to equivalent WordPress controls and features. It doesn’t go through running a content export but it’ll help if you want a quick introduction to using WordPress.

Drupal to WordPress Migration Plugins

Liran Tal and Jeremy Simkins have PHP-based migration plugins on GitHub. I personally haven’t used them but people have contacted me to confirm they do work.

WordPress Codex

The WordPress Codex has a page on importing content form different sources, including Drupal.

Other migration tools

Looking to migrate other types of content? Visit my migration tools page for utilities to migrate content from other platforms.


February 2017: This page has received lots of traffic over the years and at the time of writing, quite highly ranked on search engines for various combinations of the Drupal, WordPress and migration keywords. To provide more value to visitors, I’ve started converting it to a general resource for Drupal to WordPress migration projects.

August 2015: It’s been some time since I’ve updated the web-based PHP Drupal to WordPress Migration Tool. After a number of Drupal to WordPress migrations, I find the PHP and HTML platform to be inefficient for more complex Drupal configurations. pyD2W is my Python-based command line replacement that is better suited to complex set-ups. View the repository on GitHub. I’ll no longer be updating the web-based version to focus on the Python replacement.

July 2015: If you need to migrate images from Drupal to WordPress, check out Brendan Carr’s Drupal to WordPress Image Migration plugin.

21 June 2014: Moved the The Drupal to WordPress Migration Tool repository to GitHub.

26 May 2013: First release of the The Drupal to WordPress Migration Tool: drupaltowordpress-d6w35-0.3.zip


Download The Drupal to WordPress Migration Tool
Description Platform
pyD2W, a command line Drupal to WordPress Migration Tool on GitHub Python
Web-based Drupal to WordPress Migration Tool on GitHub PHP & web front-end

CAUTION: Make a backup of both your Drupal and WordPress databases before running this tool. USE IS ENTIRELY AT YOUR OWN RISK. I’m offering this tool with no warranty or support implied.

The Drupal to WordPress Migration Tool is available completely free of charge. If you find it useful, please consider making a donation to support future development. I would like to add many more improvements but this would only be practical if I can justify taking time away from other revenue generating work. Thank you!