Roconpaas

Blog

How to Transfer a WordPress Site to a New Host: Complete Guide

May 26, 2026 Written by Maria

WordPress Keeps Logging Me Out

Switching hosts sounds risky. It doesn’t have to be. With the right prep, you can move a WordPress site to a new host without losing data, breaking email, or dropping search rankings.

This guide covers all 3 migration methods, shows you how to test the new site before flipping DNS so visitors never see a broken site, and walks through the post-migration fixes most tutorials skip. Things like email migration, SSL certificate reinstalls, and cache clearing.

Signs It's Time to Move Your WordPress Site

Before you put in 2 to 4 hours of work, check that a new host actually fixes your problem.

Real reasons to migrate:

  • Slow site that won’t speed up: You’ve optimized images, cleaned plugins, added caching, and the site still loads in 4+ seconds. Your server is the bottleneck.
  • Frequent downtime: Your site goes down a few times a month for no good reason. Check status pages and uptime monitors before blaming the host, but if the pattern is clear, switch.
  • Bad support: You opened a ticket 3 days ago and still no useful reply. Hosting support matters more than people realize.
  • Missing features: You need staging environments, automatic backups, SSH access, or specific PHP versions your host doesn’t offer.
  • Security issues: Your host got hacked, or they don’t offer SSL, malware scanning, or basic security tools.
  • Price hikes: Your renewal jumped from $50 to $200 with no new features. Time to shop.
  • Outgrowing the plan: Your traffic doubled and you keep hitting CPU limits or bandwidth caps.

Reasons that aren’t really hosting problems:

  • A single slow page
  • Occasional minor outages
  • Wanting to try something new with no specific complaint

If your reason matches the first list, keep going.

Pre-Migration Checklist

Most failed migrations fail at this step, not during the move itself. Spend 30 to 60 minutes on prep and the rest goes smoothly.

1. Back up Your Entire Site

Non-negotiable. Before anything else, create a complete backup.

Two parts to back up:

  • Files: Everything in your WordPress installation directory. This includes wp-content, wp-config.php, wp-admin, wp-includes, and all core files.
  • Database: Your MySQL database has all your posts, pages, users, comments, and settings.

Use UpdraftPlus for the easiest backup. Install it, click Backup Now, tick both files and database, send the backup to Google Drive or Dropbox.

Or back up manually: download files via FTP (FileZilla), export the database from phpMyAdmin (Export tab > Quick > SQL > Go).

Save the backup to your computer, not just the server. If something goes sideways, you need access independent of any host.

2. Document Your Current Site Setup

The single most overlooked step. Open a text file and record:

  • WordPress version
  • PHP version
  • MySQL or MariaDB version
  • Current permalink structure
  • Active theme name and version
  • All active plugins with version numbers
  • Any custom code in wp-config.php beyond defaults
  • Any custom .htaccess rules
  • Email accounts tied to your hosting
  • API keys or integrations

This file is your reference when configuring the new host. If something breaks after migration, you’ll know what was different.

3. Take Inventory of Your Content

Counts matter for verification after the move.

  • Posts
  • Pages
  • Media files
  • Custom post types
  • User accounts
  • Comments

After migration, you’ll check these against the new site to confirm nothing got dropped.

4. Choose Your New Host

If you haven’t picked one yet, the choices that matter:

  • Managed WordPress hosting: Higher price but server config, security, and updates handled for you. Best for non-technical users or busy site owners.
  • Standard shared hosting: Cheaper, requires more hands-on work, fine for small sites.
  • VPS hosting: Total control, lowest price for the performance, but you handle everything including security.

Sign up before starting the migration. Make sure the new host has WordPress installed and ready, or do the install yourself with their 1-click installer.

5. Gather All Your Credentials

You’ll switch between 6 to 8 different logins during the move. Have them ready:

  • Current host login
  • Current host control panel
  • Current host FTP/SFTP credentials
  • New host login
  • New host control panel
  • New host FTP/SFTP credentials
  • Domain registrar login
  • WordPress admin login

Drop them all in a password manager or secure note. Scrambling for passwords mid-migration is how people make mistakes.

6. Lower Your DNS TTL

This step takes 2 minutes and saves you from hours of mixed visibility issues. Do it 24 to 48 hours before the migration.

Log into your domain registrar. Find DNS settings. Look for the TTL value on your A record.

When you eventually update DNS to point at the new host, the change spreads worldwide in 5 minutes instead of 24 hours. Visitors don’t get stuck on the old server for a day.

You’ll set TTL back to a higher value after the migration completes.

7. Schedule a Low-Traffic Window

Pick a time when your site gets the fewest visitors. For most business sites, this is late night or early Sunday morning. Check Google Analytics for your specific traffic pattern.

If you run an active store or community, post a brief maintenance notice 24 hours ahead. Most users won’t notice a 1-hour window if you pick the right time, but stores need warning.

8. Clean Up Your Current Site

Migration is a chance to lighten the load. Spend 15 minutes:

  • Delete inactive plugins
  • Delete unused themes
  • Run Tools > Site Health and fix anything critical
  • Optimize the database with WP-Optimize, which deletes post revisions, spam, and transients
  • Empty the Trash in Posts, Pages, Media, and Comments

Smaller site means faster migration and fewer things that can break.

3 Ways to Transfer a WordPress Site

Pick your method based on technical comfort and site size.

Method Skill level Time required Cost Best for
Host-assisted migration Beginner 15 to 60 min hands-on Free with many hosts Non-technical users, any site size
Migration plugin Beginner to intermediate 1 to 2 hours Free or $39 to $99 for premium versions Most sites, especially under 1GB
Manual via FTP and phpMyAdmin Intermediate to advanced 2 to 4 hours Free Large sites, complex setups, troubleshooting failed migrations

Method 1 is by far the easiest if your new host offers it. Method 2 covers 80% of self-service migrations. Method 3 is for sites that are too big for plugins or have weird setups.

Method 1: Free Migration From Your New Host

Many managed hosts handle the entire migration for free as part of their hosting plan. Rocon, Kinsta, WP Engine, SiteGround, and several others offer this.

The process is usually:

  1. Sign up for the new hosting plan
  2. Fill out a migration request form with your current host’s FTP credentials and WordPress admin login
  3. Their team handles the rest, usually within 24 to 48 hours
  4. You get a notification when the new site is ready on a temporary URL
  5. Test the new site, then point DNS over

If you’re going with Rocon, this is the simplest path. Their team does it for free, you skip the technical work, and the migration finishes in 1 to 3 business days.

Method 2: Plugin-Based Migration

This is the path most people take. Several plugins handle the export-package-import flow.

Which Migration Plugin Should You Use?

The 4 worth considering:

Duplicator

  • Free version handles most small to medium sites
  • Bundles your whole site into 1 installer file plus 1 archive zip
  • Solid for migrations to any host
  • Pro version ($49/year) for sites over 500MB or with cloud storage support

All-in-One WP Migration

  • Easiest interface of the bunch
  • Free version caps at 256MB upload
  • Extensions to unlock unlimited size cost from $69 one-time
  • Drag-and-drop simple

Migrate Guru

  • Free, no size limits
  • Copies files directly between servers
  • Works well for very large sites
  • Requires FTP/cPanel credentials for both hosts

UpdraftPlus

  • Primarily a backup plugin, but the Migrator add-on handles site moves
  • Worth it if you already use UpdraftPlus for backups

For most users, Duplicator (free) is the right starting point.

Step-by-Step Migration With Duplicator

1. Install Duplicator on your current site: Go to Plugins > Add New, search for Duplicator, install, activate.

2. Build a package: Click Duplicator in your dashboard, then Create New > Next > Build. The plugin scans your site, then bundles everything into 2 files:

  • installer.php
  • An archive zip

Build takes 1 to 10 minutes depending on site size. If it fails, your site is probably too big or your server timed out, switch to Migrate Guru or manual migration.

3. Download both files: to your computer.

4. Create a database on the new host: Log into your new host’s cPanel. Find MySQL Databases. Create a new database, a new user, and assign the user to the database with All Privileges. Note the database name, username, and password.

5. Upload the 2 files to the new host: Use FTP (FileZilla) or the host’s File Manager. Drop installer.php and the archive zip into the new server’s public_html.

6. Run the installer: In a browser, go to yournewdomain.com/installer.php. Duplicator shows a setup:

  • Database name
  • Database user
  • Database password
  • Database host

Click Validate. If everything checks out, click Next. Duplicator unpacks the archive and rebuilds your site. Takes 1 to 5 minutes.

7. Test the new site on the temporary URL: Don’t change DNS yet. Click around. Check pages, posts, images, forms. If anything’s broken, fix it here before visitors see it.

8. Clean up: Once everything works, delete installer.php, the archive zip, and any leftover Duplicator files from the new server. Anyone who finds them can hijack your site.

Method 3: Manual Migration via FTP And phpMyAdmin

The slowest method, but the one you’ll use when plugins fail on huge sites or when you want total control. Takes 2 to 4 hours.

Step 1: Download your site files via FTP

Connect to your current host with FileZilla. Username, password, hostname from your hosting panel.

Navigate to public_html. Select everything, drag it to your local computer. This includes wp-admin, wp-content, wp-includes, wp-config.php, .htaccess, and any other files.

Big sites take a while. A 5GB site can take 30 to 60 minutes over a fast connection.

Step 2: Export your database

In your current host’s cPanel, open phpMyAdmin. Select your WordPress database from the left sidebar. Click Export at the top. Choose Quick > SQL > Go. Save the .sql file.

If your database is very large (over 100MB), use the Custom export option and split it into chunks.

Step 3: Create a database on the new host

Log into the new host’s cPanel. Find MySQL Databases. Create:

  • A new database
  • A new database user
  • Assign the user to the database with All Privileges

Step 4: Upload files to the new host

Connect via FTP to the new host. Upload everything you downloaded in Step 1 to the new server’s public_html folder. Same caveat as before: a big site takes time.

Step 5: Import the database

In the new host’s phpMyAdmin, select your new database. Click Import at the top. Browse to your .sql file. Click Go.

If the file is over 50MB, phpMyAdmin will reject the upload. Solutions:

  • Compress the .sql to a .zip or .gz first
  • Use MySQL command line via SSH if your host allows it
  • Split the SQL into smaller files manually

Step 6: Update wp-config.php

The migrated wp-config.php still has the old database credentials. Edit it on the new server. Find these lines and update:

define('DB_NAME', 'new_database_name');
define('DB_USER', 'new_database_user');
define('DB_PASSWORD', 'new_database_password');
define('DB_HOST', 'localhost');

Save the file.

Step 7: Update site URLs in the database

If your domain changed during the move, WordPress still thinks the old URL is correct. Fix it in the database.

In phpMyAdmin, open your new database, find the wp_options table. Find the rows where option_name is siteurl and home. Update both to the new URL.

For internal links inside posts, install Better Search Replace after the site loads, then run a database-wide search-and-replace of your old URL to the new one.

Test the New Site Before Pointing DNS

This is where pros differ from amateurs. Test thoroughly on the temporary URL or IP your new host provided. Never flip DNS to a broken site.

Use a temporary URL or edit your local hosts file

Your new host probably gave you a temporary URL like yournewsite.rocon.cloud or an IP address. Use that to test.

If they didn’t, edit your local hosts file to preview the new site on your real domain without affecting anyone else:

On Mac/Linux: Edit /etc/hosts (needs sudo)

On Windows: Edit C:\Windows\System32\drivers\etc\hosts (as administrator)

Add a line like:

123.45.67.89  yourdomain.com  www.yourdomain.com

Replace 123.45.67.89 with your new host’s IP. Save. Now your computer treats the new server as if it were the real yourdomain.com. Test everything. When you’re done testing, remove the line.

Pre-launch test checklist

Run through this before flipping DNS:

  • Click every navigation menu link
  • Open 3 to 5 random posts and pages, check formatting
  • Test contact forms (send yourself a test)
  • Add a test product to cart and start checkout (if you have a store)
  • Check images load on mobile and desktop
  • Test the search function
  • Log into WP admin and click through Posts, Pages, Plugins, Settings
  • Run Google PageSpeed Insights on the new URL
  • Check your post and page counts match the inventory from Step 3 of prep
  • Verify plugins all show as active

If anything’s broken, fix it on the staging URL. Repeat until clean.

Update DNS and Point Your Domain to the New Host

Once testing is done, point your domain to the new server.

Option A: Update nameservers

Most hosts give you 2 to 4 nameservers like ns1.yourhost.com and ns2.yourhost.com. In your domain registrar’s panel:

  1. Find DNS or Nameservers settings
  2. Replace the old nameservers with the new ones
  3. Save

This delegates all DNS management to the new host.

Option B: Update individual DNS records

If you want to keep DNS at the registrar (useful if you have email or other services tied to it), update just the A record and CNAME instead:

  1. A record: change the IP to your new host’s IP
  2. CNAME for www: point to your new host’s domain or your root domain

Either option works. Propagation takes 5 minutes (with the lowered TTL from prep) to 48 hours (if you skipped the TTL step).

After DNS propagates, reset the TTL on your A record back to 3600 or 14400 to reduce DNS lookups.

Post-Migration Checklist

The migration isn’t done when the site loads on the new server. Several things still need fixing.

1. Clear every cache layer

Caches will lie to you about whether the migration worked. Clear them in this order:

  • Server-level cache: Ask the new host to flush their server cache, or do it through their dashboard
  • CDN cache: If you use Cloudflare, BunnyCDN, or another CDN, purge it from their dashboard
  • Plugin cache: Deactivate and reactivate caching plugins (WP Rocket, W3 Total Cache, LiteSpeed), or clear their cache from plugin settings
  • Browser cache: Test the site in incognito mode or clear your browser cache

Until all 4 layers are clear, you might see the old site or a half-migrated version.

2. Reinstall or verify SSL certificate

SSL certificates don’t transfer between hosts. Your new host either has its own SSL or you need to install one.

Most modern hosts offer free SSL via Let’s Encrypt. In your new host’s panel, find SSL/TLS settings, enable Let’s Encrypt or install your existing certificate.

After SSL is active, update WordPress URLs at Settings > General. Change both WordPress Address (URL) and Site Address (URL) from http:// to https:// if they aren’t already.

3. Fix mixed content warnings

If some images, CSS, or scripts still load over http://, your site shows a “Not Secure” warning even with SSL active. This is called mixed content.

Install Really Simple SSL (free plugin). It auto-fixes most mixed content issues. Activate it, run the SSL detection, click “Activate SSL.”

For stubborn cases, run Better Search Replace on your database. Search for http://yourdomain.com, replace with https://yourdomain.com.

4. Resubmit your sitemap to Google Search Console

Log into Google Search Console. Go to Sitemaps. Submit your sitemap URL (usually yourdomain.com/sitemap.xml or /sitemap_index.xml if you use Yoast or RankMath).

If your domain didn’t change, Google reindexes the site automatically over a few weeks. If the domain changed, file a Change of Address in Search Console.

5. Check Search Engine Visibility setting

The #1 reason migrated sites vanish from Google: someone left this checkbox ticked.

Go to Settings > Reading. Look at “Search engine visibility.” Make sure “Discourage search engines from indexing this site” is UNCHECKED.

6. Cancel the old hosting (after a wait)

Don’t cancel the old host immediately. Wait 7 to 14 days. Reasons:

  • DNS may still be propagating to a small percentage of users
  • You might find issues on the new site that need fixing
  • You need the old site as a fallback if something goes catastrophically wrong

After 2 weeks of the new site running clean, cancel the old plan.

What About Email Migration for Your Domain?

Email hosting is separate from web hosting in most setups. Migrating your site doesn’t migrate your email.

If your email was at the old host (like you@yourdomain.com through cPanel email):

  1. Set up email accounts at the new host (or with Google Workspace, Microsoft 365, Zoho, etc.)
  2. Export emails from the old host (download via IMAP using Thunderbird or similar)
  3. Import emails into the new host’s mailbox (drag and drop in IMAP-connected mail client)
  4. Update DNS MX records to point to the new email server

If you don’t migrate email properly, incoming emails to your domain will bounce within 24 hours of DNS propagation. Sort this out before flipping DNS.

If your email was already with Google Workspace or Microsoft 365, no migration needed. Just confirm the MX records stay correct after the DNS change.

Common WordPress Migration Problems

Things break. Here’s what to do for the most common issues.

“Error establishing a database connection”

The site won’t even load. WordPress can’t talk to MySQL.

Cause: Wrong database credentials in wp-config.php.

Fix: Open wp-config.php via FTP. Verify DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST match exactly what you set in the new host’s MySQL Databases panel. Typos are 90% of cases. DB_HOST is usually localhost, but some hosts use specific values like mysql.yourhost.com. Check their docs.

Images and CSS don’t load (mixed content)

The page loads but looks broken. Images missing, no styling.

Cause: URLs in the database still point to the old domain or http:// when the site is now https://.

Fix: Install Really Simple SSL. If that doesn’t fix it, install Better Search Replace, search for the old URL or http://yourdomain.com, replace with the new URL or https://yourdomain.com. Run on wp_options and wp_posts tables.

500 Internal Server Error

The site shows a generic error page.

Cause: Usually a corrupted .htaccess file, a plugin incompatibility, or wrong file permissions.

Fix:

  1. Rename .htaccess to .htaccess.old via FTP. Load the site. If it works, log into WP admin and go to Settings > Permalinks > Save (this regenerates .htaccess).
  2. If still broken, rename the plugins folder to disable all plugins. Reload the site. If it works, re-enable plugins one by one to find the broken one.
  3. Check file permissions: folders 755, files 644.

White screen of death

The site loads as a blank white page.

Cause: A PHP error, usually from a plugin or theme.

Fix: Enable WP_DEBUG in wp-config.php by changing define('WP_DEBUG', false); to true. Reload the site to see the error message. The error tells you which plugin or theme caused it. Disable that plugin via FTP (rename its folder in wp-content/plugins).

Admin login redirects in a loop

You log in, get sent back to the login page, repeat forever.

Cause: Mismatched site URLs in the database vs. wp-config.php.

Fix: In phpMyAdmin, open wp_options. Update siteurl and home rows to match your actual current URL exactly (including http vs https, trailing slash or not, www vs non-www). Clear cookies in your browser and try again.

Plugins not working on new host

Some plugins worked on the old host, broken on the new one.

Cause: Different PHP version, missing PHP extensions, or different memory limits.

Fix: Check the new host’s PHP version (should match or be newer than the old host’s). Check error logs in cPanel for specific missing extensions. Some plugins need extensions like imagick, mod_rewrite, or specific cURL versions. Ask your new host to enable what’s missing.

Email stopped working after migration

Customers say they’re not getting your emails. Or you’re not getting theirs.

Cause: MX records didn’t update, or email accounts weren’t migrated to the new host.

Fix: See the “What about email” section above. The fix depends on whether email is at your host or with a third party like Google Workspace.

Slow performance despite better hosting

New host should be faster, but the site feels the same.

Cause: Cache not configured, plugin bloat, or the new host’s caching isn’t enabled.

Fix:

  1. Set up a caching plugin (WP Rocket, W3 Total Cache, or your host’s built-in caching)
  2. Confirm CDN is enabled and pointing at the new server
  3. Run Query Monitor to find slow plugins
  4. Check the new host’s PHP version is 8.0+, not 7.4 or older

How Long Does It Take to Transfer a WordPress Site?

Realistic times by site size:

  • Small site (under 500MB, no store, under 50 posts): 1 to 2 hours
  • Medium site (500MB to 2GB, 50 to 500 posts): 2 to 4 hours
  • Large site (2GB to 10GB, store, lots of media): 4 to 8 hours
  • Very large site (10GB+): 1 to 2 days, often needs manual migration

Add 24 hours for DNS propagation if you didn’t lower TTL beforehand. If you used a free migration service, allow 1 to 3 business days from request to completion.

Conclusion

Moving a WordPress site to new server doesn’t have to be scary. You can relocate your site with little downtime if you plan ahead, make backups, and follow the steps one at a time.

You have two options:

  • Manually migrate for complete control.
  • For ease of use, use a plugin.
  • Use your host’s migration service to make things easier.

Always test extensively and have backups ready, no matter which method you use. A site migration can make your website faster, safer, and more reliable if you do it right. This will help your online presence grow stronger than ever.

Transfer WordPress Site to New Host FAQs

How do I transfer my WordPress site to a new host without downtime?

Lower your DNS TTL to 300 seconds 24 hours before the move. Migrate the site to the new host. Test on a temporary URL. Once everything works, update DNS. With TTL at 300 seconds, the change propagates worldwide in 5 minutes, not 24 hours. Your visitors never see a broken or unavailable site.

Will I lose any data when I migrate WordPress?

Not if you back up first and follow the process correctly. Data loss usually comes from skipping the backup or running the migration directly on the live site without testing first. Back up, migrate, test, then point DNS. Done in that order, you keep everything.

Do I need to migrate my email separately?

Yes, in most cases. Web hosting and email hosting are usually different services even when you bought them together. If your email lives at your old host’s cPanel, you need to set up new mailboxes at the new host, export old emails via IMAP, import them at the new host, and update MX records. If your email is with Google Workspace, Microsoft 365, or Zoho, no migration needed for the email itself, just keep the MX records correct after the DNS change.

Can I migrate a WordPress site without admin access?

Only with FTP and database access. You can grab the wp-content folder via FTP and export the database via phpMyAdmin, then rebuild a fresh WordPress install on the new host using those files. Without FTP or database access either, you can’t migrate the site, you’d have to rebuild it.

How much does it cost to transfer a WordPress site?

Free if you do it yourself. Free if your new host offers migration services as part of their plan (Rocon, Kinsta, WP Engine all do this). $50 to $300 if you hire a freelancer or migration service. The biggest cost is usually your time, not money.

What’s the best WordPress migration plugin?

Duplicator (free) for most sites. All-in-One WP Migration for the easiest interface (free version has size limits). Migrate Guru (free) for very large sites where Duplicator times out. UpdraftPlus if you already use it for backups. Each works, the right pick depends on your site’s size and your comfort level.

Can I reverse a WordPress migration if something breaks?

Yes, that’s what the pre-migration backup is for. If the new site has problems you can’t fix, restore the backup to the old host (the old site files and database are still there until you cancel), and you’re back to the original. Don’t cancel the old host until the new one runs clean for at least a week.

Will migrating my WordPress site hurt my SEO?

Only if you change URLs or skip the SSL setup. If your domain stays the same and URLs don’t change, Google barely notices the move. If your domain changes, set up 301 redirects from old URLs to new ones and file a Change of Address in Google Search Console. Done right, you keep most of your rankings.

How do I know when DNS has fully propagated?

Use a tool like whatsmydns.net. Paste your domain, check the A record across global locations. When most or all locations show the new server’s IP, propagation is complete. Usually 5 minutes with low TTL, up to 48 hours without.

Do I need to reinstall my SSL certificate after migration?

Yes. SSL certificates are tied to the server, not the site. Your new host either provides free SSL via Let’s Encrypt (most do) or you’ll install a fresh certificate. Set this up before pointing DNS so visitors don’t hit “Not Secure” warnings.

Maria

Maria is a Content Writer with 7+ years of experience creating content for WordPress, web hosting, and digital marketing. She specializes in taking technical topics and turning them into clear, practical guides that non-technical readers can actually follow. Her work covers everything from beginner WordPress tutorials to hosting comparisons and site optimization tips. She focuses on writing that answers real questions without unnecessary complexity, which is harder to do well than it sounds.

Start the conversation.

    Leave a Reply

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

    Recommended articles

    WordPress

    Why Managed Kubernetes is Future of WordPress Hosting

    Ankit