How to Migrate Your WordPress Site to a New Host Without Breaking Anything

Switching WordPress hosts feels risky. Your site is live, customers depend on it, and the thought of something breaking during the move keeps a lot of people stuck on hosting they have outgrown. But migration does not have to be stressful. With the right approach, you can move your entire WordPress site to a new host with zero downtime and nothing lost.

Here is exactly how to do it, step by step.

Before You Start: Pre-Migration Checklist

Take care of these things before touching anything on your live site:

1. Back up everything. Download a full backup of your WordPress files (wp-content, themes, plugins, uploads) and your database. Use a plugin like UpdraftPlus, All-in-One WP Migration, or your current host’s backup tool. Store the backup somewhere other than your current server: your local computer, Google Drive, or Dropbox.

2. Note your current setup. Write down your PHP version, WordPress version, active plugins, and any custom server configurations (like .htaccess rules or wp-config.php modifications). Your new host should match or exceed these specs.

3. Check your new host’s requirements. Confirm your new hosting plan has enough storage, supports your PHP version, and can handle your traffic. If you are moving from shared hosting to managed WordPress hosting, most of these will be automatically configured.

4. Keep your old hosting active. Do not cancel your current hosting until the migration is verified and DNS has fully propagated. You will need at least 48-72 hours of overlap.

Method 1: Using a Migration Plugin (Easiest)

For most sites under 2GB, a migration plugin is the simplest approach.

All-in-One WP Migration is the most popular option. Install it on your current site, go to Export, and choose “File” as the export method. This creates a single downloadable archive of your entire site: database, themes, plugins, uploads, everything.

On your new host, install a fresh WordPress installation, then install All-in-One WP Migration on the new site. Go to Import and upload the archive file. The plugin handles the rest, including updating database URLs to match your new environment.

The free version has a file size limit (varies by version, typically 256MB-512MB). If your site exceeds that, you can either purchase the premium extension or use Method 2 below.

UpdraftPlus works similarly. Create a backup on the old site, install UpdraftPlus on the new site, upload the backup files, and restore. UpdraftPlus also supports direct cloud storage (Dropbox, Google Drive, S3), which avoids the upload size issue entirely.

Method 2: Manual Migration (More Control)

Manual migration gives you full control and works for sites of any size.

Step 1: Export your database. Log into phpMyAdmin on your current host (or use the command line with mysqldump). Select your WordPress database and export it as a .sql file. Choose “Custom” export with “Add DROP TABLE” statements enabled, so the import will cleanly replace existing tables.

Step 2: Download your files. Connect to your current server via SFTP (FileZilla is free and reliable) and download your entire WordPress directory. The most important folders are wp-content/themes/, wp-content/plugins/, and wp-content/uploads/. If you have custom modifications to wp-config.php or .htaccess, grab those too.

Step 3: Create a database on your new host. In your new host’s control panel, create a new MySQL database and a database user with full privileges. Write down the database name, username, password, and hostname (usually “localhost” but some hosts differ).

Step 4: Import your database. Open phpMyAdmin on the new host, select the new empty database, and import your .sql file. For large databases (over 50MB), you may need to use the command line: mysql -u username -p database_name < backup.sql

Step 5: Upload your files. Connect to the new server via SFTP and upload all your WordPress files. If you are starting from a fresh WordPress install on the new host, you can overwrite the default wp-content folder with yours.

Step 6: Update wp-config.php. Edit the wp-config.php file on the new server with the new database credentials: DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST. Everything else (auth keys, table prefix) stays the same.

Step 7: Search and replace URLs. If your domain stays the same, you may not need this step. But if you are testing on a temporary URL first, use the Search Replace DB tool or WP-CLI: wp search-replace 'oldurl.com' 'newurl.com'. This updates serialized data safely, which a simple SQL find-and-replace cannot do.

Testing Before You Go Live

Before changing DNS, test your site on the new server. Most hosts provide a temporary URL or IP-based access. Check these things:

Load the homepage and several inner pages. Click through your navigation. Test forms, checkout flows, and login functionality. Verify images load correctly (broken images usually mean a URL issue in the database). Check your WordPress admin panel works. Run a quick speed test to confirm the new host performs as expected.

If you want to test with your actual domain without changing DNS, edit your local hosts file. On Mac/Linux: /etc/hosts. On Windows: C:\Windows\System32\drivers\etc\hosts. Add a line like 123.456.789.0 yourdomain.com using your new server’s IP address. This routes your browser to the new server while everyone else still sees the old one.

Updating DNS

Once everything checks out, update your domain’s DNS records to point to the new host. Log into your domain registrar (GoDaddy, Namecheap, Cloudflare, etc.) and change the A record to your new server’s IP address. If your new host uses nameservers instead, update those.

DNS propagation takes anywhere from 15 minutes to 48 hours, depending on TTL settings and your registrar. During propagation, some visitors will see the old site and some will see the new one. This is normal and exactly why you keep both hosts active during the transition.

To speed up propagation, lower your DNS TTL to 300 seconds (5 minutes) at least 24 hours before the migration. After propagation is complete, set it back to 3600 or higher.

Post-Migration Checks

After DNS has propagated and your site is running on the new host:

Verify your SSL certificate is active (check for the padlock icon). Test your email if it was hosted with your old provider. Confirm your WordPress cron jobs are running (wp-cron or server cron). Check that your backup plugin is configured and running on the new host. Update any CDN settings to point to the new server origin. Monitor your site for 48-72 hours for any issues.

Once you are confident everything works, cancel your old hosting. Not before.

When to Let Your Host Handle It

If the migration process sounds like more than you want to deal with, many managed WordPress hosts offer free migration as part of onboarding. At UpperLevel, our team handles the entire migration: files, database, DNS configuration, SSL setup, and post-migration testing. Most migrations are completed within 24 hours with zero downtime.

Whether you do it yourself or let your host handle it, the important thing is not to stay with a provider that is holding your site back just because switching feels complicated. It is not. And the performance difference is usually noticeable from day one.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *