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.
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
- Set up the new server (Simplewala)
- Install WordPress and restore your data
- Test on the new host using a temporary URL
- Lower DNS TTL on the old host
- Flip DNS
- 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