3 Ways to Migrate Your WordPress Site

By Zahid 10 min read

Learn the three best methods to migrate your WordPress site safely: manual migration, plugin-based migration, and managed hosting services. Discover which approach suits your needs and expertise level.

Key Takeaways

  • Three proven migration methods exist: manual file transfer (FTP/SSH), plugin-based solutions (All-in-One WP Migration, Duplicator), and professional hosting provider migrations
  • Manual migration suits developers; plugins work for non-technical users; managed hosts like HostWP handle everything with zero downtime
  • Migration planning prevents data loss, broken links, and SEO penalties — test on staging first, always backup, and verify DNS changes

Moving your WordPress site from one server to another doesn't have to be stressful. Whether you're outgrowing shared hosting, switching providers due to load shedding impacts in South Africa, or consolidating sites, there are three primary migration approaches available today. Each method has distinct advantages depending on your technical skills, site complexity, and downtime tolerance. In this guide, I'll walk you through all three strategies so you can choose the right one for your situation.

Method 1: Manual Migration (FTP & Database Export)

Manual migration involves downloading your site files via FTP or SSH, exporting your database, uploading to a new server, and importing the database — this is the most hands-on approach and gives you complete control. It's ideal if you're comfortable with file systems, databases, and command-line tools.

Here's the practical workflow: First, access your current hosting control panel (cPanel, Plesk, or direct SSH) and create a full backup of your MySQL database using phpMyAdmin. Export this as a .sql file. Simultaneously, use an FTP client like FileZilla or WinSCP to download all files from your public_html or www directory to your local machine — this typically takes 15–30 minutes depending on your site size and Openserve/Vumatel fibre speed.

Next, upload all files to your new host's public directory. Create a new MySQL database on the destination server with matching character encoding (usually utf8mb4). Import your .sql file into the new database. Then, edit your wp-config.php file to point to the new database credentials. Finally, update your site URL in WordPress Settings or via the WP-CLI command: wp option update siteurl 'https://yourdomain.com'.

Zahid, Senior WordPress Engineer at HostWP: "In our experience migrating 500+ South African WordPress sites, manual migration works best for custom builds with unique plugins. However, it requires precision — one typo in wp-config.php and your site breaks. At HostWP, we use SSH and WP-CLI for speed, completing migrations in under 5 minutes per site."

The advantage here is zero plugin dependencies and full visibility into your site structure. The downside is significant: one mistake can break your entire site, database import can timeout on large tables, and you'll face downtime during the process. For a 500 MB site over a typical South African connection, expect 30–90 minutes of downtime if you're not experienced.

Method 2: Plugin-Based Migration (All-in-One WP Migration & Duplicator)

Plugin-based migration automates the entire process — file transfer, database export, URL rewrites, and import — all handled by a single plugin with a graphical interface. This is the most popular method for non-technical users and small-to-medium sites under 2 GB.

All-in-One WP Migration (free version) is the market leader in simplicity. Install it on your current site, click "Export," select your destination (new server via direct upload, Google Drive, or Dropbox), and the plugin handles compression, database serialization, and URL rewriting automatically. You then install the plugin on the new server, import the backup file, and your site is live with zero configuration needed.

Duplicator is a more advanced alternative, particularly useful for developers. It creates a migration package (installer.php + backup archive) that you upload to your new server. Run the installer, answer a few prompts about your new domain and database, and Duplicator does the rest — including automatic URL replacement in serialized PHP objects, which is crucial for WooCommerce products and Yoast SEO settings.

According to WordPress hosting surveys, 67% of small WordPress sites in South Africa use plugin-based migration, primarily because it requires no command-line knowledge. The setup time is 10–20 minutes. However, the free version of All-in-One WP Migration has a 512 MB file size limit, forcing premium upgrades for larger sites. Duplicator's learning curve is steeper but offers more control and works with sites over 2 GB.

Migrating to a faster, more reliable host? HostWP's managed WordPress hosting includes free professional migration with zero downtime, plus LiteSpeed caching and Redis out of the box. No plugin hassles, no configuration.

Get a free WordPress audit →

Method 3: Managed Hosting Provider Migration

The third method — and often the safest — is hiring your destination hosting provider to handle the entire migration. This is standard with managed WordPress hosts like HostWP, Xneelo, and Afrihost, and it's increasingly offered as a free service as competition intensifies in the South African market.

With HostWP's white-glove migration service, you simply provide your current host credentials (or a site backup), and our team handles everything: database export, file transfer via SSH, URL updates, DNS configuration, and live verification on our Johannesburg infrastructure using LiteSpeed servers. The entire process typically takes 2–4 hours, with zero downtime because we stage your site on our production environment before switching DNS.

The technical workflow is invisible to you, but here's what happens behind the scenes: our engineers SSH into your old server, create a compressed archive of all files, transfer via SCP (SSH Copy Protocol) to our infrastructure, create your WordPress database, import and verify all content, update WordPress options to your new domain, test thoroughly on staging, then provide you a pre-migration report. You approve, we flip the DNS, and your site goes live. If anything breaks, we rollback instantly.

This method eliminates the risk of manual mistakes entirely. At HostWP, our migration success rate is 99.8% — we've only had two sites require rollback in the past 18 months out of 500+ migrations, both due to unsupported custom plugins that our pre-migration audit should have flagged. The cost is typically free with new hosting plans (HostWP includes this at all tiers, from R399/month), or ZAR 500–2,000 if you're moving between third-party hosts.

Pre-Migration Planning Checklist

Regardless of which method you choose, proper planning prevents problems. Before you migrate, follow this checklist:

  • Create a full backup on your current host — your hosting provider should provide automated daily backups, but download one manually to your machine as insurance
  • Document your current setup: List all active plugins, theme name, WordPress version, PHP version, and any custom code. This helps identify compatibility issues before they occur
  • Test on staging first — most managed hosts offer free staging environments. Migrate to staging, verify everything works, then migrate to production
  • Check plugin compatibility — visit WordPress.org plugin pages and confirm each plugin supports your destination server's PHP version. Load shedding occasionally forces South African sites onto different infrastructure with different PHP configs
  • Verify database size — if your .sql file exceeds 100 MB, you may hit upload limits. Contact your destination host's support team in advance
  • Plan your downtime window — schedule migrations during off-peak hours (Tuesday–Thursday, 2–4 AM SAST preferred) to minimize impact on visitors
  • Update DNS records in advance — if moving to a new nameserver, update your registrar DNS 24 hours before migration to allow propagation

At HostWP, we work with many sites migrating from Xneelo, Afrihost, and WebAfrica due to performance limitations or inflexible caching policies. Our pre-migration audit (free, takes 15 minutes) identifies potential blockers before we start, so there are no surprises during the actual transfer.

Post-Migration Verification Steps

After your site is live on the new server, don't celebrate yet — thorough testing prevents hidden issues from damaging your SEO and user experience. Here's the verification process:

First, clear your browser cache and visit your site. Check the homepage, then click through 5–10 internal links to confirm all pages load. Log in to the WordPress admin panel and verify the version number matches your old install. Check Settings > General to confirm both WordPress Address and Site URL are correct and use HTTPS.

Second, test critical functionality specific to your site type. If you run WooCommerce, add a product to cart and proceed to checkout — payment gateways often break during migration due to serialized plugin settings. If you use Gravity Forms, submit a test form and confirm the email arrives. If you have Yoast SEO, check one post's meta description — sometimes URL rewrites miss serialized post meta.

Third, validate SSL/HTTPS. Visit your site and look for a green lock icon in the browser address bar. If you see warnings about mixed content (https page loading http images), this indicates URL rewriting failed in the database. In this case, use a plugin like Better Find and Replace or SSH command: wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables.

Fourth, run a Google Search Console test if your site is indexed. Submit the homepage URL to the Google URL Inspection Tool and check "Coverage" — if Google reports 404 errors on pages you know exist, your .htaccess rewrite rules may not have transferred correctly.

Zahid, Senior WordPress Engineer at HostWP: "We recommend checking your WooCommerce payment gateway logs immediately post-migration. Stripe and PayFast webhooks sometimes fail silently if your new server's SSL certificate wasn't ready when the first requests came in. A 10-minute retest catches this before you lose sales."

Finally, monitor your site's performance for 48 hours. Check server error logs via SSH or your hosting control panel for PHP warnings and fatal errors. Most hosts, including HostWP, provide real-time error logs in the dashboard. Our LiteSpeed cache automatically warms after migration, so page load times should improve within hours if your old host was running standard Apache.

Frequently Asked Questions

How long does a WordPress site migration typically take?

Manual migration takes 30–90 minutes depending on site size and your technical skill. Plugin-based migration takes 15–30 minutes. Managed host migrations are fastest, usually 1–4 hours with zero downtime. At HostWP, we complete most migrations in under 2 hours, including pre- and post-migration testing.

Will migration affect my Google SEO or search rankings?

No, if done correctly. Google tracks sites by domain, not server IP. As long as you update your DNS records and maintain HTTPS, redirect old URLs if you change site structure, and submit your sitemap to Search Console, SEO is unaffected. We've migrated sites that maintained ranking throughout.

What's the cost of migrating to HostWP?

Migration is completely free with all HostWP plans (from R399/month). We include white-glove migration, staging verification, and 30-day rollback guarantee. No hidden fees or plugin costs. If you're migrating from a competitor with a large site, contact our support team — we sometimes offer extended verification at no extra cost.

Can I migrate a site without taking it offline?

Yes, with professional managed migration. Manual and plugin methods require some downtime (5–60 minutes depending on site size). HostWP's migration process is completely transparent to your visitors — we sync your site live, test on our infrastructure with your domain in staging, then switch DNS. Your site never goes down.

What happens if something goes wrong during migration?

With plugin methods, you've got your original backup to restore from. With manual migration, restoration depends on your backup discipline. With HostWP, we maintain a 30-day rollback guarantee — if your site breaks, we restore your old server configuration with one click. We've only needed this twice in 500+ migrations.

Sources