WordPress Guide · 2026
WordPress Migration Guide 2026: Move Your Site to a New Host (Step-by-Step)
Migrating WordPress to a new host sounds daunting, but with the right method it takes just 1–3 hours — with no data loss and minimal downtime. This guide covers three proven methods, from the easiest plugin-based approach to full manual control via FTP and phpMyAdmin.
Table of Contents
1. Why Migrate WordPress to a New Host?
WordPress sites outgrow their original hosting for many reasons:
- Slow performance or poor uptime — directly impacts Core Web Vitals and search rankings
- Renewal price increases — many hosts offer deep introductory discounts then charge 3–5× more on renewal
- Need servers in a specific region — Thai visitors benefit from servers hosted in Thailand or Singapore
- Lack of local support — hosting in your language with a responsive support team
- Need better features — staging environments, automatic backups, LiteSpeed cache, or Softaculous
- Upgrading from shared to VPS/Cloud — as traffic grows, shared hosting resources become a bottleneck
Top Thai Hosting for Your Move in 2026
If you need a new host with Thai servers, 24-hour Thai-language support, and excellent value, AsiaGB is our Editor's Choice — DirectAdmin, NVMe SSD, 99.9% uptime SLA. Data as of September 2026.
Visit AsiaGB Ruk-Com Cloud2. Pre-Migration Checklist
Before touching anything, complete this checklist:
Create a Full Backup First
Back up both your files and the database before starting. Use UpdraftPlus, JetBackup (if your host provides it), or the host's built-in backup wizard. Download a copy to your local drive — never rely solely on cloud backups you cannot immediately access.
Record Your Current Database Credentials
Open wp-config.php on the old host and note:
DB_NAME— database nameDB_USER— database usernameDB_PASSWORD— database passwordDB_HOST— usuallylocalhosttable_prefix— default iswp_
Prepare the New Host
Sign up and fully configure your new hosting account: create a database and database user, confirm PHP version (8.1+ recommended), and provision a free SSL certificate before transferring any files.
3. Method 1: All-in-One WP Migration (Best for Beginners)
The All-in-One WP Migration plugin is the simplest approach — no database or FTP knowledge required. The free version supports sites up to 512 MB.
Export from the Old Host
- Install "All-in-One WP Migration" on your current WordPress site
- Navigate to All-in-One WP Migration → Export
- Select "Export To" → "File"
- Wait for the
.wpressfile to generate, then download it to your computer
Install WordPress Fresh on the New Host
- Install a fresh WordPress on the new hosting account via Softaculous or manually
- Install "All-in-One WP Migration" on the new WordPress installation
- Navigate to All-in-One WP Migration → Import
- Drag and drop the
.wpressfile you downloaded - Wait for the import to finish (5–30 minutes depending on file size)
Log In and Verify
- After import completes, the plugin logs you out automatically
- Log in with your original credentials from the old site
- Check pages, posts, images, and plugins for completeness
- Go to Settings → Permalinks and click Save Changes — this is critical
4. Method 2: Duplicator (Professional)
Duplicator is popular with developers. It packages your site into an archive with a self-contained installer script, enabling automated migration of large sites.
Build a Package on the Old Host
- Install the free "Duplicator" plugin from WordPress.org
- Go to Duplicator → Packages → Create New
- Name the package, click Next → Build
- Download two files:
archive.zipandinstaller.php
Upload to the New Host
- Upload both files to the root folder of your new host (public_html or www) via FTP or the file manager
- Create a new database and user on the new host
- Open your browser and go to
https://yourdomain.com/installer.php
Run the Installer
- Step 1 (Deploy): Confirm all system requirements pass
- Step 2 (Install): Enter the new host's DB credentials and click Test Database
- Step 3 (Update Data): Set the new site URL if the domain is changing
- Step 4 (Test Site): Log in to WordPress to confirm the migration succeeded
- Delete
installer.phpandinstaller-backup.phpimmediately after
5. Method 3: Manual FTP + phpMyAdmin
Manual migration gives you complete control and works for any site size. It requires comfort with FTP clients (FileZilla, WinSCP) and phpMyAdmin.
| Step | Tool | Estimated Time |
|---|---|---|
| Export database | phpMyAdmin or mysqldump | 5–15 min |
| Download WordPress files | FTP (FileZilla) | 30–120 min |
| Upload to new host | FTP | 30–120 min |
| Import database | phpMyAdmin | 5–30 min |
| Edit wp-config.php | Text editor | 5 min |
| Update URLs in DB | WP-CLI or plugin | 5–10 min |
Export the Database via phpMyAdmin
- Log in to phpMyAdmin on the old host
- Select your WordPress database
- Click Export → Method: Quick → Format: SQL → Go
- Save the
.sqlfile locally
For databases larger than 100 MB, use mysqldump via SSH: mysqldump -u USERNAME -p DATABASE_NAME > backup.sql
Download All WordPress Files via FTP
- Connect to the old host with FileZilla or WinSCP
- Download the entire
public_htmlorwwwfolder to your local machine - Verify you have
wp-config.php,wp-content/, andwp-includes/
Upload Files to the New Host
- Connect to the new host via FTP
- Upload all files to the root folder (public_html)
- Set correct permissions: directories 755, files 644
Import the Database on the New Host
- Create a new database and user via DirectAdmin or cPanel on the new host
- Log in to phpMyAdmin on the new host
- Select the new database → Import → Choose your .sql file → Go
Update wp-config.php
Edit wp-config.php on the new host with the new database details:
define('DB_NAME', 'new_database_name');define('DB_USER', 'new_db_user');define('DB_PASSWORD', 'new_password');define('DB_HOST', 'localhost');
6. Update URLs in the Database
If you kept the same domain, you can skip this section. If you changed domains or moved from HTTP to HTTPS, you must update all URLs stored in the database.
Better Search Replace Plugin
- Install "Better Search Replace" (free)
- Go to Tools → Better Search Replace
- Search for:
https://www.old-domain.com - Replace with:
https://www.new-domain.com - Select All Tables → Run Search/Replace
WP-CLI (for VPS users)
If your new host supports WP-CLI, run:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables
7. DNS Changes & Propagation
Once everything is verified on the new host, switch the DNS:
- Test the new site first by editing your local
hostsfile to point the domain to the new host's IP - Update the A record in your domain's DNS to the new host IP
- Wait 24–48 hours for full global propagation (often 1–4 hours in practice)
- Verify propagation at dnschecker.org
8. Post-Migration Checklist (20 Items)
Run through every item after the migration:
- Homepage renders correctly with all sections intact
- WordPress dashboard login works
- All posts, pages, and categories display correctly
- Images in posts and pages load properly — none broken
- Contact form sends emails successfully (test it)
- All plugins and themes function correctly
- WooCommerce (if applicable): checkout and payment flow works
- SSL certificate is active (HTTPS with padlock)
- HTTP redirects to HTTPS correctly
- Settings → Permalinks: Save Changes clicked
- Sitemap.xml is accessible and URLs are correct
- Google Search Console still connected
- Google Analytics still recording traffic
- Caching plugin reconfigured for the new host
- CDN (if any) origin server updated
- Backup plugin reconnected to cloud storage
- PHP version on new host supports current WordPress version
- Mobile responsiveness verified at 375px width
- All installer files (installer.php, archive.zip) deleted
- Old hosting cancelled after 48-hour verification window
9. Common Problems & Fixes
404 Errors on Posts and Pages
Cause: Permalinks not flushed. Go to Settings → Permalinks and click Save Changes — WordPress regenerates the .htaccess file automatically.
Broken or Missing Images
Cause: Database still references the old host URL. Use Better Search Replace to replace all instances of the old URL with the new one across all database tables, including wp_postmeta and wp_options.
500 Internal Server Error
Cause: Corrupted or incompatible .htaccess file. Delete the existing .htaccess, then go to Settings → Permalinks → Save Changes to let WordPress create a clean one.
White Screen of Death (WSOD)
Cause: PHP version mismatch with a plugin/theme, or memory limit too low. Check the error log on the new host. Add to wp-config.php: define('WP_MEMORY_LIMIT', '256M');
Login Redirect Loop
Cause: WordPress Address and Site Address are mismatched. In phpMyAdmin → wp_options → find siteurl and home → correct both values to match your actual domain.
Error Establishing a Database Connection
Cause: Incorrect credentials in wp-config.php. Double-check DB_HOST (some hosts use a non-localhost address), DB_NAME, DB_USER, and DB_PASSWORD to match exactly what the new host provides.
Further Reading
10. FAQ
Will moving WordPress hurt my SEO rankings?
No — if you keep the same domain, URLs remain identical and Google's index stays intact. Verify your sitemap, robots.txt, and Google Search Console connection on the new host. If you're also changing domains, set up 301 redirects from every old URL to preserve link equity.
How long does it take to migrate WordPress?
A small-to-medium site (files under 1 GB, database under 500 MB) takes 1–3 hours of active work. Add 24–48 hours for full global DNS propagation so all visitors worldwide reach the new server.
Which WordPress migration plugin is best?
All-in-One WP Migration is best for beginners — the entire process requires no database knowledge. Duplicator Pro suits larger sites and teams who need staging environments. Manual migration (FTP + phpMyAdmin) provides complete control and scales to any site size without plugin file-size limits.
Can I migrate WordPress with zero downtime?
Yes. Build your site fully on the new host and test it by editing the local hosts file on your computer. Only update DNS once you have confirmed everything works. Actual downtime is limited to the first 1–2 hours of DNS propagation, when some visitors may temporarily reach the old server.
Why are images missing after migration?
Images break because the database still contains absolute URLs pointing to the old host. Use the Better Search Replace plugin to replace all instances of the old URL with the new URL across every database table, including wp_postmeta and wp_options.