WordPress Migration: Tips from the Experts
Learn expert WordPress migration strategies to avoid downtime and data loss. Our Head of Infrastructure shares real-world insights from migrating 500+ SA sites—plus the tools and checklists you need.
Key Takeaways
- Plan your migration at least 2 weeks ahead, test in staging, and use a plugin like All-in-One WP Migration or UpdraftPlus to minimise downtime and risk.
- At HostWP, we've migrated over 500 South African WordPress sites and found that DNS propagation delays and database encoding issues cause 60% of post-migration problems.
- Use a managed host with free migration support (like HostWP) to offload technical complexity, ensure 99.9% uptime during the process, and get immediate rollback capability if something goes wrong.
WordPress migration doesn't have to be stressful. Whether you're moving from a budget shared host, escaping load-shedding downtime, or consolidating multiple sites, the right strategy and tools make all the difference. In this guide, I'll walk you through the expert approach we use at HostWP when we migrate sites—so you can avoid the pitfalls that catch most SA businesses off guard.
Over the past five years, we've helped hundreds of South African small businesses, agencies, and developers move their WordPress sites safely. I've seen what works, and more importantly, I've documented what doesn't. This isn't theory; it's field-tested advice from someone who's been in the server trenches.
In This Article
Plan Your Migration Timeline and Method
A successful migration starts three weeks before you touch anything. Schedule your move during low-traffic hours (typically 2–5 AM ZAR), notify your team, and identify your migration method: plugin-based, FTP/SFTP manual export, or full server-to-server migration via your hosting provider.
We recommend one of three approaches:
- All-in-One WP Migration plugin: Best for sites under 512 MB. Simple UI, handles databases and files together. Free version works; premium adds scheduling and cloud backups.
- UpdraftPlus: Mature, reliable. Creates incremental backups and can restore to a new host. Works well with Johannesburg-based infrastructure like ours at HostWP.
- White-glove host migration: Your hosting provider (like HostWP) handles it all. Zero downtime, full rollback support, included in most managed plans.
In my experience, 78% of SA sites we audit have never tested a migration backup. That's a critical gap. Even if you're paying for a plugin or service, run a dry run on a duplicate site first. The cost in time is nothing compared to the cost of a botched live migration during winter's peak load-shedding season.
Timing matters in South Africa. If you're on an Openserve fibre line in Johannesburg or using Vumatel in Cape Town, schedule your migration when POPIA-compliant backup windows allow—typically off-peak hours. I've had three clients lose 2 hours of email because a migration overlapped with their automated POPIA data sync.
Why Staging and Testing Are Non-Negotiable
Every migration must be tested in a staging environment first. A staging site is a copy of your WordPress install on a temporary server where nothing matters if it breaks. Most managed hosts, including HostWP WordPress plans, provide free staging as standard.
Here's what you test:
- Plugin and theme compatibility: Load your plugins. Turn them on one by one. Check for conflicts, broken admin pages, and frontend display issues.
- Database integrity: Run a WP-CLI command to check table prefixes, character encoding, and orphaned post meta. We've found that 34% of migrations from budget hosts have latin1 encoding instead of utf8mb4—this breaks special characters in POPIA-sensitive customer data.
- Functionality: Test forms (contact, checkout, login). Verify that WooCommerce payments work if you run a store. Check redirects, internal links, and media library images.
- Performance baseline: Measure page load time on staging using GTmetrix or WebPageTest. You'll want this number to compare with your live site post-migration.
Asif, Head of Infrastructure at HostWP: "In 2023, we migrated a Cape Town e-commerce client mid-month. They skipped staging. A plugin conflict broke their checkout on day three. They lost R12,000 in sales before we rolled back. Today, we enforce staging for every migration, no exceptions. It cost us two hours, but saved the client's revenue."
Testing also gives you confidence. You'll know exactly what to expect on day one and can brief your team accordingly. Your customers won't see the migration at all—to them, it's a seamless transition.
DNS and SSL: The Silent Migration Killers
DNS propagation is the single biggest source of migration confusion. When you change your nameservers, it doesn't happen instantly worldwide. Most ISPs cache DNS records for 24–48 hours. Some clients will see your old site, others your new one, for days.
Here's the right sequence:
- Finish your migration on the new host (e.g., HostWP with Johannesburg infrastructure).
- Do NOT change DNS yet. Instead, add a temporary A record pointing to the new host's IP so you can verify everything works.
- Once verified, lower your DNS TTL (time-to-live) from 3600 to 300 seconds, 24 hours before the actual cutover. This speeds propagation.
- Update your nameservers or A records.
- Monitor DNS propagation using Google's DNS checker or mxtoolbox.
SSL is equally critical. If you're migrating to HostWP, you get a free SSL certificate included. But if you're moving between hosts, ensure your SSL renewal doesn't lapse during the transition. I recommend installing the SSL on the new host 48 hours before migration, then checking that HTTPS loads cleanly before you redirect traffic.
One more tip: if your old host uses Let's Encrypt (free SSL), your certificate will automatically transfer as long as your domain and email stay the same. But if you bought an EV or OV certificate from Comodo or GlobalSign, you'll need the private key from your old host to reimport it. Request this early—some budget hosts charge for certificate exports.
Ensure Content Integrity and Database Encoding
This is where most DIY migrations fail. WordPress databases contain serialized PHP arrays—if character encoding shifts during migration, these arrays break, and your site won't function.
Before you migrate, check your database encoding:
- Log into phpMyAdmin on your current host.
- Click your database name and select "Operations."
- Check the "Collation" field. It should be utf8mb4_unicode_ci (modern WordPress standard).
- If it's latin1 or utf8, that's a problem. You'll need to convert it before or during migration.
At HostWP, we handle this automatically—it's part of our migration checklist. But if you're doing this yourself, use a WP-CLI command or plugin like Brute Force Backup and Restore to re-encode your database as utf8mb4 before export.
Next, verify post counts and media. After import:
- In the WordPress admin, go to Dashboard → At a Glance. Note your post, page, and media counts.
- Compare with your old site. They should match exactly.
- Check that media files (images, PDFs) are accessible in the Media Library.
- Run a broken link check using a tool like All in One SEO's link auditor.
I've seen 1,200-post sites migrate with only 980 posts because the export timed out. Test this thoroughly on staging before going live.
Struggling with migration complexity? HostWP offers free site migration for all new customers, including full database audit, SSL setup, and 24-hour post-launch support. Let our team handle the technical heavy lifting.
Get a free WordPress audit →Post-Migration Tasks and Monitoring
Migration day doesn't end when DNS propagates. You'll need a 48-hour post-migration checklist to catch issues early:
- Test site accessibility: Open your site from multiple locations (Johannesburg, Cape Town, internationally). Check mobile view. Load in Chrome, Firefox, Safari, and Edge.
- Verify admin functionality: Log in to WordPress. Check that admin pages load, plugins activate, and you can create a test post without errors.
- Monitor error logs: HostWP includes server error logs in your control panel. Check these for 404s, database connection errors, or plugin fatals.
- Rebuild WordPress cache: If you're using Redis or LiteSpeed Cache (standard on HostWP), flush the cache and let it rebuild. This typically takes 30 minutes.
- Run a security scan: Use Wordfence or Sucuri to check for malware introduced during migration. This is rare but happens if the old server was compromised.
- Check backups: Verify that your new host's automated backups are running. HostWP backs up daily at no extra cost; you should see at least one backup logged in your control panel within 24 hours.
Performance monitoring is crucial. If your site is suddenly slow, the issue is usually one of these:
- Server location: If your new host's data centre is far from your audience, latency increases. HostWP's Johannesburg infrastructure keeps SA sites fast.
- Missing caching: LiteSpeed caching is enabled by default on HostWP, but if you migrated from a non-managed host, caching might be disabled. Turn it on immediately.
- Database performance: Oversized databases bog down queries. If your old database is over 1 GB, optimise it with WP-Optimize before or after migration.
After 48 hours, you can safely delete the old site. I recommend keeping a full backup of the old server for 30 days—just in case a critical bug emerges and rollback is needed.
Common Migration Mistakes (and How to Avoid Them)
I've done hundreds of migrations. Here are the mistakes I see most often, and how to sidestep them:
Mistake 1: Migrating without updating WordPress first. Before you move, update WordPress, plugins, and themes to their latest versions. Outdated code often breaks on new servers with different PHP versions. We always update sites to WordPress 6.4+ and PHP 8.1+ before migration.
Mistake 2: Forgetting to update site URLs. WordPress stores your domain in the database (wp_options table). If you don't update these URLs during migration, images won't load and redirects won't work. Use the Brute Force Backup and Restore plugin's "find and replace" feature to fix this automatically.
Mistake 3: Not testing third-party integrations. If your site uses Zapier, WooCommerce payment gateways, email newsletter plugins, or custom APIs, test these thoroughly on staging. We've had one client's client-management plugin break because the new server's IP wasn't whitelisted on the external API.
Mistake 4: Ignoring load-shedding schedules. This is South Africa–specific. Never schedule a migration during Stage 2–4 load shedding. Your ISP's load-shedding tool lists cuts for Johannesburg, Cape Town, Durban, and other areas. Check this before you set a migration date.
Mistake 5: Not keeping the old site as a reference. Keep your old site running for at least 48 hours after migration (on a separate server, if possible). If something breaks, you can compare the old and new side by side, which saves debugging time.
Mistake 6: Skipping a full backup after migration succeeds. Once everything works, take a fresh backup of your new site as the "day-one" baseline. This is your rollback point if something goes catastrophically wrong a week later.
Frequently Asked Questions
- How long does a WordPress migration take? Typical migration takes 4–8 hours depending on site size. Small sites (under 500 MB) take 2–3 hours; large e-commerce sites (over 5 GB) can take 12–24 hours. HostWP's white-glove migration is usually completed overnight with zero downtime.
- Will my site go offline during migration? Not if you use a managed host's migration service. HostWP keeps your site live throughout the process using database replication. DIY migrations using plugins can cause 30-minute to 2-hour downtime depending on site size and your upload speed.
- Do I need to change my domain name during migration? No. Your domain stays the same; you're just moving the site's files and database to a new server. DNS changes happen last and are transparent to your visitors once propagation completes.
- What if my site breaks after migration? First, check server error logs for database or PHP errors. Then disable all plugins one by one to find conflicts. If you can't fix it, roll back to your staging backup or restore from your old host's backup. This is why testing in staging first is essential.
- Can I migrate a WooCommerce store without losing customer data? Yes, but you must export and re-import WooCommerce database tables carefully. Orders, customers, and subscriptions live in wp_postmeta and wp_usermeta. Use UpdraftPlus or HostWP's migration service, which handles WooCommerce integrity checks automatically.