Your support helps keep this blog running! Secure payments via Paypal and Stripe.
Migrating a WordPress site to a new host or domain doesn’t have to be a headache. Using the right plugin, the process can be smooth and efficient—as long as you follow the modern best practices. In this guide, we’ll walk you through a plugin-based migration step by step, highlight limitations you should know, and provide a post-migration checklist to ensure you don’t lose SEO, links, or functionality.
Backup is a MUST
Create a full site backup, including the database. You can use WP Migrate Lite, UpdraftPlus: WP Backup & Migration Plugin, or other methods. The UpdraftPlus free version can back up and restore a single site. For Multisite, you need to buy the UpdraftPlus premium version. The backup file created from the UpdraftPlus free version can not be used to restore the WP multisite. The WP Migrate Lite can create a full backup for the WP Multisite. It can also export the entire multisite network. Plus, it can run find and replace URLs across the entire multisite network.
Why You Might Migrate Your WordPress Site
There are several common reasons for moving your WordPress site:
- Switching to a faster or more reliable host
- Rebranding or changing domains
- Fixing server issues or upgrading PHP
- Consolidating multiple websites
Before doing anything, always back up your full site files and database — and plan for possible downtime or DNS propagation delays.
3 Primary Methods for Migrating a WordPress Site
- Manually migrating the WordPress site to a new hosting provider.
- Migrating the WordPress site to a new hosting provider using a plugin (e.g., the Duplicator Plugin).
- Utilizing a web hosting service that offers FREE migration performed by WordPress experts. (Check the three recommended web hosting providers below.)
WordPress lets you change almost everything you need. Because of these many customization options, your WordPress site can become complex. This complexity can cause problems when you try to move it to a new web host.
Some WordPress sites are Multisite (running many sites under one install), and some are single sites. Sometimes, migration plugins, even the paid versions, cannot move a Multisite correctly. In some cases, the new web host might not be able to move your site smoothly to their servers.
That is why I wrote about three different methods for moving your WordPress site. All these methods come from my own experience and should be helpful for you.
Method 1: Moving Your WordPress Site Manually
With this method, you are in charge of every step. This approach works for both single sites and Multisite installations.
- Database Migration: You will manually change the database settings and then import the database file to your new hosting account.
- File Migration: You will also manually move all your WordPress files to the new hosting.
Tip: If you also need to migrate GUIDs (unique identifiers), you can use the WP Migrate Lite plugin. This plugin helps move only the database (for both single and Multisite) by giving you a migration SQL file. You still have to manually import this file into the new host’s database and manually move all your WordPress files.
Method 2: Moving Your WordPress Site with a Plugin
I use two main plugins for this:
- Duplicator Plugin: This plugin creates a complete installation package for you. You use this package to set up your site on the new host.
Important: You must first create a new database and database login on your new host before finishing the Duplicator installation. (See how to use the free version of the Duplicator plugin) - WP Migrate Pro: You will export the full site and import the backup file to the new host.
- All-in-One WP Migration Plugin: I will talk more about this plugin later in this post.
Method 3: Asking Your Web Host to Move the Site
You should always check if your new web host offers a migration service. Most web hosts I’ve seen offer some version of migration to bring your site to their platform. If you have many websites to move, they might ask you to prepare a cPanel backup file from your old hosting provider for them.
Moving a WordPress site with the All-in-One WP Migration Plugin (Free version)
With the All-in-One WP Migration plugin, you can use the plugin to export the database and all WordPress files from your current hosting and import the migration file to a fresh WordPress installation at the new hosting.
Maximum Upload Filesize Limitation
The plugin itself won’t cause problems, but your web hosting package might have limitations. One potential issue when importing the migration file is the maximum upload file size limit set by your new host. I will address this common problem, though I can’t guarantee a solution will work for every hosting package, as configurations vary between providers.
Now let’s do it.
On your current website:
- First, install the All-in-One WP Migration plugin and activate it
- At the WordPress admin, you will see the “All-in-One WP Migration” menu. Open its menu and choose Export
- At the Export Site page, choose FILE from the EXPORT TO dropdown
- Wait until the process is done
- Download the migration file. The migration file is the database and all WordPress files except WordPress code files. Meaning, it includes themes, plugins, and media files. In other words, the migration file includes the wp-content folder only.
At your new hosting:
- Install fresh WordPress
- Install the All-in-One WP Migration plugin and activate it
- At the WordPress admin, you will see the “All-in-One WP Migration” menu. Open its menu and choose Import
- Drag the migration file you had earlier to import the area
- Wait until the import is done
- Follow the instructions on the screen, which basically you need to save the permalink twice. Saving the permalink without changes just flushes all URLs in WordPress and makes sure all URLs are still working after import.
- That’s it.
Deal with Maximum Upload Filesize
If you are at the stage where you drag the migration file to the import area and it fails because the migration file is bigger than the maximum upload filesize that WordPress allows.

On the import site page, you will see the instructions for increasing the maximum upload file size for WordPress. You can follow along or continue reading.
Update .htaccess file
This file is VERY important. You must back up the .htaccess file before changing anything in the file. Once you have your .htaccess backup file, you can continue to change the values or add the new PHP settings below into the .htaccess file.
For example, your migration file is 500MB, you will need to increase the upload maximum filesize from 128MB to 600MB. Also, you must change the post maximum size value to be the same as the upload maximum filesize.

You may need to increase the maximum execution time and max input time if your internet is slow.
Once you upload the .htaccess file, go back to the import site page and refresh the page to see if the Maximum Upload file size has changed to your number or not. If not, it means your hosting won’t allow you to change the PHP settings via the .htaccess file. Then you will need to use the .htaccess backup file to replace it.
But after reloading the import site page, the site breaks, which means you added something wrong in the .htaccess file, just use the .htaccess backup file to replace it. Then try to change or add PHP settings again.
Backup
Back up the .htaccess file before making any changes.
Changing the PHP Settings at cPanel
If updating the .htaccess file is not possible, then your hosting may have other options.
Log in to cPanel at your new hosting and look for MultiPHP INI Editor. You can change PHP settings from there. Once you finish the changes, go back to the import site page and refresh the page. The maximum upload file size should be changed now.
Changing the PHP Settings via php.ini
Some web hosting allows you to change the PHP settings via php.ini. You will find this file at the webroot (htdoc or public_html). If you don’t have one, create the php.ini file (it is a configuration file type) and transfer the file to your host at the webroot of your site. In the php.ini, you will add the code below. Make sure you change the number to meet your needs.

Changing the PHP Settings via .user.ini
If the php.ini doesn’t work, you may try to use the .user.ini file instead. You will find this file at the webroot. If you don’t see one, just create one and add the PHP settings below to it.

If none of the methods above work, you need to contact your host provider for support. Or you may try the alternative methods below.
- Moving a WordPress site to new hosting manually
- Moving a WordPress site to new hosting with the Duplicator plugin
An issue I found with using the All-in-One WP Migration plugin in 2021
** Update in 2025, I don’t see the extension file for download anymore. I assume the issue was fixed.
This is the only issue I have experience with. One time, I was importing the migration file to the new hosting via a fresh WordPress installation. At some point, the process stopped at 100% and it doesn’t show the imported successfully page to me.
Later, I found the solution on the All-in-One WP Migration site (Extension file). Download the extension plugin (Under the Basic title and click on the Download button) and then upload that plugin zip file to the Plugins page and activate it. Next, try to import the migration file again. You can not download from the All-in-One WP migration site; you can download from the link below.
Please complete the form. Upon successful submission, the file download will begin automatically. Please allow a few seconds for the submission to complete.
Conclusion
Because every WordPress site is different—from simple single sites to complex Multisite networks—no single migration method works perfectly for everyone. I hope this guide helps you choose the right approach for your site and makes your next move much less stressful.
Your support helps keep this blog running! Secure payments via Paypal and Stripe.




