Migrating a website to a new hosting provider can feel daunting—and for good reason. A poorly executed migration can result in downtime, lost data, broken links, and lost search engine rankings. But with proper planning and the right approach, you can move your site to a new host with zero downtime and zero stress. In fact, a migration is also an opportunity: a chance to upgrade to a faster, more reliable host like InterServer and immediately improve your site's performance.

This step-by-step guide covers the complete website migration process, from choosing your new host to flipping the DNS switch. It works for WordPress sites, static websites, custom applications, and everything in between.

Migrate to InterServer—Free Migration Included

InterServer offers free website migration with all web hosting plans. VPS from $2.50/month with price-lock guarantee.

Coupon: VPSFEEDX — First Month $0.01
Get InterServer Hosting →

Why Migrate to a New Host?

Common reasons for switching hosting providers include:

  • Poor performance: Slow page load times affecting user experience and SEO.
  • Frequent downtime: Your current host's reliability is unacceptable.
  • Price hikes at renewal: The introductory price expired and the renewal cost is too high.
  • Inadequate support: Support is slow, unhelpful, or outsourced.
  • Resource limits: Your site has outgrown shared hosting and needs VPS or cloud resources.
  • Need for more control: You want root access to install custom software.
  • Poor security: Your host has been compromised or does not offer modern security features.

If any of these resonate, migrating to a better host—like InterServer, our top-rated provider for 2026—can resolve all of these issues at once.

Pre-Migration Planning

A successful migration begins with thorough planning. Rushing this phase is the most common cause of migration problems.

Step 1: Inventory Your Current Site

Before moving anything, document what you have:

  • Files: How many files, total size, and where they are located.
  • Database: Database type (MySQL, PostgreSQL), size, and number of tables.
  • Email accounts: Any email accounts hosted with your current provider.
  • DNS records: A, CNAME, MX, TXT records—take screenshots or export the zone file.
  • SSL certificates: Note expiration dates and issuing authority.
  • Cron jobs: Any scheduled tasks running on the server.
  • Custom configurations: PHP version, custom php.ini settings, Nginx/Apache configs.
  • Third-party integrations: Payment gateways, APIs, CDNs that reference your server.

Step 2: Choose Your New Host

Select a new hosting provider that meets your needs. For most users, we recommend InterServer because of its price-lock guarantee, SSD storage, and free site migration. For a detailed comparison framework, see our hosting provider selection guide.

Step 3: Set Up the New Environment

Before touching your live site, set up the new hosting environment completely:

  1. Sign up for the new hosting plan.
  2. Install the same software stack (web server, database, PHP version).
  3. Create the database and database user.
  4. Configure SSL (see our SSL guide).
  5. Set up email accounts if your new host provides email.
  6. Recreate any cron jobs or custom configurations.

Do not change your DNS yet—the new environment will be tested before going live.

InterServer VPS

Migrating a WordPress Site

WordPress is the most common CMS, and its migration process is well-documented. Here is the most reliable method:

Step 1: Back Up Everything

Create a complete backup of your current WordPress site:

  • Use a plugin like UpdraftPlus or Duplicator to export files and database.
  • Alternatively, manually export the database via phpMyAdmin and download all files via FTP/SFTP.
  • Store the backup in at least two locations (local computer + cloud storage).

Step 2: Export the Database

Export your WordPress database from the current host:

mysqldump -u username -p databasename > backup.sql

Or use phpMyAdmin: select the database, click "Export," choose "Custom," select all tables, and export as a .sql file.

Step 3: Upload Files to the New Host

Transfer your WordPress files to the new host. The easiest method is via SFTP:

# Using scp from your local machine
scp -r /path/to/wordpress/* user@new_server:/var/www/wordpress/

# Or use rsync for large sites (resumable)
rsync -avz /path/to/wordpress/ user@new_server:/var/www/wordpress/

Set correct permissions on the new server:

sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;

Step 4: Import the Database

Create a new database on the new host and import your data:

mysql -u root -p -e "CREATE DATABASE wordpress;"
mysql -u root -p -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';"
mysql -u root -p wordpress < backup.sql

Step 5: Update wp-config.php

Edit the WordPress configuration file with the new database credentials:

define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost');

Step 6: Update URLs (If Domain Changed)

If your domain name is staying the same, skip this step. If the domain is changing, update all URLs in the database. Use the WP-CLI search-replace command:

wp search-replace 'http://olddomain.com' 'http://newdomain.com'

Alternatively, use the Better Search Replace plugin from the WordPress admin dashboard.

Step 7: Test on the New Host

Before changing DNS, test the new site using a temporary URL or by editing your local hosts file. To edit your hosts file:

# On Windows: C:\Windows\System32\drivers\etc\hosts
# On Mac/Linux: /etc/hosts

# Add this line (replace with your new server's IP)
NEW_SERVER_IP  yourdomain.com  www.yourdomain.com

Visit your site in a browser. You are now viewing the site on the new server. Test thoroughly: check pages, forms, images, and functionality. Fix any issues before proceeding.

Migrating a Static or Custom Website

For non-WordPress sites, the process is similar but simpler:

  1. Download all files from the old host via SFTP or SCP.
  2. Export any databases using mysqldump or pg_dump.
  3. Upload files to the new host.
  4. Import databases on the new host.
  5. Update configuration files with new database credentials and paths.
  6. Test thoroughly using the hosts file method above.

The DNS Switch: Going Live with Zero Downtime

The DNS switch is the moment your domain starts pointing to the new server. Done correctly, visitors experience zero downtime. The key is to lower your DNS TTL (Time To Live) before the switch, so changes propagate quickly.

Step 1: Lower DNS TTL (24 hours before migration)

At your DNS provider, lower the TTL on your A records from the default (usually 3600 or 86400 seconds) to 300 seconds (5 minutes). This ensures that when you change the IP address, DNS resolvers worldwide pick up the change within 5 minutes instead of hours.

Step 2: Keep Both Sites in Sync

If your site is updated frequently (e-commerce, active blog), set up a process to keep the database in sync between old and new hosts until the DNS switch. For WordPress, you can use a plugin like WP Migrate DB Pro, or simply re-export/import the database right before the switch.

Step 3: Change DNS Records

Update your domain's A records to point to the new server's IP address:

yourdomain.com.     A    300    NEW_SERVER_IP
www.yourdomain.com. A    300    NEW_SERVER_IP

Within 5-30 minutes, most visitors will be hitting the new server. Some may still reach the old server for up to an hour due to DNS caching.

Step 4: Keep the Old Host for 7 Days

Do not cancel your old hosting immediately. Keep it running for at least 7 days to catch any stragglers still hitting the old server, and as a fallback if something goes wrong. After 7 days of stable operation on the new host, you can safely cancel the old account.

Post-Migration Checklist

TaskStatus
Test all pages load correctlyRequired
Verify SSL certificate is activeRequired
Test all forms (contact, checkout)Required
Check email sending/receivingRequired
Verify redirects still workRequired
Test site searchRequired
Run speed test (GTmetrix, PageSpeed)Recommended
Submit new sitemap to Google Search ConsoleRecommended
Set up uptime monitoringRecommended
Configure automated backupsRecommended
Monitor for 404 errorsRecommended
Cancel old host after 7 daysFinal step

Common Migration Problems and Solutions

  • Broken links after migration: Use a plugin like Better Search Replace to update internal URLs, especially if the domain or path changed.
  • "Error establishing database connection": Check wp-config.php for correct database credentials and verify the database user has the right permissions.
  • White screen of death: Usually a PHP error. Check error logs and verify PHP version compatibility.
  • Missing images: Ensure the uploads directory was transferred and has correct permissions (755 for directories, 644 for files).
  • Email not working: Update MX records if email is hosted separately, or set up email accounts on the new host.
  • SEO ranking drop: Ensure 301 redirects are in place for any changed URLs. Submit a new sitemap to Google.

Migrate to InterServer Today

Free site migration, VPS and web hosting from $2.50/month, price-lock guarantee, and 24/7 expert support. Your migration just got easier.

Coupon: VPSFEEDX — First Month $0.01
Get InterServer Hosting →

Affiliate Disclosure: VPSFeedX may earn a commission when you purchase through links on this page. This does not affect the price you pay or our recommendations.