Migrating a WordPress Website to a New Hosting Server

Migrating a WordPress Website to a New Hosting Server

Changing a hosting provider is a common decision for many website owners. As a website grows, its needs often change as well. Slow loading times, frequent downtime, limited server resources, or poor technical support are some of the most common reasons that push site owners to move their WordPress website to a new hosting environment. In other cases, the goal might simply be to upgrade to a more reliable or professional server that can better handle traffic and future growth.

When it comes to migrating a WordPress website, many users immediately turn to popular migration plugins. While these plugins can be convenient, they are not always reliable. In practice, plugin-based migrations may fail due to server limitations, file size restrictions, timeout errors, or compatibility issues between different hosting providers. In some cases, the migration process stops halfway through, leaving the website broken or incomplete. This can be especially frustrating for users who want a clean and predictable transfer.

For this reason, a manual WordPress migration is often the safest and most reliable approach. Although it may seem more technical at first, manual migration gives you full control over your website files and database. It does not depend on third-party tools, plugin compatibility, or specific hosting configurations. Most importantly, this method works regardless of whether your old and new hosts use the same control panel, such as cPanel or DirectAdmin.

In this guide, you will learn how to migrate a WordPress website to a new host step by step, without using any plugins. The process is explained in a clear and practical way, making it suitable even for users with basic WordPress experience. By the end of this tutorial, you will be able to transfer your website files, move your database, connect WordPress to the new database, and point your domain to the new host with confidence and without data loss.

Why You Should Migrate WordPress Manually

Migrating a WordPress website may seem simple at first, especially with the wide range of migration plugins available today. However, relying solely on plugins can introduce unexpected risks that are often overlooked. Many migration plugins depend heavily on server configurations, PHP limits, memory usage, and execution time. If the hosting environment does not meet the plugin’s requirements, the migration process may fail, freeze, or result in incomplete data transfer. In some cases, websites appear to migrate successfully but later show broken links, missing media files, or database errors.

Another common issue with plugin-based migration is compatibility between hosting control panels. Different hosting providers use different systems, such as cPanel, DirectAdmin, or custom-built panels. Migration plugins may work well when both the source and destination hosts are similar, but problems often arise when moving between different control panels or server setups. These compatibility issues can lead to corrupted backups, failed restores, or server-level errors that are difficult to diagnose without technical support.

Manual migration avoids these limitations by giving you direct access to your website’s core components: files and database. Instead of relying on automated tools, you handle each step yourself, ensuring that nothing is skipped or altered during the transfer. This approach works consistently across all hosting providers and control panels, regardless of their internal structure or limitations.

In addition to compatibility and reliability, manual migration offers significantly better control. You decide exactly which files are transferred, how the database is handled, and how WordPress connects to the new server. This level of control reduces the risk of hidden issues and makes troubleshooting much easier if something goes wrong. While manual migration requires a bit more attention, it remains the most stable and professional method for moving a WordPress website safely to a new hosting environment.

Before You Start

Before starting the WordPress migration process, it is important to make sure you have everything you need in place. Preparing properly before moving your website will help you avoid common mistakes and reduce the risk of data loss or downtime during the transfer.

First, you need full access to both your old hosting account and your new hosting account. This includes access to the hosting control panel for each server, where you can manage files, databases, and settings. Without access to both control panels, it will not be possible to complete the migration process correctly.

This guide is designed to work with the most widely used hosting control panels, including cPanel and DirectAdmin. It does not matter whether your old host and new host use the same control panel or different ones. The migration method explained in this tutorial works reliably across both environments and does not depend on built-in backup or restore tools provided by the hosting company.

It is also important to understand what this migration process does and does not include. This guide focuses only on transferring WordPress-related data, which means your website files and database. Email accounts, email messages, forwarders, and other non-WordPress data stored on the old server will not be transferred automatically. If you rely on email services provided by your current host, make sure to back up any important emails and recreate the email accounts on the new host after the migration is complete.

Finally, even though this guide follows a safe and proven method, creating a backup before starting is strongly recommended. A complete backup gives you peace of mind and ensures that you can restore your website if anything unexpected happens during the migration. If your hosting provider offers a backup feature, use it, or manually back up your files and database before proceeding.

Taking a few minutes to prepare properly will make the migration process much smoother and help ensure that your WordPress website is transferred safely to its new hosting environment.

Step 1: Access Both Hosting Control Panels

The first step in migrating your WordPress website is to log in to the control panels of both your old hosting account and your new hosting account. Having access to both environments at the same time will make it easier to move files and databases without confusion or mistakes.

Start by logging into your old hosting provider’s client area. From there, navigate to the section where your active hosting services are listed and select the hosting account where your WordPress website is currently hosted. Once inside the service management area, open the hosting control panel. Depending on your provider, this will usually be cPanel or DirectAdmin.

After logging into the old hosting control panel, take a moment to confirm that you are working on the correct account. Check the domain name and the server details to avoid making changes to the wrong website. This small step can prevent serious issues later, especially if you manage multiple hosting accounts.

Next, repeat the same process for your new hosting provider. Log in to the client area, locate the new hosting service, and access its control panel. At this stage, you do not need to configure anything yet. The goal is simply to make sure you can access the file manager and database tools on the new server when needed.

login to cpanel
login to cpanel

It is important to note that the old and new hosting control panels do not need to be the same. Your old host may use cPanel while your new host uses DirectAdmin, or vice versa. The manual migration method used in this guide works equally well across both control panels because it relies on standard tools such as File Manager and phpMyAdmin, which are available in both environments.

As long as you can access the control panel, manage files, and create databases on both hosts, you can continue with the migration process without any compatibility concerns.

Step 2: Download WordPress Files from the Old Host

Now that you have access to both hosting control panels, it is time to start the actual migration process. In this step, you will download all WordPress files from the old host so they can later be uploaded to the new server.

Begin by logging into the control panel of your old hosting account and opening the File Manager. This tool allows you to view and manage all files stored on your server.

File Manager
File Manager

Once inside the File Manager, navigate to the WordPress root directory. In most hosting environments, this directory is called public_html. If your website is installed in a subdomain or a subfolder, open the corresponding directory instead. You should see familiar WordPress files and folders such as wp-content, wp-admin, and wp-includes.

public_html
public_html

Before creating a backup, it is a good practice to clean up unnecessary files. Over time, many websites accumulate old backup archives, temporary files, or unused data that only increase the size of the transfer. Look for outdated ZIP files, SQL backups, or other files that are no longer needed and remove them. This will make the download faster and the migration process more efficient.

Select All
Select All

After cleaning up the directory, select all remaining WordPress files and folders. In most File Manager interfaces, you can do this by clicking the “Select All” option. Once everything is selected, right-click and choose the option to compress the files.

 compress
compress

Set the compression format to ZIP archive and confirm the action. The hosting server will begin compressing all selected files into a single ZIP file. This may take a few moments, depending on the size of your website and the number of files involved.

ZIP archive
ZIP archive

When the compression process is complete, a ZIP file containing your entire WordPress website will appear in the directory. This file represents all of your website’s core files, themes, plugins, and uploads.

Next, download the ZIP file to your local computer. You can do this by right-clicking the file and selecting the “Download” option. For small to medium-sized websites, this method usually works without any issues.

Download
Download

If your website is large and the download speed through the control panel is slow or unstable, you can use an alternative method. Most hosting panels allow you to copy the direct URL of the ZIP file. By using this direct link, you can download the file through a download manager or command-line tools such as wget or curl, which can significantly improve download stability and speed.

Once the download is complete and the ZIP file is safely stored on your computer, you are ready to move on to the next step: uploading these files to the new hosting server.

Step 3: Upload WordPress Files to the New Host

After downloading the ZIP file from the old host, the next step is to upload it to your new hosting server and extract the WordPress files. This step places your website’s file structure in its new environment.

Start by logging into the control panel of your new hosting account and opening the File Manager. Once inside, navigate to the WordPress root directory, which is usually named public_html.

Since this is a new hosting environment, the public_html directory may contain default or placeholder files created by the hosting provider. These files are not needed and may interfere with your website. Select all existing files and folders inside public_html and delete them to ensure the directory is completely empty before uploading your website files.

Next, click on the Upload option in the File Manager and choose the ZIP file you previously downloaded from the old host. The upload process may take a few minutes, depending on the size of your website and your internet connection.

Upload
Upload

Once the upload is complete, refresh the File Manager view to make sure the ZIP file is visible in the public_html directory. Right-click on the ZIP file and select the Extract option. This will unpack all WordPress files and folders into the correct location on the new server.

Extract
Extract

After the extraction process finishes, verify that you can see the WordPress folders such as wp-content, wp-admin, and wp-includes. When everything looks correct, delete the ZIP file to free up server space and keep the directory clean.

At this point, all WordPress files have been successfully transferred to the new host. Depending on the size of your website, this step can take anywhere from a few minutes to longer for large sites. With the files in place, you are now ready to move on to the next step: migrating the database.

Step 4: Export the Database from the Old Host

With the website files safely transferred, the next critical step is exporting the WordPress database from the old hosting server. The database contains all dynamic content, including posts, pages, users, settings, and plugin data. Choosing the correct database at this stage is essential for a successful migration.

Start by identifying which database belongs to your WordPress website. To do this, return to the File Manager on the old host and locate the wp-config.php file inside the WordPress root directory, usually public_html. Right-click the file and open it using the Edit option.

phpmyadmin
phpmyadmin

Inside the wp-config.php file, look for the database configuration section. You will find a line similar to the following:

wp-config.php
wp-config.php

define('DB_NAME', 'your_database_name');

Edit wp-config.php
Edit wp-config.php

The value inside the quotation marks is the exact name of the database used by your WordPress website. Make a note of this name, as you will need it in the next steps.

marks is the exact name of the database used by your WordPress website
marks is the exact name of the database used by your WordPress website

After identifying the correct database, open phpMyAdmin from the hosting control panel. This tool is usually located in the Databases section of cPanel or DirectAdmin.

In phpMyAdmin, you will see a list of databases on the left-hand side. Click on the database name you identified earlier to make sure you are working with the correct one. Once selected, click on the Export tab at the top of the page.

Choose the Custom export method. This option gives you more control over the export process and ensures better compatibility during import on the new host. In the export settings, enable ZIP compression to reduce the file size and make the download faster and more reliable, especially for larger databases.

Finally, click the Export button. phpMyAdmin will generate a compressed database backup and prompt your browser to download the file. Depending on the size of your website, this file may be very small or several hundred megabytes.

Once the download is complete, store the database backup safely on your computer. This file will be imported into the new hosting environment in the next step.

Export via phpMyAdmin

After identifying the correct database on the old hosting server, the next step is to export it safely using phpMyAdmin. This process creates a backup of all your website data, including posts, pages, settings, and user information.

Begin by logging into the control panel of your old hosting account and opening phpMyAdmin. Once inside, select the correct database from the list on the left side. Make sure the selected database matches the name found in your wp-config.php file, as exporting the wrong database will result in an incomplete migration.

click on the Export tab
click on the Export tab

With the database selected, click on the Export tab at the top of the phpMyAdmin interface. When prompted to choose an export method, select the Custom option. This mode gives you better control over the export process and ensures compatibility when importing the database on the new host.

 enable ZIP compression
enable ZIP compression

Scroll down to the output settings section and enable ZIP compression. Compressing the database reduces file size and improves download reliability, especially for medium to large websites. This also helps prevent timeouts during both download and upload.

Once all settings are confirmed, click the export button to generate the database backup. The compressed file will be downloaded directly to your computer. Store this file securely, as it contains all critical data required to restore your WordPress website on the new host.

At this point, the database export is complete and ready to be imported into the new hosting environment in the next step.

Step 5: Create and Import the Database on the New Host

Now that you have exported the database from the old host, the next step is to create a new database on the new hosting server and import the backup file into it. This process prepares the new environment to store and serve your website’s data.

Begin by logging into the control panel of your new hosting account and navigating to the database management section. Most hosting providers offer a setup tool such as MySQL Database Wizard, which guides you through the process step by step.

 MySQL Database Wizard
MySQL Database Wizard

Start by creating a new database and choosing a clear, recognizable name. Next, create a database user and assign a strong password. It is important to use a secure password, as this user will have direct access to your website’s data. Make sure to save the database name, username, and password, as you will need them in the next step.

creating a new database
creating a new database

When prompted, grant full privileges to the database user. Full access ensures that WordPress can create, read, update, and delete data without permission issues. Once this step is completed, the new database will be ready to receive the imported data.

After creating the database, open phpMyAdmin from the control panel. In the list of available databases, select the newly created database. At this point, the database should be empty, with no tables inside it.

Next, click on the Import tab at the top of the phpMyAdmin interface. Use the file selection option to choose the ZIP file containing the database backup that you downloaded from the old host. Once the file is selected, start the import process.

click on the Import tab
click on the Import tab

Wait for phpMyAdmin to complete the import. If the process finishes successfully, you will see a confirmation message and the WordPress tables will appear in the database. This indicates that the database has been imported correctly and is ready to be connected to your website files.

process finishes successfully
process finishes successfully

If you encounter an error during the import, especially with large databases, do not worry. In many cases, this is caused by server limits rather than a problem with the backup file. You can contact your hosting provider’s support team and ask them to import the database backup directly on the server. This is a common request and usually takes only a short time to complete.

Once the database import is successful, you are ready to move on to the next step: updating the WordPress configuration file to connect the website to the new database.

Step 6: Update wp-config.php

After importing the database on the new host, the final technical step is to connect your WordPress files to the new database. This connection is handled through the wp-config.php file, which contains the core database configuration for your website.

Start by logging into the control panel of your new hosting account and opening the File Manager. Navigate to the WordPress root directory, usually public_html, and locate the wp-config.php file. Right-click the file and choose the Edit option to open it.

Update wp-config.php
Update wp-config.php

Inside the wp-config.php file, look for the database configuration section. You will see several lines that define the database connection details. These values currently point to the old database and must be replaced with the new information.

Update the database name so that it matches the name of the database you created on the new host. Next, replace the database username with the new database user. Finally, update the database password with the password you generated when creating the database user.

Take a moment to carefully review the updated values and make sure there are no extra spaces or missing characters. Even a small typo can prevent WordPress from connecting to the database.

Once everything is correct, save the changes to the file and close the editor. At this point, your WordPress files are configured to communicate with the new database.

If all previous steps were completed correctly, your website should now be able to load successfully from the new hosting environment once the domain is pointed to the new server.

Step 7: Update Domain DNS Settings

At this stage, your WordPress files and database are fully set up on the new hosting server. The final step is to connect your domain name to this new environment so visitors can access your website from the new host instead of the old one.

To do this, you need to update your domain’s DNS settings and point them to the nameservers provided by your new hosting company. Nameservers act as a bridge between your domain and the server where your website is hosted. As long as your domain is still using the old nameservers, traffic will continue to reach the previous host.

Start by logging into the account where your domain is registered. This could be a domain registrar or a hosting provider if the domain was purchased there. Inside the domain management section, locate the DNS or Nameserver settings for your domain. Replace the existing nameservers with the new ones provided by your new hosting provider, then save the changes.

Once the nameservers are updated, the changes do not take effect instantly. This delay is known as DNS propagation. During propagation, DNS servers around the world gradually update their records to reflect the new nameserver information. Because this process depends on multiple external systems, the update happens progressively rather than all at once.

In most cases, DNS propagation takes anywhere from a few minutes to several hours. Occasionally, it may take up to 24 hours to fully complete, depending on the domain registrar, DNS providers, and local internet service providers. During this time, some visitors may see the website loading from the old host while others may already be directed to the new one. This behavior is normal and does not indicate a problem with the migration.

While waiting for propagation to finish, it is best to avoid making major changes to your website. Once the DNS update is complete and traffic consistently reaches the new server, your migration process is effectively finished. At that point, your WordPress website will be fully running on the new hosting environment and accessible to visitors worldwide.

Step 8: Verify Website Migration

After updating your domain’s DNS settings, it is important to verify that the website is now loading from the new hosting server. This final check helps ensure that the migration was completed successfully and that visitors are being directed to the correct location.

Start by opening your website in a web browser and checking whether it loads normally. Navigate through a few pages, open posts, and make sure images, menus, and links work as expected. If your website looks and behaves the same as it did before the migration, this is a good initial sign that everything has been transferred correctly.

To confirm that your domain is truly connected to the new host and not still resolving to the old server, you can use an online DNS lookup tool. These tools allow you to check which nameservers or IP address your domain is currently pointing to. Simply enter your domain name and review the results to see whether they match the nameservers provided by your new hosting provider.

Toolsina.com
Toolsina.com

If the nameservers displayed by the tool match your new host, it means the DNS update has propagated successfully and traffic is now reaching the correct server. If they do not match yet, DNS propagation may still be in progress. In that case, wait a little longer and check again later.

Once the website loads correctly and the nameserver information confirms the new host, your WordPress migration is complete. At this point, your site is fully running on the new server and ready to serve visitors without interruption.

Common Migration Issues & Solutions

Even when the migration steps are followed carefully, it is normal to encounter a few issues after moving a WordPress website to a new host. Most of these problems are temporary and can be resolved quickly once their cause is identified. Understanding what to expect makes troubleshooting much easier and helps avoid unnecessary stress.

One of the most common concerns after updating DNS settings is delayed DNS propagation. If the website still loads from the old host or does not load at all, this usually means the DNS update has not fully propagated yet. DNS changes take time to spread across global servers, and during this period, different users may see different results. In most cases, waiting a few hours and checking again resolves the issue without any further action.

Another issue that may appear after migration is a 403 or 404 error. A 403 error typically indicates a permission problem, while a 404 error usually means the server cannot find the requested page. These errors often occur when file permissions or directory settings are not correctly configured on the new host. Hosting environments can differ in how they handle permissions, so even a properly migrated site may require minor adjustments before everything works smoothly.

File permission issues are especially common when moving between different hosting providers. WordPress files and folders must have appropriate access levels for the web server to read and execute them. If permissions are too restrictive or too open, the website may fail to load correctly. In many cases, resetting folder permissions and file permissions through the File Manager or asking the hosting provider to fix them resolves the problem quickly.

Database-related issues can also occur, particularly when working with large websites. If the database import fails or stops midway, it is often due to file size limits or server configuration restrictions in phpMyAdmin. This does not mean the database backup is faulty. In such situations, the easiest solution is to contact the hosting provider’s support team and request a server-level database import. Most providers handle this request routinely and complete it in a short time.

Finally, knowing when to contact hosting support is an important part of a successful migration. If the website does not load after DNS propagation, shows persistent errors, or displays database connection issues despite correct configuration, reaching out to the new host’s support team is the best option. Provide them with a clear explanation of the migration process you followed and the error messages you are seeing. A good hosting provider can quickly identify server-side issues and help you resolve them efficiently.

Migration Summary (Quick Checklist)

If you want a quick overview of the entire WordPress migration process, this section brings all the main steps together in a simple and easy-to-follow summary. It is especially useful if you already understand the details and just want to review the workflow before or during the migration.

The process begins by downloading your WordPress files from the old hosting server. This includes compressing the website files into a single archive and safely storing it on your local system. Once downloaded, the same archive is uploaded to the new host and extracted into the correct directory, ensuring that the full WordPress file structure is transferred without missing any components.

After the files are in place, the database is handled next. The correct database is exported from the old host using phpMyAdmin and then imported into a newly created database on the new server. This step transfers all content, settings, and user data and is essential for the website to function properly.

With both files and database ready, the wp-config.php file is updated on the new host. This ensures that WordPress connects to the new database using the correct credentials. Once the configuration is saved, the website is technically complete and ready to be accessed from the new server.

The next step is changing the domain’s DNS settings to point to the new hosting provider. This update directs visitors to the new server instead of the old one. After allowing enough time for DNS propagation, the final step is to verify that the website loads correctly, that pages and media display properly, and that the domain is fully connected to the new host.

This checklist is meant as a quick reference for reviewing the migration process. For a smooth and error-free transfer, it is always recommended to follow each step in detail and avoid skipping any part of the workflow.

Final Thoughts

Migrating a WordPress website does not have to be complicated or risky. As you have seen throughout this guide, a manual migration approach works reliably across all hosting environments, regardless of the control panel or server configuration. Whether you are moving between similar hosting setups or completely different platforms, the core process remains the same and delivers consistent results.

One of the main advantages of manual migration is that it does not rely on third-party plugins. This removes common limitations related to server restrictions, compatibility issues, and failed automated processes. Instead of depending on tools that may or may not work in every situation, you maintain full control over your website’s files and database from start to finish.

When performed carefully, manual migration is a safe and professional method used by developers and hosting specialists around the world. Each step allows you to verify your progress, identify potential issues early, and ensure that no part of the website is overlooked during the transfer.

If you take the time to follow each step in order and avoid rushing the process, you can move your WordPress website with confidence and without data loss. With this approach, you will be able to migrate your site whenever needed and adapt easily as your hosting requirements evolve in the future. Good luck.! 🙂

Ahura WordPress Theme

The Power to Change Everything

Elementor Page Builder

The most powerful WordPress page builder with 100+ exclusive custom elements.

Incredible Performance

With Ahura’s smart modular loading technology, files load only when they are truly needed.

SEO Optimized for Google

Every line of code is carefully aligned with Google’s algorithms and best practices.

Any questions? Ask here...