WordPress is undeniably the most popular CMS platform for building websites. But as your content expands and your traffic grows, you might hit a ceiling. That starter hosting plan that was perfect for day one? It is likely holding you back now.
Whether you are dealing with slow load times, resource limits, or a lack of support, the solution is the same: you need to move. Migrating your WordPress site to a new host is the single best way to unlock better performance and reliability.
The thought of moving your entire website might feel overwhelming—like moving a physical house—but it doesn’t have to be. In this comprehensive guide, I will walk you through exactly how to migrate your WordPress site to a new host.
I will cover two distinct methods: a manual approach that works for any host (using a real-world example from InfinityFree to Cloudways), and an automated method using a plugin that handles the heavy lifting for you.
Let’s get started!
Reasons for WordPress Migration
You might be wondering if it is worth the effort to migrate your WordPress site to a new hosting provider. The short answer is: yes, especially if your current host is holding you back.
Here are the most common reasons why site owners decide it is time to move:
1. Poor Performance & Speed
Your website may be experiencing slow loading times, frequent downtime, or performance issues that negatively affect user experience. Switching to a provider with better hardware and optimized infrastructure can instantly improve your speed. Struggling with poor performance? Get to know why Cloudways is one of the best high-performance alternatives.
2. Lack of Features
Your current hosting plan may not provide the advanced features or resources you need to grow. For example, you might need more storage space, one-click staging environments, or specific PHP configurations that your current host simply doesn’t support.
3. Better Value for Money
Your current hosting provider may be charging you more than you are willing to pay for the service you receive. Migrating to an affordable managed WordPress host ensures you get the best performance for every dollar spent. You can also compare various hosting alternatives to see the difference.
4. Superior Customer Support
You may be experiencing slow or unhelpful responses from your current provider. When your site breaks, you need immediate help. Migrating allows you to switch to a provider with 24/7 expert support that specializes in WordPress.
5. Reliability & Security
If your site frequently goes offline or you are worried about security vulnerabilities, it is time to move. A secure, managed environment protects your hard work with dedicated firewalls and automated backups.
Check out our detailed WordPress migration checklist before moving your website to a new host.
Painless WordPress Migration & Zero Downtime
Our experts handle your entire migration with:
✓ Free full-site transfers
✓ No broken links or lost data
✓ Post-move optimization included
How to Migrate a WordPress Site to a New Host [2 Methods]
With the why out of the way, let’s get into the how.
I’m going to walk you through the migration process using a live example. I currently have a site hosted on InfinityFree, and I’ll be migrating it to a managed server on Cloudways.
I’m using this setup because InfinityFree’s interface mimics the standard cPanel used by most shared hosting providers. So, even if you use a different host, the steps I’ll show you will look very familiar.
We will look at two distinct methods:
- Manual Method: This is the “universal” approach. It works for any host and gives you full control over your data.
- Automated Method: We’ll use the Cloudways Migrator plugin to handle the heavy lifting automatically.
Before we start moving files, we need to make sure everything is ready.
Prerequisites for WordPress Migration
To successfully migrate your WordPress site to a new host, preparation is key. Before I touch a single file or install any plugin, I always ensure the groundwork is laid. Skipping these steps is usually where migration errors happen.
1. Back Up Your Current Site
This is non-negotiable. Even though we are aiming for a flawless migration, you never want to work without a safety net. You should back up your WordPress files and database on your current host (InfinityFree in my case). This ensures that you can revert to a working version of your site if anything goes wrong during the transfer.
2. Prepare the Destination Server
You need a place to move your site to. Since I am migrating to Cloudways, I need a clean WordPress installation ready to receive the data. I already have a server created on Cloudways so I’ll create a new WordPress application.
This effectively acts as a staging environment—a safe place where we can test the migrated site on a temporary URL before pointing our actual domain name to it. If you don’t have a Cloudways account, you can signup for a 3-day free trial.

3. Gather Your Access Credentials
You will need to connect the two servers, so having your login details handy saves a lot of back-and-forth later. Here is what you need:
- For the Old Host: Have your FTP/SFTP username and password ready.
- For the New Host (Cloudways): Go to your Access Details tab and copy your Public IP, Username, and Password. We will need these for both the manual transfer and the plugin method.
4. Check PHP Version Compatibility
This is a pro tip that saves major headaches. If your old host is running an ancient version of PHP (like 7.4) and your new Cloudways server is on the latest version (like 8.4), your site might crash upon arrival.
Check your current PHP version in your dashboard (under Tools > Site Health) and try to match it on your Cloudways server settings. You can check out our guide on how to update the PHP version of your WordPress site if you need help.
Method 1: Migrate WordPress Manually (The Universal Way)
This is what I call the “universal” method. It works whether you are moving from a standard shared host, a VPS, or even a local development environment.
We are going to move the site in three distinct phases:
- Exporting (packing up the old house)
- Importing (moving boxes into the new house)
- Connecting (turning on the utilities)
Phase 1: Exporting From Your Old Host
First, I need to get my files and database out of the current host. If you are using a standard cPanel host, your interface will look almost identical to the steps below.
Here is my site hosted on Infinityfree by the way. Nothing fancy, just the default Hello World, welcome to WordPress page.

Step 1: Download Your Files (File Manager)
- Log in to your hosting control panel and open the File Manager.

- Navigate to the public folder. On standard hosts, this is usually named public_html. On some free or custom hosts (like the one I’m using here), it might be named htdocs. They are the same thing.
- Open that folder. You should see directories like wp-admin and wp-content, along with individual files like wp-config.php. Select All of these items.
- Select all the files and folders and click on Download.

- I now have my entire website’s file structure sitting on my computer.

Step 2: Export Your Database (phpMyAdmin)
- Your files are the “body” of your site, but the database is the “brain“. It holds your posts, comments, and settings.
- Go back to your control panel and open phpMyAdmin.

- On the left sidebar, click on your database name (it often starts with wp_ or a unique ID like if0_…).
- Click the Export tab in the top menu.
- Keep the Export Method as “Quick“, Format as “SQL” and click Go.

- A .sql file will download to your computer. You now have the two critical pieces needed to rebuild your site anywhere.

Phase 2: Importing to Cloudways
Now, let’s move these assets to our high-performance Cloudways server.
Step 3: Clean the Destination
- When you launched your Cloudways server, it likely installed a default “Hello World” WordPress site. We want to start fresh.

- Open your SFTP client (like FileZilla) and connect to your Cloudways server using the Master Credentials.

- Navigate to /applications/[your_app_name]/public_html/. On Cloudways, you can find your application name in the “Access Details” of you app under “DB Name”

- Delete everything in this folder. We want an empty folder to drop our backup into.
- Note: This will take a lot of time to complete if you’re using FileZilla. Better approach, if you’re on Cloudways, would be to use the SSH terminal.
- I’ll go to Server Management → Master Credentials → Launch SSH Terminal.
- Log in with your Username and Password (you can copy/paste them).
- Type cd applications and hit Enter.
- Type cd [your_app_folder_name] and hit Enter.
- Type cd public_html and hit Enter.

- Make sure you are inside public_html and type this command exactly: rm -rf *. Then run ls command in SSH terminal. If you see nothing, this means the folder is now empty.

Step 4: Upload Your Backup
- Drag and drop your backup-file.zip file and your .sql database file (we downloaded them earlier) from your computer into the now-empty public_html folder on FileZilla.
- Wait for the upload to finish.

Step 5: Extract and Import (The Fast Way)
- You could unzip the files using FileZilla, but that takes ages. Since we are on Cloudways, we can use the SSH Terminal to do it instantly.
- In your Cloudways Platform, go to “Application Settings” and hit the “Reset” button under “Reset File/Folders Permissions“.
- Then, go back to the SSH Terminal.
- Unzip the files: Type unzip backup-file.zip (the name of your file) and hit Enter. You’ll see the file list scroll by as it extracts everything in seconds.

- Import the old database: Right now, your WordPress files are in place, but they aren’t connected to any content because the Cloudways database is empty. We need to take our database.sql file we downloaded earlier from our old host which contains all your posts, comments, and settings and import it into the Cloudways database.
- Run this command (replace the placeholders with the credentials found in your Cloudways Access Details): mysql -u [USERNAME] -p [DATABASE_NAME] < database.sql
- [USERNAME]: Copy the “Username” from the Cloudways Database section.
- [DATABASE_NAME]: Copy the “DB Name” from the Cloudways Database section.
- database.sql: Ensure this matches the exact filename you uploaded.
- In my case, I’ll run this command: mysql -u mzatmbrxqd -p mzatmbrxqd < if0_41071832_wp844.sql
- Enter Password: After you hit Enter, the terminal will ask for a password:.
- Copy the Password from the Cloudways Database section.
- Paste it into the terminal (Note: It will look like nothing is happening/typing. This is a security feature. Just paste and hit Enter).

- Clean Up (Optional): Now that the site is extracted and the database is imported, you don’t need the zip and sql files taking up space anymore. You can delete them: rm backup.zip database.sql
Phase 3: Connecting the Dots
Your files are now on Cloudways, but they are still trying to talk to the old database. We need to introduce them to their new home.
Step 6: Update wp-config.php
- In FileZilla (refresh the folder if needed), find the wp-config.php file.
- Download and open it with notepad.
- Look for these lines near the top:
define( 'DB_NAME', 'old_db_name' ); define( 'DB_USER', 'old_db_user' ); define( 'DB_PASSWORD', 'old_db_password' ); define( 'DB_HOST', 'sql123.infinityfree.com' );
Replace values with your Cloudways Database Name, Username, and Password (copy them from the “Access Details” page in your dashboard). Change “DB_HOST” to “localhost” so the updated code looks like this: define( ‘DB_HOST’, ‘localhost’ );
Save the file and upload it back to the server.
Step 7: Update the Site URL (The “Redirect” Fix)
Even though we moved the files and connected the database, your site’s database still thinks it lives at the old address. If you try to visit your new Cloudways link right now, WordPress will likely redirect you straight back to your old host.
We need to manually tell the database its new address.
- Open the Database Manager: In your Cloudways Access Details page, click the button that says Launch Database Manager.

- Find the Options Table: On the left sidebar, look for the table named wp_options. (Note: In my specific live example, my table prefix changed during the import, so mine is named wpbm_options. Yours will likely just be wp_options).
- Edit the URL Rows: You need to update the first two rows in this table: siteurl and home.
- Row 1 (siteurl): Click Edit next to the row named siteurl. Delete the old URL and paste your Cloudways Application URL.
- Row 2 (home): Click Edit next to the row named home. Delete the old URL and paste that same Cloudways Application URL.
- Important: Make sure there is no slash (/) at the very end of the URL.

- Save Changes: Click Save (or Go) for both rows.
- Now, your database knows exactly where it is, and your site will load on the new server without redirecting.
Phase 4: Verification (Did it work?)
At this point, the heavy lifting is done. But how do you know if it worked?
1. Check the Front End
Go to your Cloudways dashboard and click the Application URL (the temporary cloudwaysapps.com link).
If your site loads and looks exactly like your old site, congratulations, you have successfully moved your files and database to the new server.
Here’s the final result:

2. The Final Proof: Log in to WordPress
Here is the real test. Go to your new login URL (e.g., your-cloudways-url/wp-admin).
Try the Cloudways Credentials: If you try to use the username and password listed in your Cloudways “Access Details” dashboard, they will fail.

Why?
Because we just overwrote the Cloudways database with your old one. The new server now has your old users and passwords.
The Success Indicator: To log in, you must enter the Admin Username and Password from your OLD site.
If those old credentials work and let you into the dashboard, that is the definitive confirmation: Your site has been 100% successfully migrated.
And that is it. As you can see in the GIF below, our WordPress site from old host has been migrated to the new host.

Method 2: Migrate WordPress Automatically (The Easy Way)
If the manual method felt like too much heavy lifting, do not worry. Cloudways offers a dedicated plugin that handles the entire process for you. It essentially packs up your old site, moves it to the new server, and unpacks it without you touching a single line of code.
Here is how to do it in 3 simple steps.
Step 1: Prepare the Destination (Cloudways)
Just like in Method 1, you need a place for your site to live.
- Log in to your Cloudways Platform.
- Launch a new WordPress Application on your server.

- Important: Do NOT delete anything. In the manual method (Method 1), we deleted all the default files to create an empty folder for our backup.
- The Difference: The automated plugin works differently. It needs to “talk” to a live, working WordPress site on the destination server to transfer your data. If you delete the default “Hello World” site on Cloudways, the plugin will have nothing to connect to, and the migration will fail.
- So, leave the default Cloudways site exactly as it is.
- Here’s how my site looks like before migrating:

Step 2: Install the Migrator Plugin on Your Old Host
Go to your current live website (the one you want to move).
- Log in to your WordPress Dashboard.
- Go to Plugins > Add New.
- Search for “Cloudways WordPress Migrator”.

- Install and Activate the plugin.
Step 3: Connect and Migrate
Once activated, you will see a simple form asking for details about your new home.
- Enter your Email Address > Agree to Terms & Conditions > Click MIGRATE button.

After that, you will see a configuration form. Here is how to fill it out exactly:
- Where do you want to migrate your site? Select Cloudways Flexible (this is the standard option for most servers).
- Enter Your Destination Details: Copy these from your Cloudways “Access Details” page:
- Destination Site URL: Copy your “Application URL”. Remove the forward slash at the end.
- SFTP Host/Server Address: Copy your “Public IP”.
- Database Name: Copy “DB Name”.
- SFTP Username & Password:
- Look for the section named “Application Credentials”.
- If the list is empty: You must create a user first by clicking on the “+ Add SFTP User” button. Type a Username (e.g. migration_user) and Password in the boxes and click the “Submit” button.

- Once created, copy that Username and Password into the plugin form.
- HTTP Auth enabled? Select No (unless you specifically password-protected the entire Cloudways site).
- Source site information:
- Any root directories you want to migrate? Select No (unless you have custom non-WordPress folders).
- Migrate additional database tables? Select Yes (this ensures all data, including plugin settings, is moved).
- Is this site password-protected? Select No.
- Click the MIGRATE button.

The plugin will validate your credentials and start moving the files. You do not need to keep the window open.

And success!

Cloudways will also email you as soon as the migration is complete.

Step 4: Verification (Did it work?)
Once you get the “Migration Completed” email, it is time to check the output.
- Check the Site: Click your Cloudways Application URL. It should now look exactly like your old site.

- Test the Login: Go to your new WordPress Dashboard URL.
- Try to log in using your OLD site’s admin username and password.
- If they work, the migration was a success! You have fully replaced the default Cloudways site with your own.

That’s It! The Difference Between the Two Methods
Now that we have walked through both options, the distinction is clear.
- Method 1 (Manual) required us to get our hands dirty. We had to zip files, export the database, use FileZilla, and even edit code in the
wp-config.phpfile to make the connection work. - Method 2 (Automated) handled all of that logic behind the scenes. We didn’t need to touch the database or write a single line of code. The plugin simply packed up the old site and unpacked it perfectly on the new server.
Obviously, Method 2 is the much more convenient option for getting your site up and running quickly.
If you prefer a visual walkthrough, you can also watch this short video guide. It covers how to easily migrate WordPress from any host to Cloudways’ managed cloud servers.
6 Best WordPress Migration Plugins
If you want to migrate your WordPress site to a new hosting provider or domain, using the right plugin can save you hours of frustration. Here are the top WordPress migration plugins, selected for their reliability, frequent updates, and ease of use.
1. Cloudways WordPress Migrator

- Active Installations: 20,000+
- User Rating: 4.2/5 Stars
- Price: Free (Exclusive to Cloudways users)
Overview:
If you are moving to Cloudways, this is the #1 tool for the job. Built in partnership with BlogVault, this plugin is designed specifically to move sites to Cloudways servers without breaking.
Why it’s the best choice:
Unlike general migration plugins that often time out on large sites, the Cloudways Migrator plugin uses intelligent “chunking” to move your data without overloading your old server. It handles the database search-and-replace automatically and requires zero technical configuration. It is the safest bet for moving away from resource-limited hosts.
Learn how long does website migration takes to better understand the risks involved.
Faster Hosting Awaits Your WordPress Site
Typical results after migrating to Cloudways:
• 3X faster load times
• 99.99% uptime
• 24/7 WordPress specialists
2. All-In-One WP Migration and Backup

- Active Installations: 5+ Million
- User Rating: 4.5/5 Stars
- Price: Free (Paid extensions required for larger sites)
Overview:
True to its name, this plugin offers a seamless, one-click experience. You export your site into a single file and drag-and-drop it into the destination. It is incredibly popular because it requires absolutely no technical knowledge.
Why choose it:
It is the king of simplicity. It bypasses upload size limits found in PHP by chunking the data. However, the major downside is that the free version has a strict file size limit (usually 512MB). If your site is bigger than that, you will need to buy the Unlimited Extension.
3. Migration, Backup, Staging – WPvivid Backup & Migration

- Active Installations: 900,000+
- User Rating: 4.9/5 Stars
- Price: Free (Pro version available)
Overview:
WPvivid offers premium-level features for free. It allows you to securely transfer your site automatically from one host to another without manually downloading files.
Why choose it:
It is arguably the best “free” alternative to All-In-One. Unlike other plugins that lock “Auto-Migration” behind a paywall, WPvivid lets you connect your old site and new site via a secret key and transfer everything automatically. It also supports cloud storage (Google Drive, Dropbox) out of the box.
4. Duplicator

- Active Installations: 1+ Million
- User Rating: 4.9/5 Stars
- Price: Free (Pro version available)
Overview:
Duplicator is a favorite among developers. It doesn’t just migrate; it “clones” your site. It packages your entire site into two files (an archive and an installer.php) that you can upload anywhere to deploy your site instantly.
Why choose it:
Duplicator gives you full control. It helps you pull a live site down to a local environment (Localhost) or clone a site to 50 different servers. However, it is slightly more technical than Cloudways Migrator, as you often need to use FTP to upload the installer files manually.
5. UpdraftPlus

- Active Installations: 3+ Million
- User Rating: 4.8/5 Stars
- Price: Free (Migration is a Premium/Paid Feature)
Overview:
You likely already know UpdraftPlus as the world’s most trusted backup plugin. However, with the Premium version (or the Migrator add-on), it becomes a powerful migration tool that “restores” your backup directly onto a remote site.
Why choose it:
It’s a 2-in-1 solution. If you are already paying for UpdraftPlus for backups, you don’t need another plugin. It excels at incremental backups, meaning if a migration fails halfway through, it can often resume without starting over.
6. Migrate Guru

- Active Installations: 200,000+
- User Rating: 4.9/5 Stars
- Price: 100% Free
Overview:
Migrate Guru is unique because it moves your site via its own external servers, not yours. It connects the source and destination and processes the transfer in the cloud.
Why choose it:
It is built for “impossible” migrations. If you are on a very weak shared host (like InfinityFree) that keeps timing out when you try to export a large site, Migrate Guru is the solution. It puts zero load on your server, allowing you to move massive sites (up to 200GB) entirely for free.
Common Migration Issues (and How to Fix Them)
Even with a smooth migration, you might encounter a few hiccups. Here are the most common issues users face when moving from free hosting to Cloudways, and exactly how to solve them.
1. Broken Links and Images
The Problem: Images appear broken or links point to your old InfinityFree URL (e.g., old-site.rf.gd).
The Solution: This happens because the old URLs are “hardcoded” in your database. Use a plugin like Better Search Replace (as shown in our guide) to find your old URL and replace it with your new Cloudways URL.
2. “Error Establishing a Database Connection”
The Problem: Your site shows a white screen with this error message.
The Solution: This means your wp-config.php file has the wrong credentials. Double-check your Database Name, Username, and Password in that file. Also, ensure your Table Prefix (e.g., wp_ or wpbm_) matches your actual database tables.
3. Missing Files or Data
The Problem: Some plugins or uploads are missing after the move.
The Solution: This usually happens if the upload was interrupted. Re-upload your wp-content folder using FileZilla, but this time, watch the “Failed Transfers” tab at the bottom to ensure every file makes it across.
4. 404 Errors on Pages/Posts
The Problem: Your homepage loads fine, but clicking any post gives a 404 Not Found error.
The Solution: Your permalink structure needs to be reset. Go to Settings > Permalinks in your WordPress dashboard and simply click Save Changes (you don’t need to change anything). This refreshes your site’s link structure.
5. Theme or Plugin Conflicts
The Problem: The site loads but looks “weird” or broken.
The Solution: Free hosts often use outdated PHP versions. Your new Cloudways server is much faster and newer. If a plugin breaks, it might be outdated. Try disabling all plugins and re-enabling them one by one to find the culprit.
Do check out our post migration checklist to ensure nothing is missed out.
Summary
Migrating a WordPress site to a new server can be complex, but we have broken down the process into two reliable methods.
In this guide, we covered:
- Method 1 (Manual): A step-by-step approach where we manually transferred files via FTP, exported the database, and updated the
wp-config.phpfile to connect everything properly. - Method 2 (Automated): A streamlined approach using the Cloudways Migrator plugin, which handled the file transfer and database connection automatically.
Regardless of which method you chose, your site is now successfully migrated. With the technical work complete, you can now focus on configuring your new environment and enjoying the performance benefits of managed WordPress hosting.
Q1. What does WordPress migration mean?
WordPress migration refers to the process of moving a WordPress website from one server (hosting provider) to another. It involves transferring two main components: your website files (themes, plugins, uploads) and your database (posts, comments, settings) to ensure the site functions correctly at the new location.
Q2. How much does it cost to migrate a WordPress site?
The cost varies depending on the method. It is free ($0) if you do it yourself using a plugin like Cloudways WordPress Migrator or manually via FTP. If you hire a professional developer or agency, migration services typically range from $100 to $500+ depending on the site’s size and complexity.
Q3. How do I migrate my WordPress site for free?
To migrate for free, the easiest method is using a free migration plugin.
- Install a plugin like Cloudways WordPress Migrator on your old site.
- Enter your new hosting credentials (SFTP/Database).
- Click “Migrate” to let the plugin transfer files and database automatically.
Alternatively, you can manually download your files via FTP and export your database via phpMyAdmin, then upload them to the new host.
Q4. Is All-in-One WP Migration free?
Yes, but with limits. The free version of the All-in-One WP Migration plugin allows you to export and import sites up to a certain size (usually 512MB). If your website is larger than that, you will need to purchase the Unlimited Extension, which costs around $69.
Q5. How do I export an entire WordPress site?
To export an entire site, you cannot just use the default WordPress “Tools > Export” feature (which only exports text content). Instead, you must use a backup/migration plugin like UpdraftPlus or Duplicator to create a full package. For manual export, you must download the public_html folder via an FTP client and export the SQL database file from your hosting control panel.
Q6. How to migrate a WordPress site to another host?
To migrate to another host, follow these general steps:
- Backup: Download your website files and export your database.
- Prepare New Host: Create a new database and empty folder on the new server.
- Upload: Move your files and import the database to the new server.
- Connect: Update the
wp-config.phpfile with the new database credentials. - DNS: Point your domain name to the new host’s IP address.
Q7. Will migrating my WordPress site affect my SEO?
Migration may temporarily affect SEO, especially if your domain name or URL structure changes. However, if you keep the same domain and URLs, the impact is minimal. To protect your rankings, ensure your site speed is optimized on the new host and set up 301 redirects if any URL paths change.
Q8. Do I need to transfer my email accounts separately?
Yes. Website hosting and email hosting are often separate. Moving your WordPress site does not automatically move your email history. You will need to back up your emails and re-configure your email accounts on the new server (or use a dedicated email provider like Rackspace or Google Workspace).
Abdul Rehman
Abdul is a tech-savvy, coffee-fueled, and creatively driven marketer who loves keeping up with the latest software updates and tech gadgets. He's also a skilled technical writer who can explain complex concepts simply for a broad audience. Abdul enjoys sharing his knowledge of the Cloud industry through user manuals, documentation, and blog posts.