How to Migrate WordPress Without Downtime (2026)
Every minute your site is down during a move, visitors bounce and sales evaporate. The good news: zero-downtime WordPress migration is a solved problem. It just requires doing things in the right order.
Before you start
You need three things: access to your old host’s control panel, a hosting account on the new host, and about an hour of uninterrupted time. Don’t start this at midnight before a product launch. Pick a low-traffic window — check your analytics for the quietest hours.
Step 1: Back up everything
Before touching anything, take a complete backup of the live site: files, database, the lot. Store it somewhere that isn’t either host — your local machine or cloud storage. If anything goes wrong at any step below, this backup is your rewind button.
See our full walkthrough: How to back up your website before moving hosts.
Step 2: Lower your DNS TTL — 24 to 48 hours before the move
TTL (time to live) tells the internet how long to cache your DNS records. Lower it to 300 seconds (5 minutes) at your DNS provider a full day or two before migrating. This is the single most important zero-downtime step: when you flip the switch later, visitors reach the new server within minutes instead of hours.
Skip this and some visitors will hit the old server for up to 24 hours after you switch — placing orders and leaving comments on a site you’re about to delete.
Step 3: Set up the new hosting account
Create the account, add your domain as an addon/parked domain (don’t point DNS yet), and install a fresh WordPress or leave the directory empty depending on your migration method. Note the new server’s IP address and any temporary URL the host provides.
Step 4: Migrate the site
Three routes, pick one:
Let the host do it. Most decent hosts — See Hostinger plans ">Hostinger included — offer free WordPress migration. You hand over your old host’s login, they copy everything. This is the lowest-effort path and it’s genuinely good.
Use a migration plugin. All-in-One WP Migration or Duplicator: install on the old site, export everything to a single file, install WordPress on the new host, install the same plugin, import. Watch out for upload size limits on the free tiers — large sites may need the paid extension or a manual approach.
Do it manually. Export the database via phpMyAdmin, download all files via FTP, upload to the new host, create a new database, import the SQL, update wp-config.php with the new database credentials. More steps, zero plugin risk, full control.
Plugin vs. manual vs. host-done: which route?
Each migration method suits a different situation:
| Host-done (free migration) | Plugin (All-in-One WP Migration, Duplicator) | Manual (FTP + phpMyAdmin) | |
|---|---|---|---|
| Effort | Near zero | Low–medium | High |
| Speed | 1–3 days (queue-dependent) | Under an hour | 1–2 hours |
| Large sites (2GB+) | Best option | May hit upload limits | Works fine |
| Control | None — trust the team | Full | Full |
| Risk | Low | Low | Medium (human error) |
| Best for | Anyone who qualifies | DIYers, small–medium sites | Developers, complex setups |
If your new host offers free migration, take it — then still follow Steps 2, 5, 6, and 7 yourself. The host moves the files; the DNS strategy and testing are yours.
Multisite note: WordPress multisite migrations are significantly more complex — domain mapping, per-site tables, and sunrise configuration. If you run multisite, use the host-done route or hire it out. Plugin and manual methods frequently break multisite in subtle ways.
Step 5: Test on the new host before going live
This is the step people skip, and it’s the one that saves you. Access the migrated site via the host’s temporary URL or by editing your local hosts file to point your domain at the new server IP (only your computer sees this — the world still hits the old server).
Check: homepage, a few posts/pages, contact forms, login to wp-admin, any e-commerce checkout flow. If you run WooCommerce, place a test order. Fix anything broken now, while nobody’s watching.
Step 6: Flip the DNS
Update your domain’s A record (and AAAA if you use IPv6) to the new server’s IP. Because you lowered the TTL in Step 2, propagation takes minutes, not hours. Don’t touch anything else — leave the old site running.
Step 7: Monitor, then cancel the old host
For the next 24–48 hours, keep both hosts running. Check the new site in an incognito window. Watch for:
- Mixed-content warnings (HTTP resources loading on HTTPS pages)
- Missing images (usually a hardcoded old URL — run a search-replace on the database)
- Email issues (if mail was hosted on the old server, see how to move email when switching hosts)
- Form submissions landing correctly
Once everything’s clean for two full days, cancel the old hosting. Not before. The old host is your free insurance policy — a few extra days of overlap costs almost nothing.
What to do when something goes wrong
Even with preparation, things break. Here’s the triage order:
- Site shows a database connection error: the
wp-config.phpcredentials don’t match the new database. Re-check the database name, username, password, and host (oftenlocalhost, but some hosts differ). - White screen: a plugin or theme is incompatible with the new server’s PHP version. Rename the
pluginsfolder via FTP to disable all plugins, then reactivate one by one. - Images broken: run a database search-replace for the old URL → new URL (the Velvet Blues Update URLs plugin or WP-CLI’s
search-replace). This is almost always hardcoded URLs. - Site works but looks wrong: clear all caches — plugin cache, server cache, and your browser cache — then check again.
If the new host is fundamentally broken and you can’t fix it within an hour, roll back: point DNS back to the old host (which you kept running, per Step 7) and regroup. The old site is untouched. That’s why you never cancel it early.
Common mistakes
- Migrating without lowering TTL first. The #1 cause of “half my visitors see the old site” confusion.
- Cancelling the old host the same day. If DNS hasn’t fully propagated everywhere, you’ve deleted the site some visitors still reach.
- Forgetting the database search-replace. Hardcoded old URLs (especially
http://vshttps://or temporary URLs) break images and links silently. - Not testing checkout or forms. The homepage can look perfect while the contact form silently fails.
- Migrating on a Friday afternoon. If something breaks, you want support available and a full workday to fix it — not a weekend of downtime.
Post-migration checklist
Run through this 48 hours after the DNS flip, before cancelling the old host:
- Homepage and key pages load over HTTPS with no warnings
- All images and media display correctly
- Contact/lead forms submit and deliver
- Checkout flow completes (test order + refund for stores)
- wp-admin login works, no plugin errors
- Email sending works (test from a contact form)
- Backups are configured on the new host
- Old host still running as fallback
Done right, your visitors never notice the move happened. That’s the whole point.
Hostinger's free migration service handles the whole WordPress move for you — then follow the steps above for the DNS cutover.
See Hostinger plans