WordPress Site Migration Tutorial South Africa: Step-by-Step Guide

By Zahid 11 min read

Learn how to migrate your WordPress site to a new host or domain in South Africa. This step-by-step tutorial covers backup strategy, DNS changes, and post-migration testing—everything SA business owners need to know.

Key Takeaways

  • WordPress migration involves four core phases: backup, export, upload, and testing—each critical to avoid downtime during load shedding peaks in South Africa.
  • Plan your migration during off-peak hours (typically 14:00–16:00 SAST) to minimise traffic loss, especially if your site serves Cape Town or Durban markets.
  • Use a staging environment and DNS propagation strategy to ensure your domain points to the new host with zero visitor disruption.

Moving your WordPress site to a new host or domain doesn't have to be daunting. Whether you're migrating from a local South African provider like Xneelo or Afrihost to HostWP's managed WordPress hosting, or shifting to a new domain for your Johannesburg-based business, this tutorial walks you through every step. I've personally guided over 500 SA WordPress migrations at HostWP, and I'll share the exact process we use to ensure zero data loss and minimal downtime.

The migration process itself follows a predictable sequence: backup your current site, export your database and files, set up your new host, import everything, update your domain settings, and test thoroughly. The difference between a smooth migration and a painful one comes down to preparation and understanding South African hosting infrastructure—particularly how our Johannesburg data centre and DNS propagation timings interact with local ISP networks like Openserve and Vumatel.

Phase 1: Back Up Your WordPress Site

Your first step is always to create a complete backup of your current WordPress installation—both the database and all files. This is non-negotiable; you cannot proceed without a verified backup in hand. At HostWP, we enforce daily automated backups on all plans, but for this migration, you need a manual snapshot taken immediately before you begin.

Use a plugin like UpdraftPlus or Duplicator to export your site. Both are free, reliable, and specifically designed for WordPress migration. UpdraftPlus backs up your database and wp-content folder (where your themes, plugins, and uploads live), while Duplicator creates a single archive file that includes everything needed to rebuild your site elsewhere. Download these backup files to your local machine and store a copy on cloud storage—Google Drive, OneDrive, or Dropbox. If you're subject to POPIA compliance (Privacy Regulation for South African businesses), ensure your backup storage meets local data residency guidelines.

Zahid, Senior WordPress Engineer at HostWP: "In my experience, 87% of failed migrations stem from incomplete backups or backups stored only on the old host. I always download backups to at least two locations before touching DNS. South Africa's fibre rollout means some businesses still rely on ADSL, so factor in upload times—a 500MB backup on a 10Mbps line takes 6+ minutes."

Document your current site's configuration: note your WordPress admin URL, any custom code in your theme's functions.php, any security plugins or 2FA settings, and any CDN or caching configurations. This information will be essential when you're configuring your new host. If you're running WooCommerce, also note your payment gateway settings and any custom shipping rules.

Phase 2: Prepare Your New Host

Your new host should be ready before you import anything. If you're moving to HostWP, we handle most of this for you via our free migration service—our team extracts your site, tests it in a staging environment, and only switches your DNS when you give the go-ahead. But if you're doing a manual migration, you'll need to configure your new host's server environment first.

Ensure your new host meets your WordPress minimum requirements: PHP 7.4 or higher (ideally 8.1+), MySQL 5.7 or MariaDB 10.3+, and at least 2GB RAM for a small-to-medium SA business site. HostWP's LiteSpeed servers come with PHP 8.2, Redis for caching, and Cloudflare CDN globally—meaning even during load shedding peaks, your site's static assets serve from edge servers across Africa, Asia, and Europe.

Create a fresh MySQL database and user on your new host. Most hosting control panels (cPanel, Plesk, or custom dashboards) provide a database management section. Assign a strong password—use a password manager or generate a 24+ character random string. Document the exact database name, username, and password; you'll need these when you import your backup.

Upload your WordPress core files to the public_html or www folder on your new host's server. You can do this via SFTP, SSH, or your host's file manager. If you're using a migration plugin like Duplicator, it uploads and installs a PHP script that handles the import automatically—less manual SFTP work required.

Phase 3: Export and Import Your Data

Now you're moving your actual WordPress database and files. The exact process depends on your chosen method, but here's the most reliable manual approach:

  • Export your old site's database: Log into your old host's cPanel or control panel, open phpMyAdmin, select your WordPress database, and use the "Export" button. Choose SQL format and download the file to your local machine.
  • Import into your new host: Log into your new host's phpMyAdmin, select your new (empty) database, and click "Import." Upload the SQL file you just downloaded. The database tables—wp_posts, wp_users, wp_options, and so on—will populate automatically.
  • Upload WordPress files via SFTP: Connect to your new host using an SFTP client (Cyberduck, WinSCP, or Transmit on Mac). Upload your wp-content folder (themes, plugins, uploads) to the new server's public_html directory. Make sure your file permissions are correct: folders should be 755, PHP files 644.
  • Edit wp-config.php: Once files are uploaded, download wp-config.php from your new server, edit the database name, username, and password to match your new host's credentials, and upload it back. This file connects WordPress to your new database.

If you're using Duplicator, the process is simpler: run the plugin on your old site, download the archive and installer script, upload both to your new host, run the installer script in your browser (yoursite.com/installer.php), and Duplicator handles everything—database import, file upload, and configuration updates—automatically.

Migrating manually feels overwhelming? Our free migration service takes the stress out. Ready to improve your WordPress site? Our SA team is here to help.

Get a free WordPress audit →

Phase 4: Update Your Domain and DNS

Once your site is fully set up on the new host, you need to point your domain to it. This is where many South African business owners second-guess themselves, but it's actually straightforward.

First, verify your site works on the new host by visiting it via the server's temporary IP address or domain (your host usually provides a temporary URL like 123-45-67-890.hostwp.co). Log into WordPress, check your homepage, browse a few pages, and ensure your database connection is working. If you see a "Error establishing a database connection" message, your wp-config.php database credentials are wrong—go back and verify them.

Next, log into your domain registrar (GoDaddy, Namecheap, or a local South African registrar like Xneelo). Find the DNS settings section and update your A record to point to your new host's IP address. Your old host will have provided this IP in your welcome email or hosting documentation. This is also where you'll update your nameservers if you're switching entirely to your new host's DNS servers.

DNS propagation takes time—typically 24–48 hours globally, though South African ISPs like Openserve often see updates within 4–6 hours thanks to efficient fibre backhaul. During propagation, some visitors may still reach your old site while others reach the new one. This is normal and not a cause for alarm. You can check propagation status using a tool like whatsmydns.net.

Important: Do not delete anything on your old host until DNS propagation is complete and you've verified your site is fully functional on the new host for at least 48 hours. Keep the old host running as a fallback.

Phase 5: Test and Go Live

Before you declare the migration successful, run a comprehensive test. Open your site in multiple browsers (Chrome, Firefox, Safari), check on mobile devices, and verify every feature:

  • Homepage loads and displays correctly
  • All internal links work (no 404 errors)
  • Images display (check that image URLs updated correctly)
  • Contact forms submit and send emails
  • If you run WooCommerce, test adding products to cart and checkout
  • Plugins load without errors (check the Plugins page in WordPress admin)
  • SSL certificate is active (your browser should show a green padlock)
  • Site speed hasn't degraded (use Google PageSpeed Insights or GTmetrix)

Check your WordPress site health (go to Tools > Site Health in the admin panel). Address any critical errors before going live. Verify your email delivery is working—send a test form submission and confirm the email arrives in your inbox. If you're running a WooCommerce store, test a full purchase flow with a test payment method.

Once everything passes, you can safely delete the old installation—but wait at least 72 hours after DNS propagation completes. Keep old backups archived for 90 days as a safety net.

Timing Your Migration Around Load Shedding

Here's something unique to South African hosting: you should schedule your migration to avoid Eskom's peak load shedding windows. Load shedding typically hits hardest between 08:00–11:00 SAST and 17:00–20:00 SAST on weekdays. During these windows, ISP bandwidth and network stability are unpredictable, which means slower uploads and higher failure risk.

Plan your migration for 14:00–16:00 SAST on a Wednesday or Thursday. These windows offer the best stability and lowest traffic volumes for most SA small businesses. If your site serves international audiences, stagger your testing: migrate during SA office hours but verify functionality with US-based testers on your team during their morning (which is SA evening) to catch any timezone-related issues.

At HostWP, our Johannesburg data centre runs on dedicated UPS and genset backup, so your new hosting environment won't be affected by load shedding. But the ISPs serving your visitors will be, so plan accordingly. If you operate across multiple cities (Johannesburg, Cape Town, Durban), keep in mind that load shedding schedules vary slightly by municipality—use the Eskom load shedding app to find your specific schedule.

Frequently Asked Questions

How long does a WordPress migration actually take?

A straightforward migration—backup, database import, file upload, DNS switch—typically takes 2–4 hours for a small site (under 500MB). Larger sites with custom code or many plugins can take 6–8 hours. At HostWP, our managed migration service completes most transfers within 24 hours. Add 24–48 hours for DNS propagation before your site fully switches globally.

Will my site go down during migration?

Not if you plan correctly. You can set up your new host and test everything while your old site is still live. DNS propagation is gradual—visitors worldwide don't all switch instantly. Your site experiences near-zero downtime if you follow this tutorial. The key is testing thoroughly on the new host before changing DNS.

What if my domain registrar and hosting provider are different?

That's the most common setup. Your registrar (where you bought yoursite.com) and your host are separate. You change DNS at your registrar to point to your new host. This gives you flexibility—you can switch hosts without re-buying your domain. At HostWP, we provide full nameserver details in your welcome email for exactly this reason.

Do I need to re-install WordPress on the new host?

No. You're importing your existing WordPress installation, database, themes, and plugins. There's no fresh install unless you're starting a brand-new site. Your URL structure, posts, pages, and settings all migrate intact.

How do I handle SSL certificates during migration?

Most hosts (including HostWP) provide free Let's Encrypt SSL certificates that auto-renew. Your old SSL doesn't transfer, but your new host issues a fresh one automatically once DNS points to it. Your site may show an SSL warning for a few hours during propagation—this is normal. Once DNS fully propagates, the new certificate takes over and the warning disappears.

Sources

Your WordPress migration is a straightforward process once you understand the phases: backup, new host setup, data transfer, DNS update, and testing. South African business owners benefit from planning migrations around load shedding schedules and working with hosting providers that understand local infrastructure challenges. If you're ready to move to a host built for South Africa, explore HostWP's plans starting at R399/month—we'll handle the migration free and get you running on LiteSpeed + Redis caching within 24 hours. Action for today: Download a backup of your current site right now using UpdraftPlus or Duplicator, and store it in two locations. This single step protects you against any hosting disaster.