How to Migrate a WordPress Site to a New Host (Safely)
Moving your WordPress site to a new host doesn’t have to mean downtime or lost data. Here’s how to do it safely, step by step.
Migrating a WordPress site to a new host is one of those tasks that sounds more dangerous than it needs to be. Done carefully, it is completely safe and your visitors will never notice a thing. Done carelessly, it can mean hours of downtime, broken pages, or lost data. This guide walks you through the entire process in plain language, so you can move your site with confidence — or know exactly when to hand it off to someone else.
Before You Start: What You'll Need
Gather everything before you touch a single file. Having these items ready prevents you from getting stuck halfway through the migration.
- Login credentials for your current host (cPanel, Plesk, or SSH access)
- Login credentials for your new host (same types)
- Access to your domain registrar — the company where you bought your domain name (e.g. GoDaddy, Namecheap, Google Domains)
- A fresh backup of your site stored somewhere safe, such as your computer or cloud storage
- At least 1–2 hours of uninterrupted time, ideally during low-traffic hours
Step 1: Back Up Your Entire WordPress Site
A complete WordPress backup has two parts: your files (themes, plugins, uploads, and core WordPress files) and your database (all your posts, pages, settings, and user accounts). You need both.
Option A: Use a Migration Plugin
The easiest approach for most site owners is a dedicated migration plugin. Duplicator and All-in-One WP Migration are two well-established, free options available in the official WordPress plugin directory. Both create a single downloadable package containing your files and database together, which you then import on the new host.
Option B: Manual Backup via cPanel
If you prefer to work without a plugin, log in to your current host's cPanel (the web-based control panel most shared hosts provide). Use the File Manager to download your entire WordPress folder, then use phpMyAdmin (a browser-based database tool) to export your database as a .sql file. Keep both files somewhere safe on your computer.
Step 2: Set Up Your New Hosting Account
Sign up with your new host and create a hosting account before you move anything. Most hosts will ask you to either transfer your domain or add it as an addon domain (a domain pointed at your hosting account without transferring the registration). For now, choose the addon domain option so your current site stays live while you work.
Once your account is active, note down the new host's nameservers (addresses like ns1.newhost.com and ns2.newhost.com). You will need these later when you update your DNS.
Step 3: Upload Your Files and Database to the New Host
If You Used a Migration Plugin
Install WordPress on your new host, then install the same migration plugin you used to create the backup. Follow the plugin's import wizard to upload and restore your package. The plugin handles the file and database restoration automatically.
If You Are Migrating Manually
- Upload your files: Use an FTP client (such as FileZilla) or your new host's File Manager to upload your WordPress files into the public_html folder (or the folder your new host uses as the web root).
- Create a new database: In your new host's cPanel, go to MySQL Databases, create a new database, create a new database user, and assign that user to the database with All Privileges.
- Import your database: Open phpMyAdmin on the new host, select your new empty database, click the Import tab, and upload the .sql file you exported earlier.
- Update wp-config.php: Open the file called wp-config.php in your uploaded WordPress files. Update the lines for DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST to match the new database credentials you just created. Save the file.
Step 4: Test the Site on the New Host Before Switching DNS
This step is critical and often skipped. You want to confirm the site works correctly on the new host before pointing your domain there. If you switch DNS first and something is broken, your live site is down while you troubleshoot.
Most hosts provide a temporary URL (sometimes called a staging URL or a server IP-based URL) that lets you preview your site before DNS changes take effect. Check your new host's documentation or support chat for this URL.
Alternatively, you can edit your computer's hosts file to temporarily point your domain to the new server's IP address, so only your machine sees the new site. This is a more technical approach; if it sounds unfamiliar, the temporary URL method is safer.
- Click through every page and menu item
- Submit a test contact form
- Log in to the WordPress admin dashboard (wp-admin)
- Check that images and media files load correctly
- Confirm any e-commerce or booking functionality works
- Check that your SSL certificate is active on the new host (the padlock icon in the browser)
Step 5: Point Your Domain to the New Host (Update DNS)
Once you are satisfied the site works on the new host, it is time to update your DNS nameservers, the settings that tell the internet which server hosts your website. Log in to your domain registrar (where you bought the domain) and replace the existing nameservers with the ones provided by your new host.
DNS propagation (the time it takes for the change to spread across the internet) typically takes between 1 and 48 hours, though it is often much faster. During this window, some visitors may still see the old host. Keep your old hosting account active for at least 48–72 hours after switching DNS, just in case.
Step 6: Final Checks After DNS Has Propagated
Once DNS has fully propagated, run through these final checks on the live site.
- Confirm your SSL certificate is working (the URL should show https:// and a padlock)
- Check that WordPress Permalinks are working: go to Settings > Permalinks in your dashboard and click Save Changes without changing anything, this refreshes the URL rules
- Test your contact forms, checkout process, or any other interactive features
- Run a quick speed check using Google PageSpeed Insights to confirm performance is as expected
- Cancel your old hosting plan only after you are fully satisfied everything works
Common Problems During WordPress Migration (and How to Fix Them)
| Problem | Likely Cause | Fix |
|---|---|---|
| 'Error establishing a database connection' | Wrong database credentials in wp-config.php | Double-check DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST in wp-config.php |
| White screen or 500 error | Plugin or theme conflict, or a PHP version mismatch | Deactivate all plugins via FTP by renaming the plugins folder, then reactivate one by one |
| Images not loading | Files uploaded to the wrong folder, or incorrect file permissions | Confirm files are in the correct public_html path; set folder permissions to 755 and file permissions to 644 |
| SSL not working / mixed content warnings | SSL certificate not installed on new host, or hardcoded HTTP URLs in the database | Install SSL on new host; use a plugin like Better Search Replace to update http:// to https:// in the database |
| Redirect loop | WordPress URL settings still pointing to old host | Update Site URL and Home URL under Settings > General in wp-admin |
When to Hand the Migration Off to a Professional
Some migrations are straightforward. Others involve large databases, complex multisite setups, custom server configurations, or e-commerce stores where even a few minutes of downtime costs real money. If any of the following apply to your situation, it is worth getting expert help rather than risking your site.
- Your site has a large WooCommerce store with active orders
- You are running a WordPress Multisite network
- Your site uses custom server-level configurations (e.g. Nginx rules, custom PHP settings)
- You have already attempted the migration and something is broken
- You simply do not have the time or confidence to work through technical steps
TheAppSense handles WordPress migrations as part of Managed WordPress Hosting. The migration is done for you, tested before go-live, and your site stays online throughout the process.
Migrating a WordPress site to a new host is a manageable process when you take it one step at a time: back up first, set up the new host, upload and test, then switch DNS. The key is never cutting over to the new host until you have confirmed everything works. Keep your old account active for a few days as a safety net, and run through the final checklist once DNS has settled. If anything goes sideways, the troubleshooting table above covers the most common issues. And if the whole process feels like too much to take on alone, professional help is available, no judgment, just a working site.
Will my site go down during the migration?
Not if you follow the process correctly. The key is to keep your old hosting account active and only update your DNS nameservers after you have confirmed the site works on the new host. During DNS propagation (up to 48 hours), most visitors will still see the old site, so there is no real downtime.
How long does it take to migrate a WordPress site to a new host?
The hands-on work, backing up, uploading files, importing the database, and testing, typically takes 1 to 3 hours for a standard site. DNS propagation then takes anywhere from a few minutes to 48 hours, depending on your domain registrar and the TTL (time-to-live) settings on your DNS records.
Do I need to reinstall WordPress on the new host?
It depends on your method. If you use a migration plugin, you install a fresh WordPress on the new host and then use the plugin to overwrite it with your migrated content. If you migrate manually by uploading your files directly, you do not need a separate WordPress installation, your uploaded files are WordPress.
Will my email accounts be affected by the migration?
Possibly. If your email is hosted on the same server as your website (which is common with shared hosting), you will need to recreate your email accounts on the new host and update your MX records (the DNS settings that direct email) accordingly. If your email is handled by a separate provider like Google Workspace or Microsoft 365, your email will not be affected at all.
What happens to my SEO rankings when I migrate to a new host?
A host migration, done correctly, should have no lasting impact on your SEO. Your URLs, content, and site structure remain identical. There may be a very minor, temporary fluctuation as search engines re-crawl your site from the new server, but this typically resolves within a few days. Make sure your SSL certificate is active on the new host, as Google treats HTTPS as a ranking signal.
Can I migrate WordPress to a new host without a plugin?
Yes. The manual method involves downloading your WordPress files via FTP or File Manager, exporting your database via phpMyAdmin, uploading everything to the new host, creating a new database, importing the .sql file, and updating wp-config.php with the new database credentials. It is more steps than using a plugin, but it works reliably and does not require installing any additional software on your site.