S Simplewala
WordPress Migration

How to migrate WordPress with zero downtime

Step-by-step guide to moving a live WordPress site to a new host without losing a visitor.

Simplewala Team

Migrating a live WordPress site is nerve-racking. Do it wrong and you have 503 errors and angry users. Do it right and nobody notices — the site just gets faster.

This guide shows the safest approach: keep the old host running until the new host is fully tested, then flip DNS with a minimal TTL.

Overview

  1. Set up the new server (Simplewala)
  2. Install WordPress and restore your data
  3. Test on the new host using a temporary URL
  4. Lower DNS TTL on the old host
  5. Flip DNS
  6. Decommission the old host

Step 1: Set up Simplewala

Create a server on Simplewala and run the WordPress installer from Apps → Install WordPress. This installs Nginx, PHP-FPM, MariaDB, and WordPress.

Step 2: Export from the old host

Database

ssh user@old-server
mysqldump -u root -p wordpress_db > /tmp/wordpress_backup.sql

Files

tar czf /tmp/wp-content.tar.gz /var/www/html/wp-content/

Step 3: Import on Simplewala

# Transfer files
scp user@old-server:/tmp/wordpress_backup.sql root@new-server:/tmp/
scp user@old-server:/tmp/wp-content.tar.gz root@new-server:/tmp/

# On Simplewala server — import database
mysql -u root -p wordpress_db < /tmp/wordpress_backup.sql

# Restore wp-content
cd /var/www/html
tar xzf /tmp/wp-content.tar.gz --strip-components=3

Step 4: Update wp-config.php

The new server has different database credentials. Update /var/www/html/wp-config.php with the credentials shown in the Simplewala installer output.

Step 5: Update WordPress site URL

Your database still has the old domain. Update it with WP-CLI:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' \
  --all-tables --precise

If you're testing with a temporary domain first, replace with the temporary domain and then replace again when going live.

Step 6: Test on the new server

Access the new site via the server IP or a test domain:

https://<server-ip>/wp-admin

Walk through the site. Check forms, images, menus, and checkout if you have WooCommerce. Don't proceed until everything works.

Step 7: Lower DNS TTL

On your DNS provider, lower the TTL of your domain's A record to 300 seconds (5 minutes). Wait for the current TTL to expire before continuing — this can take up to 24 hours if the TTL is currently 86400.

Step 8: Flip DNS

Add your domain to Simplewala's Front Door proxy (SSL is provisioned automatically), then update your DNS A record to the new server IP.

Within 5 minutes, most visitors will be hitting the new server.

Step 9: Verify and clean up

  • Check your error logs: tail -f /var/log/nginx/error.log
  • Verify SSL: curl -I https://yourdomain.com
  • Keep the old host running for 24–48 hours as a safety net
  • After 48 hours with no issues, decommission the old host

What about email?

If your email MX records point to the old host, don't change them until your mail server is set up on Simplewala. Migrate email separately — change your MX records only when the new mail server is tested and ready.

Ready to simplify your hosting?

Deploy your first server in 90 seconds. All features included.

Start free