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:
| Information | Where to Find |
|---|---|
| PHP version | cPanel → PHP version |
| Database name | wp-config.php or cPanel |
| Server settings | .htaccess, php.ini |
| Cron jobs | cPanel → Cron Jobs |
| Email accounts | cPanel → Email Accounts |
| DNS records | cPanel → 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
| Host | Migration Offer | Limitations |
|---|---|---|
| SiteGround | Free professional migration | 1 site on basic plan |
| Cloudways | Free with migration plugin | Unlimited sites |
| Kinsta | Free premium migration | All plans |
| A2 Hosting | Free site transfer | All plans |
| InMotion | Free migration | New accounts |
| WP Engine | Free automated migration | WordPress only |
How to Request Free Migration
- Sign up for your new hosting account
- Don't cancel your old hosting yet
- Submit migration request via:
- Support ticket
- Migration form (check their website)
- Live chat
- Provide credentials:
- Old host cPanel login
- Or FTP/SFTP details
- Database access
- Wait for completion (usually 24-72 hours)
- Test everything before switching DNS
- Switch DNS to new host
- Wait for propagation (24-48 hours)
- 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.
Recommended Migration Plugins
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:
- Install "All-in-One WP Migration" plugin
- Go to All-in-One WP Migration → Export
- Click "Export To" → File
- Wait for package to generate
- Download the .wpress file
On Your New Host:
- Install fresh WordPress (one-click install)
- Install "All-in-One WP Migration" plugin
- Go to All-in-One WP Migration → Import
- Upload your .wpress file
- Click "Proceed" when prompted
- Log in with your OLD site's credentials
- Update permalinks: Settings → Permalinks → Save
Step-by-Step: Duplicator Plugin
On Your Old Host:
- Install Duplicator plugin
- Go to Duplicator → Packages → Create New
- Click Next through the scans
- Click Build
- Download both files:
installer.php[date]_archive.zip
On Your New Host:
- Create empty database in cPanel:
- MySQL Databases → Create New Database
- Create new user with all privileges
- Note: database name, username, password
- Upload both Duplicator files to public_html via FTP
- Visit:
yournewdomain.com/installer.php - Enter database credentials
- Click Next through installation
- Delete installer files when done
- 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:
- Log into old host cPanel
- Go to File Manager → public_html
- Select All → Compress
- Download the zip file
Using FTP:
- Connect with FileZilla or similar
- Navigate to public_html
- Download all files to your computer
Step 2: Export Database
Via phpMyAdmin:
- Log into cPanel → phpMyAdmin
- Select your database
- Click Export
- Choose "Quick" method
- Format: SQL
- Click Go
- Save the .sql file
Step 3: Create Database on New Host
- Log into new host cPanel
- Go to MySQL Databases
- Create new database (note the name)
- Create new user with password
- Add user to database with ALL PRIVILEGES
Step 4: Upload Files to New Host
Using cPanel File Manager:
- Upload your zip file to public_html
- Extract the zip
Using FTP:
- Connect to new host
- Upload all files to public_html
Step 5: Import Database
- Log into new host cPanel → phpMyAdmin
- Select your new database
- Click Import
- Choose your .sql file
- 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.
Option A: Update Nameservers (Recommended)
- Log into your domain registrar (where you bought the domain)
- Find DNS/Nameserver settings
- 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:
- Log into domain registrar
- Go to DNS settings
- Find the A record for @ and www
- Change IP address to new host's IP
- Update or remove old A records
DNS Propagation
DNS changes take time to spread globally:
| Timeframe | What Happens |
|---|---|
| 0-2 hours | Some users see new site |
| 2-12 hours | Most users see new site |
| 12-48 hours | All 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:
- Check PHP version matches old host
- Increase memory limit in wp-config.php:
define('WP_MEMORY_LIMIT', '256M'); - 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:
- Double-check wp-config.php credentials
- Verify database exists in phpMyAdmin
- Confirm database user has permissions
- Try 'localhost' vs '127.0.0.1' for DB_HOST
Problem: Broken Images/Links
Causes:
- Hardcoded URLs to old domain
- Files didn't transfer completely
- Permission issues
Solutions:
- Run search-replace on database (Better Search Replace plugin)
- Re-upload missing files
- 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:
- Install SSL via cPanel → SSL/TLS or Let's Encrypt
- Use "Really Simple SSL" plugin temporarily
- Run search-replace: http:// → https://
Problem: Email Not Working
Causes:
- MX records not updated
- Email accounts not recreated
- SPF/DKIM records missing
Solutions:
- Update MX records to new host
- Recreate email accounts
- 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:
- Set up caching (LiteSpeed Cache, W3 Total Cache)
- Configure CDN (Cloudflare is free)
- 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 Method | Cost | Effort | Risk |
|---|---|---|---|
| Host's free migration | $0 | Low | Low |
| Migration plugin | $0-69 | Medium | Low |
| Manual DIY | $0 | High | Medium |
| Professional service | $50-200 | None | Low |
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:
- Best Web Hosting 2026 - Top picks overall
- Cheapest Web Hosting - Budget-friendly options
- Host Comparison Tool - Compare any two hosts
- Hosting Quiz - Get personalized recommendations
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.

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