askharrison.co.uk
← All Articles UK Region Migrations WordPress Agencies DevOps

The Zero-Downtime WordPress Migration Playbook for Web Agencies

A step-by-step guide for web agencies migrating client WordPress sites without breaking email, SSL, or dropping single database transactions.

By Harrison

Migrating a high-traffic WordPress site for an agency client is often met with dread. One wrong DNS edit or uncoordinated TTL drop can cause hours of downtime, lost WooCommerce orders, or broken MX records that stop agency client emails.

Having spent years in web hosting and server management across the UK, I have developed a repeatable, zero-downtime cutover strategy designed for site owners and web agencies.

Why Traditional WordPress Migrations Fail

Most migration failures come down to three fundamental mistakes:

  1. Migrating directly on the production host: Modifying files or running search-replace scripts on live servers without an isolated staging step. Refer to the WordPress.org Migration Guide for recommended staging setups.
  2. Ignoring DNS TTL propagation: Changing A records when TTL is set to 86400 seconds (24 hours), causing visitors to hit both old and new servers simultaneously. Review Cloudflare DNS Documentation for propagation timing.
  3. Overlooking WooCommerce & dynamic data: Failing to put the database into read-only or maintenance mode during cutover, resulting in lost order data.
+------------------+         +-------------------+         +-------------------+
|  Old Host (Live) |  --->   | Staging Sandbox   |  --->   |  New Host (Cutover)|
|  TTL = 300s      |         | Agency Review     |         |  Auto-renew TLS   |
+------------------+         +-------------------+         +-------------------+

The 4-Step Zero-Downtime Agency Workflow

Step 1: Pre-Flight Audit & DNS TTL Lowering

At least 48 to 72 hours before the planned migration window:

Step 2: Staging Server Build & URL Isolation

Never cut over to a live target server without an agency review stage:

Migration PhaseCommon FlawProfessional StandardOutcome
Pre-FlightHigh DNS TTL (24h)Lower TTL to 300s 48h priorRapid DNS cutover
TestingLive server editsStaging URL testing passZero production bugs
CutoverMissing delta syncOut-of-hours delta DB syncZero lost WooCommerce orders

Step 3: Out-of-Hours Cutover Execution

Schedule cutovers during low-traffic windows (typically 10:00 PM to Midnight UK time):

  1. Place old site into temporary maintenance mode (or read-only DB mode).
  2. Perform a final delta sync of wp-content/uploads/ and a final database import.
  3. Update A and AAAA records at the DNS provider to point to the new IP.
  4. Issue Let’s Encrypt or ZeroSSL TLS certificates instantly using ACME HTTP-01 validation.
# Example delta rsync command for wp-content/uploads
rsync -avz -e "ssh -p 22" user@oldserver:/var/www/html/wp-content/uploads/ /var/www/html/wp-content/uploads/

Step 4: 14-Day Dual-Host Hold & Post-Migration Audit

Keep the old hosting environment active for 14 days post-cutover. This acts as a safety cushion for lingering DNS caches, legacy cron jobs, or third-party webhooks.


Need White-Label Migration Support for Your Agency?

If your agency handles multiple WordPress sites and would prefer to outsource the server layer to a specialist, explore my fixed-price Site Migration Service starting at £450 with a 30-day fix-free warranty.

WordPress & Server Specialist

Need expert help with your WordPress site?

I specialize in fixed-price WordPress migrations, PHP upgrades, and emergency hacked site recoveries for site owners and web agencies.

Email Harrison →