Agency Client Migration Stories – Migrating from Bluehost

Step-by-Step Tutorial for Freelancers

Spin up a free InstaWP sandbox to follow along.


Why This Move Matters — the Pain Point Scene-Setter

Your agency client is stuck on a standard Bluehost plan. Page-speed tests show a Time to First Byte hovering around 1.5 – 2 s, PHP workers throttle under modest traffic, and support tickets take days to resolve. Every plugin update feels like Russian roulette: will the site crash or limp along even slower?
As the freelancer trusted to “just fix it,” you need a fast, repeatable path off that shared box and onto an elastic WordPress cloud where resources scale automatically and TTFB lands well under 150 ms.


Migration in Five Numbered Steps

1. Pre-Audit & Backups

  1. Run a quick audit curl -o /dev/null -s -w '%{time_namelookup} %{time_connect} %{time_starttransfer}\n' https://clientsite.com Note the sluggish start-transfer time.
  2. Generate full backups
    • cPanel → Files → Backup Wizard → Full Backup
    • Inside WordPress, install UpdraftPlus → “Backup Now” → download database & uploads.
  3. Export the database manually (belt-and-suspenders): wp db export clientsite.sql

2. Spin Up the Target Environment

  1. Create a fresh InstaWP sandbox (one click).
  2. Import the archive
    • Drag-and-drop your ZIP in the InstaWP dashboard, or
    wp import /path/to/clientsite.xml --authors=create wp db import clientsite.sql
  3. Verify permalinks, media paths, and custom tables.

3. Debug & Optimise

  1. Re-run the TTFB test against the sandbox URL: curl -o /dev/null -s -w '%{time_starttransfer}\n' https://sandbox123.instawp.xyz You should already see < 0.15 s.
  2. Plugin bloat check wp plugin list --status=active --field=name | wc -l Aim for < 15 active plugins; deactivate anything unused.
  3. Turn on object caching (Redis) in the sandbox → Settings → Performance.

4. Push Live to Cloud Host

  1. Choose an elastic WordPress cloud plan (InstaWP or equivalent).
  2. From the InstaWP sandbox, hit Push → New Cloud Site.
  3. Map your client’s domain and generate an ACME SSL cert automatically.
  4. Post-push smoke test: admin log-in, checkout flow, contact forms, webhooks.

5. DNS Cut-Over & SSL Issuance

  1. Confirm the new server IP in the cloud dashboard.
  2. In the registrar (or Cloudflare), update the A record to the new IP; set TTL = 300 s for fast propagation.
  3. Wait ~15 min, clear your local DNS cache, and retest TTFB: dig +short clientsite.com curl -o /dev/null -s -w '%{time_starttransfer}\n' https://clientsite.com
  4. Keep Bluehost active 48 h as a fallback, then cancel to avoid renewal fees.

Wrap-Up: Checklist, Gotchas & Next Steps

✅ Do This⚠️ Watch Out For
Capture both cPanel and WP-level backups before touching DNS.Mixed-content issues after SSL; run a search-replace on http://.
Verify email deliverability (SPF, DKIM) after cut-over.Old IP hard-coded in SMTP plugins or security settings.
Use WP-CLI to script repeat migrations for future clients.WP-Cron disabled by default on some clouds—set a real cron job.
Benchmark before & after; screenshots prove value to the client.Forgetting to recreate custom DNS records (sub-domains, MX).

Next-Step Resources

  • InstaWP Docs: Sandbox → Cloud push guide
  • WP-CLI Handbook: Automating database & media imports
  • k6.io: Load-testing scripts to validate scaling

slug: migrate-bluehost-to-cloud-wordpress
meta: Step-by-step guide for freelancers to migrate an agency client from Bluehost to a fast, elastic WordPress cloud in under an hour—backup, import, optimise and switch DNS safely.

Leave a Reply

Your email address will not be published. Required fields are marked *