Before You Start
Migrating a WordPress site can feel daunting, but with the right approach, you can move everything — posts, pages, media, themes, plugins, and databases — without losing a single byte of data or experiencing downtime.
Prerequisites
Before starting, make sure you have:
- Access to your current hosting account (cPanel or dashboard)
- Access to your new hosting account
- FTP client (FileZilla) or file manager access
- About 1–2 hours of time
Method 1: Using a Plugin (Easiest)
The simplest way to migrate is with the All-in-One WP Migration plugin. It handles everything automatically.
Step 1: Install the Plugin
In your WordPress dashboard, go to Plugins → Add New → search for "All-in-One WP Migration" → Install → Activate.
Step 2: Export Your Site
Navigate to All-in-One WP Migration → Export. Select "File" as your export method. The plugin will create a downloadable archive of your entire site.
Step 3: Set Up WordPress on New Host
Install a fresh WordPress on your new hosting account. Most hosts have 1-click WordPress installers. Install the same All-in-One WP Migration plugin.
Step 4: Import
Go to All-in-One WP Migration → Import on your new site. Upload the archive file from Step 2. The plugin will handle everything else.
Step 5: Update DNS
Point your domain to your new host's nameservers. This is done in your domain registrar's dashboard. DNS changes take 24–48 hours to propagate globally.
Method 2: Manual Migration (More Control)
For larger sites or when you need full control over the process.
Step 1: Backup Your Database
Access phpMyAdmin on your current host. Select your WordPress database. Click Export → Quick → Go. Save the .sql file.
Step 2: Download All Files
Connect to your current host via FTP. Download everything in your public_html or www directory. This includes wp-content (themes, plugins, uploads), wp-config.php, and all WordPress core files.
Step 3: Create Database on New Host
In your new host's cPanel, create a new MySQL database, a database user, and assign the user to the database with all privileges.
Step 4: Import Database
Open phpMyAdmin on the new host. Select the new database. Click Import. Upload the .sql file from Step 1.
Step 5: Update wp-config.php
Edit wp-config.php and update the database name, username, password, and host to match your new hosting setup.
Step 6: Upload Files
Connect to your new host via FTP. Upload all files to the public_html directory.
Step 7: Update DNS
Same as Method 1 — update your domain nameservers.
Avoiding Downtime
The key to zero-downtime migration is to keep your old site running until DNS has fully propagated to the new host. Here's how:
1. Don't cancel your old hosting immediately
2. Set up the new site completely before changing DNS
3. Test the new site using a temporary URL or hosts file modification
4. Once DNS propagates, verify everything works
5. Wait 48 hours, then cancel the old host
Post-Migration Checklist
- Test all pages and posts for broken links
- Verify media files load correctly
- Test contact forms and other interactive features
- Check SSL certificate is active
- Update any hardcoded URLs in the database
- Re-submit sitemap to Google Search Console
- Test site speed on the new host
Need Help Choosing a New Host?
Use our AI Hosting Advisor to find the best host for your specific WordPress setup, or browse our Hosting Directory to compare providers side by side.