Options for migrating WordPress to a new host

Movin’ on up

When you first launch and publish your WordPress website or blog, you’re not likely to think you will ever need to move the site to a new host. Like many website owners, you might start out by hosting your site in a shared environment with basic resources. However, when your site becomes more popular, you may discover that migrating WordPress to host or hosting plan is necessary. Let’s review some easy options you have for making this happen.

6 steps for migrating wordpress

Migrating WordPress sites to GoDaddy Managed WordPress

If you use GoDaddy Managed WordPress, you’ve got access to a nifty migration tool at no cost.

Note: If you have a WordPress.com site, the GoDaddy Managed WordPress migration tool won’t work for you. To use their migration tool, you’ll need full administrative access to your current hosting account (FTP and database) and full access to WordPress Admin.

1. After purchasing GoDaddy Managed WordPress, click Set Up.

2. Select Migrate Your Existing WordPress Site.

GoDaddy will migrate the site to a temporary URL that can be updated later to the final domain.

3. Fill in the WordPress Administrator and FTP Credentials, and click Finish.

The migrated site files and the database are available at the Temporary URL.

GoDaddy migration process

Understanding the components of WordPress migration

The key to successful migrations is understanding WordPress. There are distinct settings and locations to the site configuration, theme configuration, plugin configurations and uploaded files and content.

  • wp-config.php — In the root directory of the WordPress installation, the wp-config.php contains the login credentials to the database and, depending on the installation, might also have the domain information hard-coded.
  • wp-content — This directory contains subdirectories utilized for themes, plugins and uploaded assets like images.
  • MySQL — The wp_options folder (the site may replace the “wp” with another table naming convention), has key information like the administrative user, site URL, and administrative URL. If the administrator is unable to login because of an incorrect email address, a user can update the administrator’s email address via the database.

Hosting companies typically provide MySQL tools (PHPMyAdmin) to query and update tables. Updating the administrator’s email address (admin_email) will allow you to utilize that email address and the password reminder to reset your administrative password. If the site continues to redirect to the wrong URL for logging in or loops continuously, you can update the home URL (home) and site URL (siteurl).

WordPress Import Tool

WordPress provides an export and import tool, but it’s not helpful for migrating WordPress sites from one host to another. The tool is limited to exporting and importing posts, pages, comments, custom fields, categories, and tags via an XML file.

wordpress import options screen

While that might sound comprehensive, there are some critical elements that are not included that ensure the proper migration of WordPress.

  • Users
  • Navigation menus and assignments
  • Themes and theme settings
  • Plugins and plugin settings
  • WordPress site configuration and settings
  • File transfers often fail in the migration process

Some third-party plugins allow exporting of options via the WordPress export and import tools, but they’re still not comprehensive. Users who wish to migrate WordPress from one host to another should avoid this method.

Optional migration services and tools

If you’re not familiar with file transfers, exporting or importing MySQL databases and editing PHP files, you might consider hiring a pro who specializes in WordPress and has experience in migrating sites.

If hiring a consultant is not an option, the other alternative is to utilize a third-party application:

  • VaultPress – Automattic has a paid product called VaultPress that offers backups, restores and optional security monitoring. You can use VaultPress to restore a site to a new host.
  • BlogVault – Another service that works well is BlogVault. Primarily a backup and security service, BlogVault offers a migration tool as well. Install their plugin on the active WordPress site, enter the credentials for the destination site, and the BlogVault service does the rest.
  • CMS2CMS – Another well-known service dedicated to CMS migration and conversion is CMS2CMS. Be sure to read through the options for migration carefully and ask for assistance with the WordPress-to-WordPress migration service offering to ensure the site will work properly.

Migrating WordPress manually

Advanced users who still wish to migrate WordPress without the use of migration tools must follow these steps:

1. Update all plugins, themes and WordPress to the latest versions.

2. Disable any caching or security plugins.

3. Download the entire WordPress site via FTP or SFTP.

4. Export the WordPress MySQL database.

Enable option Add IF NOT EXISTS and Complete Inserts. Disable AUTO_INCREMENT to ensure you do not destroy relationships between tables.

phpmyadmin export

5. Choose a zipped file or SQL contents.

Choosing a zipped file will initiate a download of the database to the local drive. If a zipped file was not selected, copy and paste the contents of the SQL into a text file and save it locally.

phpmyadmin export sql

6. Create a database on the new server and import the SQL.

Note: If the SQL text file size exceeds the maximum size limitation on the server, you can use a desktop client. MySQL has a free tool, MySQL Workbench [http://www.mysql.com/products/workbench/], that will allow a connection to the database and imports without file size limitations. If the SQL file has a CREATE DATABASE command, remove it since the database is already created.

7. Upload all files to the new host.

8. Edit wp-config.php.

Update the database credentials with the credentials from the new host.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

9. Update DNS settings and modify the A or CNAME records from the previous host to the new host settings.

Depending on the service, this may take a few seconds or up to 48 hours.

10. Test logging into WordPress.

When changing hosts, the encryption utilized may render all user passwords unusable. Have each user utilize the Forgot Password tool to reset their passwords and update them.

11. Within the WordPress Administration, navigate to Settings > Permalinks to refresh the permalink cache.

If you skip this step, internal pages might be unavailable since the querystrings cannot be navigated.

12. Enable Caching and Security Plugins.

13. Test the site.

Migrating WordPress to a new domain

If the new host is also a new domain or subdomain, you’ll need to take additional steps to update the site:

14. Update wp-config.php home and site URL settings.

By hard-coding these settings, the settings within the wp_options table are ignored, and the site will be properly displayed at the new domain.

define( 'WP_SITEURL', 'http://newdomain.com/' );
define( 'WP_HOME', 'http://newdomain.com/wordpress' );

15. Utilize a Search and Replace plugin.

This plugin will update all internal links in any of the WordPress database tables. Be very careful with this as you might destroy your data and have to truncate the database and re-import your data over.

16. Test the site.

Douglas Karr
Douglas is a marketing technology expert, working with key industry players, corporations and startups for over a decade. As the CEO of his consultancy, DK New Media, he consults and develops strategies for assisting marketing technology companies gain market share as well as enterprise corporations with vendor selection. He advises investors and venture capital firms. He's also been integrating, developing, and optimizing WordPress since version 1.5 when he founded his Marketing Technology blog.