This article contains affiliate links. If you purchase through our links, we may earn a commission at no extra cost to you. Our editorial policy

WordPress Guide · 2026

WordPress Migration Guide 2026

WordPress Migration Guide 2026: Move Your Site to a New Host (Step-by-Step)

By CloudPicked Editorial Team · Updated September 2026

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?
  2. Pre-Migration Checklist
  3. Method 1: All-in-One WP Migration (Beginner)
  4. Method 2: Duplicator (Professional)
  5. Method 3: Manual FTP + phpMyAdmin
  6. Update URLs in the Database
  7. DNS Changes & Propagation
  8. Post-Migration Checklist (20 Items)
  9. Common Problems & Fixes
  10. FAQ

1. Why Migrate WordPress to a New Host?

WordPress sites outgrow their original hosting for many reasons:

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 Cloud

2. Pre-Migration Checklist

Before touching anything, complete this checklist:

Prep Step 1

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.

Prep Step 2

Record Your Current Database Credentials

Open wp-config.php on the old host and note:

Prep Step 3

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.

Important: Do not cancel your old hosting until your site has been running normally on the new host for at least 48 hours and DNS propagation is complete.

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.

Step 1

Export from the Old Host

  1. Install "All-in-One WP Migration" on your current WordPress site
  2. Navigate to All-in-One WP Migration → Export
  3. Select "Export To" → "File"
  4. Wait for the .wpress file to generate, then download it to your computer
Step 2

Install WordPress Fresh on the New Host

  1. Install a fresh WordPress on the new hosting account via Softaculous or manually
  2. Install "All-in-One WP Migration" on the new WordPress installation
  3. Navigate to All-in-One WP Migration → Import
  4. Drag and drop the .wpress file you downloaded
  5. Wait for the import to finish (5–30 minutes depending on file size)
Step 3

Log In and Verify

  1. After import completes, the plugin logs you out automatically
  2. Log in with your original credentials from the old site
  3. Check pages, posts, images, and plugins for completeness
  4. Go to Settings → Permalinks and click Save Changes — this is critical
Site larger than 512 MB? You need a paid extension, or switch to Duplicator or the manual method.

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.

Step 1

Build a Package on the Old Host

  1. Install the free "Duplicator" plugin from WordPress.org
  2. Go to Duplicator → Packages → Create New
  3. Name the package, click Next → Build
  4. Download two files: archive.zip and installer.php
Step 2

Upload to the New Host

  1. Upload both files to the root folder of your new host (public_html or www) via FTP or the file manager
  2. Create a new database and user on the new host
  3. Open your browser and go to https://yourdomain.com/installer.php
Step 3

Run the Installer

  1. Step 1 (Deploy): Confirm all system requirements pass
  2. Step 2 (Install): Enter the new host's DB credentials and click Test Database
  3. Step 3 (Update Data): Set the new site URL if the domain is changing
  4. Step 4 (Test Site): Log in to WordPress to confirm the migration succeeded
  5. Delete installer.php and installer-backup.php immediately 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.

StepToolEstimated Time
Export databasephpMyAdmin or mysqldump5–15 min
Download WordPress filesFTP (FileZilla)30–120 min
Upload to new hostFTP30–120 min
Import databasephpMyAdmin5–30 min
Edit wp-config.phpText editor5 min
Update URLs in DBWP-CLI or plugin5–10 min
Step 1

Export the Database via phpMyAdmin

  1. Log in to phpMyAdmin on the old host
  2. Select your WordPress database
  3. Click Export → Method: Quick → Format: SQL → Go
  4. Save the .sql file locally

For databases larger than 100 MB, use mysqldump via SSH: mysqldump -u USERNAME -p DATABASE_NAME > backup.sql

Step 2

Download All WordPress Files via FTP

  1. Connect to the old host with FileZilla or WinSCP
  2. Download the entire public_html or www folder to your local machine
  3. Verify you have wp-config.php, wp-content/, and wp-includes/
Step 3

Upload Files to the New Host

  1. Connect to the new host via FTP
  2. Upload all files to the root folder (public_html)
  3. Set correct permissions: directories 755, files 644
Step 4

Import the Database on the New Host

  1. Create a new database and user via DirectAdmin or cPanel on the new host
  2. Log in to phpMyAdmin on the new host
  3. Select the new database → Import → Choose your .sql file → Go
Step 5

Update wp-config.php

Edit wp-config.php on the new host with the new database details:

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.

Option A

Better Search Replace Plugin

  1. Install "Better Search Replace" (free)
  2. Go to Tools → Better Search Replace
  3. Search for: https://www.old-domain.com
  4. Replace with: https://www.new-domain.com
  5. Select All Tables → Run Search/Replace
Option B

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:

  1. Test the new site first by editing your local hosts file to point the domain to the new host's IP
  2. Update the A record in your domain's DNS to the new host IP
  3. Wait 24–48 hours for full global propagation (often 1–4 hours in practice)
  4. Verify propagation at dnschecker.org
Pro tip: Reduce your DNS TTL to 300 seconds (5 minutes) 24–48 hours before migration so that after you change the A record, propagation completes much faster.

8. Post-Migration Checklist (20 Items)

Run through every item after the migration:

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.

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.