Table Of Contents
Introduction
Moving your WordPress website from one hosting provider to another might sound intimidating at first. Many website owners worry about losing their content, breaking their site, or causing long periods of downtime. However, with the right approach and a clear set of steps, migrating a WordPress site is a task that almost anyone can accomplish – even if you have limited technical experience.
There are many reasons why you might want to move your WordPress site to a new host. Perhaps your current host is slow, expensive, or offers poor customer support. Maybe you have outgrown your current plan and need more resources. Whatever the reason, the process of migration follows a consistent set of steps that, when followed carefully, will result in a smooth transfer with zero data loss.
In this guide, we will walk you through every single step of the process. From creating a full backup of your existing site to configuring DNS settings on your new host, you will find everything you need right here. We cover three different methods – using a migration plugin, doing it manually, and using cPanel tools – so you can choose the approach that best fits your comfort level and situation.
What Does It Mean to Move a WordPress Site?
When you move a WordPress site to a new host, you are essentially making an exact copy of your entire website and placing it on a different server. A WordPress website has two main components that must both be transferred:
- The WordPress files: These include the WordPress core files, your theme files, plugin files, and uploaded media such as images and videos. They are stored in a folder on your server.
- The WordPress database: This is where all your posts, pages, comments, settings, and user accounts are stored. It is a MySQL database that holds the content and configuration of your site.
Both of these components must be moved together. If you only move the files without the database, your site will appear broken. If you only move the database without the files, nothing will display properly. A successful migration means both parts are transferred and configured to work together on the new server.
Before You Begin: Important Preparations
Preparation is the most important part of any migration. Rushing into the process without laying the groundwork first is how data gets lost and websites go down for hours. Take the time to complete these preparatory steps before you touch anything.
1. Choose Your New Hosting Provider Carefully
Before migrating, make sure the new hosting provider is set up and ready. Sign up for your new hosting plan, log in to the control panel, and become familiar with its interface. Popular hosting providers like SiteGround, Hostinger, Bluehost, and WP Engine all offer slightly different control panels, but most use either cPanel or a custom dashboard.
Make sure your new host supports PHP 8.0 or higher and MySQL 5.7 or higher. These are the current requirements for modern WordPress installations. Most reputable hosts already meet these requirements, but it is worth checking.
2. Create a Complete Backup of Your Existing Site
This step cannot be stressed enough. Always create a full backup before you begin any migration. Even if the migration goes perfectly, having a backup gives you a safety net. If something goes wrong halfway through the process, you can restore your site to its previous state without losing any data.
To create a backup, you can use:
- UpdraftPlus: One of the most popular free WordPress backup plugins. It allows you to save your backup to cloud storage like Dropbox or Google Drive.
- Duplicator: A migration-focused plugin that creates a packaged archive of your site, perfect for moving to a new host.
- cPanel Backup: If your current host uses cPanel, you can generate a full backup from the Backup Wizard section.
- Your Host’s Backup Tool: Many hosting providers offer automated backup services. Check your control panel for this option.
3. Keep Your Current Site Live During Migration
Do not shut down your old site or change any DNS settings until you have fully verified that the new site is working correctly. The migration process should be done in a way that keeps your old site running normally while you set up and test the new one. This ensures zero downtime for your visitors.
4. Note Down Important Information
Before you start, collect and write down the following details, as you will need them during the migration:
- Your current FTP/SFTP login credentials (hostname, username, password)
- Your current database name, username, password, and host
- Your new host’s FTP/SFTP login credentials
- Your domain registrar login details (for updating DNS records later)
Method 1: Migrate Using a WordPress Plugin (Easiest Method)
For most beginners, using a dedicated WordPress migration plugin is the safest and simplest approach. These plugins handle much of the technical complexity for you, including packaging your files and database, uploading them to the new server, and configuring the installation. We will walk through the process using the Duplicator plugin, which is one of the most widely used free migration tools available.
Step 1: Install the Duplicator Plugin on Your Old Site
Log in to the WordPress dashboard of your current (old) website. Go to Plugins > Add New and search for “Duplicator.” Install and activate the plugin. Once activated, you will see a new menu item called Duplicator in your WordPress admin sidebar.
Step 2: Create a New Package (Archive)
Inside the Duplicator menu, click on Packages, then click the Create New button at the top right. Give your package a name that is easy to identify, such as the date of the migration. Leave all other settings at their defaults for a standard migration and click Next.
Duplicator will now scan your site for any potential issues. If everything passes the check (shown in green), click the Build button to create your migration package. This process may take a few minutes depending on the size of your site.
Step 3: Download the Installer and Archive Files
Once the build is complete, you will see two download buttons: one for the Installer file (installer.php) and one for the Archive file (a .zip file). Download both of these files to your computer. The archive contains your entire website – all files and the database. The installer is a script that will automatically set up your site on the new host.
Step 4: Create a Database on Your New Host
Log in to your new hosting account. In cPanel or your host’s dashboard, find the MySQL Databases section. Create a new database, a new database user, and assign that user to the database with all privileges. Write down these credentials – you will need them during the installation step.
Step 5: Upload Files to Your New Host
Using an FTP client (such as FileZilla) or your host’s File Manager in cPanel, navigate to the root folder of your website on the new server. This is typically the public_html folder. Upload both the archive .zip file and the installer.php file to this folder.
Step 6: Run the Duplicator Installer
Now, open a web browser and go to the installer URL on your new server. Since your domain is not yet pointing to the new host, you will need to access it using the temporary URL provided by your hosting company, or by editing your local hosts file. The URL will be something like: http://yourdomain.com/installer.php
The Duplicator installer will guide you through several steps. First, it will ask you to confirm the archive file. Then it will ask for your new database credentials (the database name, username, and password you created in Step 4). Enter these details carefully – incorrect database credentials are the number one cause of failed migrations. Click the Run Deployment button to begin the installation.
Step 7: Test Your Site on the New Host
After the installer finishes, you will be presented with a login button. Click it to log in to your WordPress dashboard on the new server. Browse your website thoroughly – check posts, pages, images, contact forms, and any plugins. Make sure everything looks and functions the same as on your old site before you change any DNS settings.
Method 2: Migrate Manually (Most Control)
The manual migration method gives you the most control over every aspect of the process. It takes a bit more time and requires some familiarity with FTP clients and phpMyAdmin, but it is a valuable skill to have and does not rely on any third-party plugins. This method works for any WordPress site regardless of its size.
Step 1: Export Your WordPress Database
Log in to your current hosting account and open phpMyAdmin. You can usually find it in cPanel under the Databases section. Once phpMyAdmin opens, look in the left sidebar and click on the database associated with your WordPress site.
Click on the Export tab at the top of the page. Choose the Quick export method and make sure the format is set to SQL. Click the Go button to download the database as a .sql file. This file contains all your posts, pages, settings, user data, comments, and every piece of content your website holds.
Step 2: Download All WordPress Files via FTP
Open your FTP client (FileZilla is free and easy to use). Connect to your current host using your FTP credentials. Navigate to the root of your WordPress installation – this is usually the public_html folder. Select all files and folders and download them to a folder on your computer.
This download may take some time if your site has a large amount of media content such as photos and videos. Be patient and let the download complete fully before moving on. Do not interrupt the transfer midway, as this can result in corrupt or incomplete files.
Step 3: Create a New Database on Your New Host
Log in to your new hosting control panel and navigate to the MySQL Databases section. Create a new database with a name you will remember. Then create a new database user and assign a strong password. Finally, add the user to the database and grant it all privileges. Note down the database name, username, and password.
Step 4: Import the Database to Your New Host
Open phpMyAdmin on your new hosting account. Click on the new database you just created in the left panel. Then click the Import tab. Click the Choose File button and select the .sql file you exported from your old host. Leave all other settings as defaults and click Go.
Once the import is complete, you should see all the WordPress tables in the left panel of phpMyAdmin, including tables like wp_posts, wp_users, wp_options, and others. This confirms that your database has been successfully transferred.
Step 5: Upload WordPress Files to New Host
Using your FTP client, connect to your new hosting account. Navigate to the public_html folder (or whichever is the root folder for your domain). Upload all the WordPress files you downloaded from your old host. This upload will also take some time – again, let it complete fully without interrupting.
Step 6: Update the wp-config.php File
The wp-config.php file is a critical configuration file that tells WordPress how to connect to its database. Because your new database has a different name, username, and password, you must update this file to reflect those changes.
Using your FTP client or File Manager, open the wp-config.php file in a text editor. Find the following lines and update them with your new database credentials:
define( ‘DB_NAME’, ‘your_new_database_name’ );
define( ‘DB_USER’, ‘your_new_database_user’ );
define( ‘DB_PASSWORD’, ‘your_new_database_password’ );
define( ‘DB_HOST’, ‘localhost’ );
Save the file and upload it back to the server, replacing the old version. In most cases, the DB_HOST value remains as localhost, but some hosting providers use a different value. Check with your new host if you are unsure.
Step 7: Test Your Website Using a Temporary URL or Hosts File
Before changing your DNS settings, you should verify that the site works correctly on the new server. Most hosting providers give you a temporary URL to preview your site. Alternatively, you can edit your computer’s local hosts file to point your domain to the new server’s IP address, which lets only your computer see the new version of the site while everyone else still sees the old one.
Test every page, post, and feature carefully. Check that images load, forms submit, and that the admin dashboard functions normally. If everything looks good, you are ready to point your domain to the new host.
Method 3: Using cPanel’s Transfer Feature or Your Host’s Migration Service
Many premium hosting providers now offer free website migration as part of their onboarding service. This is arguably the easiest method of all, as it involves the hosting company’s own technical team doing the heavy lifting for you.
Here is how to take advantage of this option:
- Sign up for a new hosting plan that explicitly offers free WordPress migration in their support documentation.
- Submit a migration request through your new host’s support chat or ticket system. You will typically need to provide your old hosting credentials, FTP access, and your domain name.
- The host’s team will migrate your site within 24 to 48 hours. They will notify you when the migration is complete.
- Review the migrated site, and once satisfied, update your DNS settings to point to the new server.
Some hosts, such as SiteGround and Kinsta, also offer proprietary migration tools or plugins you can use without needing their support team. These tools are typically very polished and walk you through the process with simple on-screen instructions.
How to Update Your DNS Settings After Migration
Once you have verified that your website works perfectly on the new host, it is time to redirect your domain name to the new server. This is done by updating the DNS (Domain Name System) records at your domain registrar.
Log in to the website where you registered your domain name. This might be GoDaddy, Namecheap, Google Domains, or another registrar. Find the DNS settings or Name Servers section for your domain.
Option A: Update the Nameservers
The simplest approach is to replace your old nameservers with the nameservers provided by your new host. Your new host will provide two nameservers in the format ns1.yourhostname.com and ns2.yourhostname.com. Replace the existing nameservers with these new ones and save the changes.
Option B: Update the A Record Only
If you want to keep your domain’s DNS managed at its current registrar (for email or other DNS records), you can just update the A record. Find the A record for your root domain (@ or yourdomain.com) and change the IP address to the IP address of your new hosting server. Your new host will provide this IP address in your account dashboard.
Understanding DNS Propagation
After updating your DNS, be aware that DNS propagation can take anywhere from a few minutes to 48 hours. During this period, some visitors may see your old site and others may see your new site, depending on their location and internet service provider.
This is perfectly normal. Do not make any changes to either site during this window. Once propagation is complete, all visitors worldwide will be directed to your new hosting server. You can check the propagation status using free tools like WhatsMyDNS.net or DNSChecker.org.
Post-Migration Checklist: What to Do After Moving Your Site
The migration is complete, your DNS has propagated, and your site is now live on the new host. But your work is not finished yet. There are several important things to verify and configure after a migration to ensure your site runs smoothly going forward.
Check Your Site Thoroughly
Go through your website systematically and test the following:
- All pages and blog posts load correctly and display the right content
- All images and media files are displaying properly
- Contact forms and any other forms are submitting and sending emails
- Plugins are all active and functioning as expected
- The site admin area is accessible and all settings are intact
- WooCommerce products and checkout (if applicable) work correctly
- Navigation menus and internal links work without errors
Verify Your SSL Certificate
Check that your site still loads with HTTPS (the padlock icon in the browser). If your SSL certificate is not working on the new host, you may need to install a new one. Most reputable hosts offer free SSL certificates through Let’s Encrypt. This can usually be done with a single click in your hosting control panel.
Check and Update Permalinks
Sometimes after a migration, permalink structures can break, leading to 404 errors on individual posts and pages. To fix this, go to your WordPress dashboard, navigate to Settings > Permalinks, and simply click the Save Changes button without modifying anything. This refreshes the .htaccess rewrite rules and usually resolves any permalink issues.
Update Google Analytics and Search Console
If you changed hosting providers but not your domain name, you should not need to update much in Google Search Console. However, it is good practice to submit your sitemap again to ensure Google crawls the new server. Log in to Google Search Console, navigate to the Sitemaps section, and resubmit your sitemap URL.
Set Up a Backup System on the New Host
Now that you are on the new host, do not forget to set up automated backups. Install a backup plugin like UpdraftPlus and configure it to automatically back up your site daily or weekly, storing the backups in a cloud location like Google Drive or Amazon S3. Regular backups are your most important safety measure against data loss.
Cancel Your Old Hosting Plan (After Transition Period)
Do not rush to cancel your old hosting plan immediately. Wait at least 2 to 4 weeks after the migration is complete before cancelling. This gives you a buffer period during which you can restore from the old host if any unexpected issues arise on the new host. Once you are completely satisfied that everything is working correctly, you can safely cancel the old plan.
Common Problems During WordPress Migration and How to Fix Them
Even with the best preparation, migrations occasionally run into issues. Here are the most common problems users encounter and the solutions for each.
Problem 1: Error Establishing a Database Connection
This is the most common migration error and it almost always means the database credentials in your wp-config.php file are incorrect. Double-check the database name, username, and password. Also verify that the database user has been properly assigned to the database with full privileges. Some hosts use a specific host value other than localhost – check with your new host if the standard settings do not work.
Problem 2: 404 Errors on Posts and Pages
If your homepage loads but clicking on posts and pages gives a 404 error, the problem is almost certainly with your .htaccess file or permalink settings. Go to Settings > Permalinks in your WordPress dashboard and click Save Changes. If the issue persists, check that mod_rewrite is enabled on your server, which is required for WordPress permalinks to work.
Problem 3: Mixed Content Warnings (SSL Issues)
If your site shows a broken padlock or mixed content warnings in the browser, it usually means some resources on your site are being loaded over HTTP instead of HTTPS. This can happen when the WordPress Address URL and Site URL are not set to HTTPS in Settings > General. Additionally, you may need to use a plugin like Really Simple SSL or run a search-and-replace on your database to update all internal URLs from HTTP to HTTPS.
Problem 4: Missing Images After Migration
Missing images after a migration usually mean that the wp-content/uploads folder was not fully transferred. Check this folder on the new server using your FTP client and compare it to the old server. If files are missing, re-upload the uploads folder from your local backup. For very large sites, using a compression tool to zip the uploads folder before transferring can help speed up the process.
Problem 5: Plugins Not Working Properly
Some plugins store server-specific data or license activations that may not transfer properly. After migration, deactivate all plugins and reactivate them one at a time to identify any that are causing issues. For premium plugins, you may need to deactivate the license on the old site and reactivate it on the new one. Contact the plugin developer’s support team if you encounter activation issues.
Problem 6: White Screen of Death
A completely white screen with no error message is known in WordPress circles as the White Screen of Death (WSOD). This is usually caused by a PHP error, a plugin conflict, or a theme incompatibility. To diagnose the issue, enable WordPress debug mode by adding define(‘WP_DEBUG’, true) to your wp-config.php file. This will display the actual error message causing the problem. Common fixes include increasing the PHP memory limit or disabling conflicting plugins.
Tips to Ensure a Smooth Migration with Zero Data Loss
Having migrated thousands of WordPress sites collectively, experienced developers have identified a set of best practices that significantly reduce the chances of problems during migration. Here are the most important tips to follow.
- Put your site in maintenance mode before starting: Use a maintenance mode plugin to temporarily show a friendly message to visitors while you migrate. This prevents new content (like comments) from being added to the old site after you have taken your backup, which would be lost during migration.
- Lower the TTL on your DNS before migration day: If you know a migration is coming, log in to your domain registrar a day or two before and reduce the TTL (Time To Live) value on your DNS records to a low value like 300 seconds (5 minutes). This means that when you update the DNS records, the changes will propagate much faster across the internet.
- Migrate during low-traffic hours: Schedule your migration for a time when your site receives the least traffic, such as late at night or early in the morning in your visitors’ primary time zone.
- Use SFTP instead of FTP: SFTP (Secure File Transfer Protocol) is encrypted and more reliable than standard FTP. If your host supports it, always use SFTP for transferring files.
- Do not change URLs unless necessary: Changing your domain name at the same time as migrating hosts doubles the complexity and the chances of something going wrong. If you must change your domain, do it as a separate step after the migration is complete.
- Document every step you take: Keep a written log of every action you perform during the migration. If something goes wrong, this log will help you backtrack and identify exactly where the issue occurred.
Comparing Migration Methods: Which One Should You Use?
With three different migration methods available, you might be wondering which one is right for you. The answer depends on your technical skill level, the size of your site, and the resources available to you.
If you are a beginner with little to no technical experience, using a plugin like Duplicator or All-in-One WP Migration is absolutely the best choice. These tools are designed for non-technical users and handle all the complex steps automatically. The risk of errors is low and the process is straightforward.
If your new hosting provider offers a free migration service, take advantage of it. There is no simpler method than having professionals do it for you. This is particularly valuable if your site is large or complex.
If you are an intermediate or advanced user who wants full control and does not want to rely on third-party plugins, the manual method is the most transparent and educational approach. It is especially useful when you need to troubleshoot specific issues or when the site is too large for a plugin to handle efficiently.
Conclusion
Moving a WordPress site to a new host is one of those tasks that sounds more complicated than it actually is. With a clear plan, a complete backup, and the right tools, you can migrate your entire website without losing a single piece of data. Whether you choose a migration plugin, the manual approach, or a host-assisted migration, the key is to be methodical and patient.
Always back up before you begin. Always test on the new host before updating DNS. Always verify your site thoroughly before cancelling the old hosting plan. Follow these three golden rules and your migration will be a success.
Migrating your WordPress site is an opportunity to start fresh on a better, faster, more reliable host that supports your goals. Once you have done it once and seen how straightforward the process can be, you will have the confidence to handle any future migrations with ease. Good luck, and enjoy your new hosting environment!
