GuidesJan 17, 202612 min read

How to Migrate Your Website to a New Host (Without Downtime)

Complete guide to website migration. Learn how to move your site to a new hosting provider step-by-step, avoid common mistakes, and minimize downtime.

Migrating your website to a new host feels risky. What if something breaks? What if you lose data? What if your site goes down?

Good news: website migration is straightforward when you follow the right steps. Thousands of sites migrate every day without issues.

This guide walks you through how to migrate your website safely, whether you're doing it yourself or using your host's free migration service.

Before You Start: Pre-Migration Checklist

Don't skip this. Preparation prevents disasters.

1. Full Backup of Your Current Site

Create a complete backup including:

  • All website files (wp-content folder for WordPress)
  • Database (export via phpMyAdmin)
  • Email accounts and messages (if applicable)
  • SSL certificates (note expiration dates)
  • Any custom configurations

Store backups in multiple locations (local computer + cloud storage).

2. Document Your Current Setup

Note these details from your current host:

InformationWhere to Find
PHP versioncPanel → PHP version
Database namewp-config.php or cPanel
Server settings.htaccess, php.ini
Cron jobscPanel → Cron Jobs
Email accountscPanel → Email Accounts
DNS recordscPanel → Zone Editor

3. Check Your New Host's Requirements

Verify compatibility:

  • PHP version supported
  • Database type (MySQL/MariaDB version)
  • Storage space needed
  • Bandwidth requirements
  • Any plugin/software restrictions

4. Choose Your Migration Timing

Best times to migrate:

  • Low-traffic periods (check your analytics)
  • Weekdays (easier to reach support)
  • When you have several hours available

Avoid:

  • Product launches
  • Marketing campaigns
  • Holidays/weekends (limited support)

Option 1: Use Your New Host's Free Migration Service

Many hosts offer free professional migration. This is the easiest option.

Hosts With Free Migration

HostMigration OfferLimitations
SiteGroundFree professional migration1 site on basic plan
CloudwaysFree with migration pluginUnlimited sites
KinstaFree premium migrationAll plans
A2 HostingFree site transferAll plans
InMotionFree migrationNew accounts
WP EngineFree automated migrationWordPress only

How to Request Free Migration

  1. Sign up for your new hosting account
  2. Don't cancel your old hosting yet
  3. Submit migration request via:
    • Support ticket
    • Migration form (check their website)
    • Live chat
  4. Provide credentials:
    • Old host cPanel login
    • Or FTP/SFTP details
    • Database access
  5. Wait for completion (usually 24-72 hours)
  6. Test everything before switching DNS
  7. Switch DNS to new host
  8. Wait for propagation (24-48 hours)
  9. Cancel old hosting after confirming everything works

What to Give the Migration Team

They'll typically need:

Old hosting cPanel URL: https://oldhost.com:2083
Username: your_username
Password: your_password

OR

FTP Host: ftp.oldhost.com
FTP Username: ftp_user
FTP Password: ftp_password
FTP Port: 21

Database Host: localhost
Database Name: wp_database
Database User: db_user
Database Password: db_password

Option 2: DIY Migration Using a Plugin (WordPress)

If you're on WordPress, plugins make migration simple.

All-in-One WP Migration (Easiest)

  • Export entire site as one file
  • Import on new host
  • Free for sites under 512MB

Duplicator (Most Popular)

  • Creates installer package
  • More control over process
  • Free version available

UpdraftPlus (If You Already Use It)

  • Backup + restore functionality
  • Works for migration too

Step-by-Step: All-in-One WP Migration

On Your Old Host:

  1. Install "All-in-One WP Migration" plugin
  2. Go to All-in-One WP Migration → Export
  3. Click "Export To" → File
  4. Wait for package to generate
  5. Download the .wpress file

On Your New Host:

  1. Install fresh WordPress (one-click install)
  2. Install "All-in-One WP Migration" plugin
  3. Go to All-in-One WP Migration → Import
  4. Upload your .wpress file
  5. Click "Proceed" when prompted
  6. Log in with your OLD site's credentials
  7. Update permalinks: Settings → Permalinks → Save

Step-by-Step: Duplicator Plugin

On Your Old Host:

  1. Install Duplicator plugin
  2. Go to Duplicator → Packages → Create New
  3. Click Next through the scans
  4. Click Build
  5. Download both files:
    • installer.php
    • [date]_archive.zip

On Your New Host:

  1. Create empty database in cPanel:
    • MySQL Databases → Create New Database
    • Create new user with all privileges
    • Note: database name, username, password
  2. Upload both Duplicator files to public_html via FTP
  3. Visit: yournewdomain.com/installer.php
  4. Enter database credentials
  5. Click Next through installation
  6. Delete installer files when done
  7. Log in to WordPress

Option 3: Manual Migration (Full Control)

For non-WordPress sites or when you want complete control.

Step 1: Download All Files

Using cPanel File Manager:

  1. Log into old host cPanel
  2. Go to File Manager → public_html
  3. Select All → Compress
  4. Download the zip file

Using FTP:

  1. Connect with FileZilla or similar
  2. Navigate to public_html
  3. Download all files to your computer

Step 2: Export Database

Via phpMyAdmin:

  1. Log into cPanel → phpMyAdmin
  2. Select your database
  3. Click Export
  4. Choose "Quick" method
  5. Format: SQL
  6. Click Go
  7. Save the .sql file

Step 3: Create Database on New Host

  1. Log into new host cPanel
  2. Go to MySQL Databases
  3. Create new database (note the name)
  4. Create new user with password
  5. Add user to database with ALL PRIVILEGES

Step 4: Upload Files to New Host

Using cPanel File Manager:

  1. Upload your zip file to public_html
  2. Extract the zip

Using FTP:

  1. Connect to new host
  2. Upload all files to public_html

Step 5: Import Database

  1. Log into new host cPanel → phpMyAdmin
  2. Select your new database
  3. Click Import
  4. Choose your .sql file
  5. Click Go

Step 6: Update Configuration Files

For WordPress, edit 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');

Step 7: Test Before Switching DNS

Edit your local hosts file to preview the site on the new server:

On Mac/Linux:

sudo nano /etc/hosts

On Windows:

C:\Windows\System32\drivers\etc\hosts

Add this line:

123.456.789.000 yourdomain.com www.yourdomain.com

(Replace with your new server's IP address)

Now visiting yourdomain.com shows the new server. Test everything.

Remove the hosts file entry when done testing.

Switching DNS: The Final Step

Once migration is complete and tested, point your domain to the new host.

  1. Log into your domain registrar (where you bought the domain)
  2. Find DNS/Nameserver settings
  3. Replace old nameservers with new host's nameservers

Example nameservers:

SiteGround:
ns1.siteground.net
ns2.siteground.net

Hostinger:
ns1.dns-parking.com
ns2.dns-parking.com

Cloudways:
Use A record instead

Option B: Update A Record

If you want to keep nameservers at your registrar:

  1. Log into domain registrar
  2. Go to DNS settings
  3. Find the A record for @ and www
  4. Change IP address to new host's IP
  5. Update or remove old A records

DNS Propagation

DNS changes take time to spread globally:

TimeframeWhat Happens
0-2 hoursSome users see new site
2-12 hoursMost users see new site
12-48 hoursAll users see new site

During propagation:

  • Some visitors see old site
  • Some visitors see new site
  • This is normal

To minimize issues:

  • Keep old hosting active during propagation
  • Don't make content changes on either site
  • Lower TTL values before migration (if possible)

Post-Migration Checklist

After DNS has propagated, verify everything:

Functionality Testing

  • Homepage loads correctly
  • All pages accessible
  • Images display properly
  • Forms work (contact, signup)
  • E-commerce cart/checkout functional
  • User login works
  • Search functionality works
  • Comments work
  • Internal links work
  • External links work

Technical Verification

  • SSL certificate active (https works)
  • No mixed content warnings
  • Email sending works
  • Email receiving works
  • Cron jobs running
  • Backups configured
  • CDN connected (if applicable)
  • Analytics tracking active

Performance Check

  • Test page speed (GTmetrix, PageSpeed Insights)
  • Compare to old host performance
  • Check mobile loading
  • Verify caching is working

SEO Verification

  • Google Search Console updated
  • Sitemap accessible
  • Robots.txt correct
  • Check for crawl errors
  • Monitor rankings for a week

Common Migration Problems (And Solutions)

Problem: White Screen of Death

Causes:

  • PHP version mismatch
  • Memory limit exceeded
  • Plugin conflicts

Solutions:

  1. Check PHP version matches old host
  2. Increase memory limit in wp-config.php:
    define('WP_MEMORY_LIMIT', '256M');
    
  3. Disable plugins via database if can't access admin

Problem: Database Connection Error

Causes:

  • Wrong database credentials in config
  • Database not imported correctly
  • Wrong database host

Solutions:

  1. Double-check wp-config.php credentials
  2. Verify database exists in phpMyAdmin
  3. Confirm database user has permissions
  4. Try 'localhost' vs '127.0.0.1' for DB_HOST

Causes:

  • Hardcoded URLs to old domain
  • Files didn't transfer completely
  • Permission issues

Solutions:

  1. Run search-replace on database (Better Search Replace plugin)
  2. Re-upload missing files
  3. Check file permissions (755 for folders, 644 for files)

Problem: SSL Not Working

Causes:

  • SSL not installed on new host
  • Mixed content (http resources on https page)

Solutions:

  1. Install SSL via cPanel → SSL/TLS or Let's Encrypt
  2. Use "Really Simple SSL" plugin temporarily
  3. Run search-replace: http:// → https://

Problem: Email Not Working

Causes:

  • MX records not updated
  • Email accounts not recreated
  • SPF/DKIM records missing

Solutions:

  1. Update MX records to new host
  2. Recreate email accounts
  3. Add SPF and DKIM records for deliverability

Problem: Site Slow After Migration

Causes:

  • Caching not configured
  • Server location changed
  • New host has different specs

Solutions:

  1. Set up caching (LiteSpeed Cache, W3 Total Cache)
  2. Configure CDN (Cloudflare is free)
  3. Optimize images and database

When to Cancel Old Hosting

Don't cancel immediately. Wait until:

  • DNS fully propagated (48+ hours)
  • All functionality verified
  • Email working on new host
  • At least one successful backup on new host
  • You've accessed the new site from multiple devices/locations

Before canceling:

  • Download one final backup from old host
  • Export any email you want to keep
  • Save any configuration notes
  • Check refund policy (you might get partial refund)

Migration Cost Comparison

Migration MethodCostEffortRisk
Host's free migration$0LowLow
Migration plugin$0-69MediumLow
Manual DIY$0HighMedium
Professional service$50-200NoneLow

For most people, using your new host's free migration is the best choice.

FAQ

How long does website migration take?

The actual migration takes 1-4 hours. DNS propagation adds 24-48 hours. Plan for your site to be fully migrated within 72 hours total.

Will my site go down during migration?

Not if done correctly. By keeping both hosts active and only switching DNS after the new site is ready, downtime is zero or minimal (seconds during DNS switch).

Do I lose SEO rankings when migrating?

No, if done properly. Keep the same URLs, implement 301 redirects if URLs change, and update Google Search Console. Some minor fluctuation is normal but recovers quickly.

Can I migrate to a different CMS during migration?

That's a redesign, not just migration. Moving WordPress to WordPress is straightforward. Changing platforms (WordPress to Shopify, etc.) is a larger project requiring content recreation.

What if something goes wrong?

This is why backups matter. With a full backup, you can restore your site to the old host while troubleshooting the new one.

Should I migrate or start fresh?

Migrate if you want to keep your content, SEO, and history. Start fresh only if you're completely rebuilding the site anyway.

My host says migration will take a week. Is that normal?

For free migration services, 3-5 business days is common due to queue volume. If you need it faster, ask about priority/rush options or do it yourself.

Need Help Choosing a New Host?

If you're migrating because of poor performance, bad support, or high prices, check out our resources:

Migration doesn't have to be scary. With proper preparation and the right steps, your site will be running on better hosting in no time.


Last updated: January 2026. Migration processes may vary slightly by host—always check your specific provider's documentation.

Share:
HostDuel Team

HostDuel Team

The HostDuel team researches and compares web hosting providers to help you make informed decisions.