Whether you're switching hosting due to slow performance, high cost, or poor support — WordPress migration done incorrectly can take your site down for hours and, even worse, damage your Google search rankings.
This guide walks you through a zero-downtime WordPress migration covering three complete methods: Plugin-based (Duplicator), all-in-one plugin, and fully manual (FTP + database), with a pre- and post-migration checklist.
Important: Always create a full backup before migrating. AsiaGB backs up servers on the 1st and 15th of each month, but you should have your own backup before any migration.
1. Why Migrate WordPress?
Common reasons for moving to a new hosting provider include:
- Slow hosting — Page load times over 3 seconds hurt user experience and Google rankings
- Cost savings — Moving to more affordable hosting like AsiaGB starting at 500 THB/year
- Better support — Faster response times and more helpful technical assistance
- Scaling up — Your site has grown and needs more resources
- Better control panel — Switching to DirectAdmin for a cleaner management experience
2. Pre-Migration Checklist
Thorough preparation is the most critical part of any migration. Skipping these steps can cause hard-to-fix problems later.
| # | Task | Priority |
|---|---|---|
| 1 | Back up all files on current hosting | Required |
| 2 | Export the MySQL database (latest version) | Required |
| 3 | Record all credentials (DB name, user, password) | Required |
| 4 | Verify PHP version compatibility on new host | Required |
| 5 | Check available storage on new hosting | Recommended |
| 6 | Lower DNS TTL to 300s 24-48 hours before migration | Recommended |
| 7 | Note old nameservers in case rollback is needed | Recommended |
| 8 | Update all plugins and themes before migration | Recommended |
3. Method 1 — Using the Duplicator Plugin
Duplicator is the most popular WordPress migration plugin with over 1.5 million active installs. It's ideal for beginners because most steps are automated.
Duplicator Migration Steps
- Install the Duplicator plugin on your old hosting from WordPress.org
- Go to Duplicator → Packages → Create New
- Name the package, click Next, and wait for the system scan
- If all checks pass (green), click Build — wait for the package to complete
- Download both files:
installer.phpand*_archive.zip - Upload both files to the new hosting via File Manager or FTP
- Create a new database on the new host (DirectAdmin: Databases → MySQL Management)
- Browse to
http://yourdomain.com/installer.phpand follow the wizard - Enter the new DB credentials, click Test Database, then Next
- Wait for the restore to complete, then click Admin Login
Tip: The free version of Duplicator supports packages up to 500MB. For larger sites, use Duplicator Pro or switch to the manual method.
4. Method 2 — All-in-One WP Migration
All-in-One WP Migration is the simplest option for beginners who want to avoid touching databases or FTP directly.
Export Steps
- Install All-in-One WP Migration on the old hosting
- Go to All-in-One WP Migration → Export → Export To → File
- Wait for the
.wpressfile to generate, then download it locally
Import Steps
- Install WordPress on the new hosting (via Softaculous in DirectAdmin)
- Install All-in-One WP Migration on the new WordPress
- Go to All-in-One WP Migration → Import → Upload
- Upload the
.wpressfile (you may need to increase the upload limit first) - Wait for the import to finish — the system will redirect you to log in again
Limitation: The free version of All-in-One WP Migration supports imports up to 512MB. For larger files, you'll need a paid extension or should use the manual method.
10. Comparing the Three Migration Methods
To help you choose the right approach, here's a side-by-side comparison of all three methods across the dimensions that matter most.
| Dimension | Duplicator | All-in-One | Manual FTP |
|---|---|---|---|
| Difficulty | Easy | Very Easy | Moderate |
| Max site size (free) | 500 MB | 512 MB | Unlimited |
| FTP knowledge needed | Minimal | Not required | Required |
| Full control | Moderate | Low | Full |
| Cost | Free / Pro | Free / Extension | Free |
| Best for | Most sites | Beginners | Large sites / power users |
11. Protecting SEO During and After Migration
A WordPress migration done incorrectly can cause temporary or even permanent ranking drops. The steps below reduce SEO risk to a minimum.
Before Migration
- Record every URL currently ranking in Google Top 10 so you can compare before and after.
- Run a Screaming Frog crawl of the old site to capture all existing redirect chains.
- Export Google Search Console data — queries, pages, impressions — as CSV for your baseline.
During Migration
- Do not change URL structure — if the old site uses
/sample-post/permalinks, keep exactly the same format on the new host. - Make sure the new host's robots.txt does not accidentally block Googlebot (this can happen on staging configurations).
- Verify every canonical tag on the new domain points to the correct domain, not to an IP address.
After Migration
- Submit a fresh sitemap in Google Search Console immediately after DNS propagates.
- Use the URL Inspection Tool to manually check 5–10 of your top pages to confirm Google can fetch them correctly.
- Run Core Web Vitals on the new host using PageSpeed Insights — LCP should be under 2.5 seconds.
- Monitor Google Search Console daily for the first two weeks, watching for crawl errors or unusual ranking changes.
12. Setting Up SSL on New Hosting
One of the most commonly forgotten steps after a migration is configuring SSL on the new host. Without SSL, browsers display a "Not Secure" warning and Google deprioritizes the site in search results.
SSL in DirectAdmin (AsiaGB)
- Log in to DirectAdmin → go to Advanced Features → SSL Certificates.
- Select Free & automatic certificate from Let's Encrypt.
- Check the boxes for both www and non-www versions of your domain.
- Click Save — the certificate is issued within 5–10 minutes.
Force HTTPS in WordPress
After obtaining an SSL certificate, force HTTPS so all HTTP requests redirect to HTTPS automatically. Add this to your .htaccess file:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Alternatively, add this to wp-config.php before the "That's all, stop editing!" line:
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS'] = 'on';
13. File and Folder Permissions After Migration
Incorrect permissions are one of the most common reasons WordPress behaves unexpectedly after a migration — especially issues with image uploads failing or plugins not working.
| File / Folder | Correct Permission | Notes |
|---|---|---|
| WordPress directories | 755 | Owner can execute; others read-only |
| wp-content/uploads/ | 755 | Must be writable for media uploads |
| PHP/HTML files | 644 | Never give execute to others |
| wp-config.php | 600 or 640 | Prevents others from reading passwords |
| .htaccess | 644 | WordPress can write to it for permalinks |
In DirectAdmin you can change permissions via File Manager → right-click on a file or folder → Change Permissions. Alternatively, use an FTP client such as FileZilla: right-click → File permissions.
5. Method 3 — Manual Migration (FTP + Database)
The manual method gives you complete control over every step and works for sites of any size.
Export Files
- Log in to the old hosting control panel (DirectAdmin or cPanel)
- Open File Manager, navigate to
public_html - Select all files → Compress to ZIP
- Download the ZIP file to your local computer
Export Database
- Open phpMyAdmin on the old hosting
- Select the WordPress database → click Export
- Choose SQL format, click Export → download the
.sqlfile
Import to New Hosting
- Create a new database in DirectAdmin → Databases → MySQL Management
- Upload all files via FTP or File Manager to
public_html - Open phpMyAdmin on the new host → select new database → Import the
.sqlfile
6. Update wp-config.php
After moving files and database, you must update wp-config.php with the new hosting credentials.
// Update these values in wp-config.php
define('DB_NAME', 'new_database_name');
define('DB_USER', 'new_database_user');
define('DB_PASSWORD', 'new_database_password');
define('DB_HOST', 'localhost'); // usually localhost
On DirectAdmin, you can edit wp-config.php through File Manager → right-click → Edit.
7. DNS Configuration and Testing
Before changing DNS, test the site on the new hosting using a local hosts file edit so only you see the new site while visitors still see the old one.
# Add to hosts file:
# Windows: C:\Windows\System32\drivers\etc\hosts
# Mac/Linux: /etc/hosts
123.456.789.000 yourdomain.com www.yourdomain.com
# Replace 123.456.789.000 with the new hosting IP
Once testing confirms everything works correctly, update the nameservers at your domain registrar.
8. Post-Migration Testing Checklist
After DNS propagates (typically 1–48 hours), verify the following:
- Homepage loads without errors
- WordPress Admin (
/wp-admin) login works - SSL Certificate is active (padlock visible in browser)
- All pages — Posts, Archives, Categories — load correctly
- Forms function properly (Contact forms, checkout pages)
- All images display correctly
- Check Google Search Console for crawl errors
- Test page speed using PageSpeed Insights
9. Common Problems and Solutions
White Screen or 500 Internal Server Error
Usually caused by PHP errors or plugin conflicts. Enable WordPress Debug Mode to read the error log and identify the cause.
Images Not Displaying
Verify that all files in wp-content/uploads/ were transferred completely, and check folder permissions (should be 755).
Redirect Loop
Check wp-config.php for correct HTTPS enforcement settings, and verify .htaccess redirect rules don't conflict with each other.
Plugins Behaving Unexpectedly
Some plugins store absolute paths in the database. Run a search-and-replace using the Better Search Replace plugin to update all old URLs to the new ones.
SEO Tip: After migration, re-submit your sitemap in Google Search Console and monitor the index status for the first week to confirm Google can still crawl and index your site fully.
WordPress Hosting That's Easy to Migrate To
AsiaGB Hosting uses DirectAdmin with Softaculous for easy WordPress installation. Starting at 500 THB/year with multi-PHP version support and free SSL certificates.
View Hosting Plans →