How do I migrate a WordPress site to a new host or domain?

Applies to: WordPress.org (self-hosted)
Last updated: May 2025


Problem

You need to move your WordPress site to a new hosting provider, server, or domain name, but you’re not sure how to transfer all your content, files, and database without breaking the site.


Solution

There are multiple ways to migrate a WordPress site, depending on your preference and technical comfort level:

  • Use a migration plugin (easiest and safest for most users)
  • Perform a manual migration (more control, but requires FTP and database access)
  • Let your hosting provider handle it (some offer free migration services)

Option 1: Use a Migration Plugin (Recommended)

Popular Plugins:

  • All-in-One WP Migration
  • Duplicator
  • UpdraftPlus Premium (with migration module)
  • WPvivid Backup & Migration

Example: Migrate with Duplicator

  1. Install Duplicator on the old site
    • Go to Plugins > Add New
    • Search for Duplicator, install and activate
  2. Create a Package
    • Go to Duplicator > Packages > Create New
    • Follow the steps to build a backup package (includes files + database)
    • Download both the Installer and Archive files
  3. Upload to New Host
    • Use FTP or your host’s File Manager to upload the two files to the root folder of the new site (e.g., /public_html/)
  4. Run the Installer
    • In your browser, go to: yournewdomain.com/installer.php
    • Follow the on-screen steps to:
      • Set up the database
      • Unpack the archive
      • Update the site URL and settings
  5. Login to Your Site
    • After installation, log in with your existing admin credentials

Option 2: Manual Migration (Advanced)

A. Backup and Download Your Site

  1. Use FTP to download all files from your current host
  2. Export the database via phpMyAdmin (Export > Quick > SQL)

B. Upload to the New Host

  1. Upload files to your new host via FTP
  2. Create a new database in your hosting control panel
  3. Import your SQL file via phpMyAdmin on the new server

C. Update wp-config.php

  • Edit wp-config.php with your new database name, user, and password

D. Update Site URL (if domain has changed)

Use a tool like WP-CLI, Search Replace DB, or run the following SQL in phpMyAdmin:

UPDATE wp_options SET option_value = 'https://newdomain.com' WHERE option_name = 'siteurl' OR option_name = 'home';

Option 3: Use Hosting Provider’s Migration Service

Many managed WordPress hosts offer free or assisted migration, including:

  • SiteGround
  • Bluehost
  • Kinsta
  • WP Engine
  • Flywheel

Just open a support ticket or look for a “Migrate Site” tool in your dashboard.


Post-Migration Checklist

  • Test your site thoroughly: links, images, forms, admin access
  • Re-save your permalinks: Go to Settings > Permalinks > Save Changes
  • Set up 301 redirects if you changed your domain
  • Update DNS settings to point your domain to the new server
  • Install an SSL certificate on the new host (many hosts offer free SSL)

You may also like...