Migrating WordPress

Troubleshooting WordPress Site Migrations

Despite the number of robust migration tools available, it’s quite common to run into snags when migrating WordPress sites.  So, here are some tips you can use when troubleshooting WordPress site migrations.

This is article 7 of 7 in a series on Migrating WordPress sites.

Having a good working knowledge of WordPress really helps troubleshoot these issues.

I highly recommend reading the book Professional WordPress Plugin Development by Brad Williams, Ozh Richard, and Justin Tadlock as it really helps in understanding how WordPress operates and can give you tools to help diagnose broken sites.  Plus, it helps you build cool WordPress stuff!

In the meantime, here are some common problems I encounter with WordPress site migrations, along with potential fixes.

Have something to add? Please post a comment.


Error Establishing Database Connection


Check your wp-config.php file to make sure your database name, database user, password, and host are set, and spelled correctly.


White Screen of Death.  When you load WordPress, you just get a white screen, but WordPress doesn’t load.


This can happen for a few reasons:

First, check to see if you have an index.htm or index.html file in the root of your site.  Often, these files will be loaded before index.php, which is required to load WordPress.

Second, this can happen when the site doesn’t have enough memory allocated to run.  Sites using memory-intensive plugins like event management, e-commerce, and membership often require more dedicated memory to run smoothly.

Usually, you can open up the wp-config.php file and increase the memory by adding a few lines like this:

/** Increase memory limit */
define( 'WP_MEMORY_LIMIT', '96M' );


Redirect Loops.  When trying to access the WordPress Admin, you’re stuck in a redirect loop and get an error.


This can happen when there are discrepancies between the location of the files on the hosting server and the WordPress URL and Site URL set in the WordPress Admin under Settings > General.

Sometimes, it’s helpful to verify these valued directly in the WordPress database using a tool like PHPMyAdmin.


Pages aren’t showing what I expect, or are displaying old information.


Check to see if there’s a caching plugin active.


Internal links are still referencing the old domain name.


Backup.  Then, use a tool like WP Migrate DB Pro, BackupBuddy, or Search and Replace to safely find and replace old URLs in the database – even in serialized data.

Another potential cause could be old cached pages that are migrated with the site.  Make sure to purge cache and disable caching plugins.


PHP timeouts when uploading files, or importing databases to the target server.


Check the PHP configuration of your host to make sure you know current settings and, if needed, bump them up.

One easy way to figure out the PHP configuration on a server is to upload a file that contains the phpinfo(); function.  To do this:

  1. Create a blank file and name it something like phpinfo.php.
  2. Open the file and add the following code: phpinfo(); ?>
  3. Upload your new phpinfo.php file to the domain’s web directory.
  4. Visit phpinfo.php using your web browser to see a PHP configuration report.

More troubleshooting steps to come . . .