To migrate your WordPress site to a new host without any downtime:
- Back Up Your Site
- Install and use the Duplicator plugin to create a complete backup of your site’s files and database.
- Set Up New Hosting
- Choose a reliable hosting provider that meets your site’s needs.
- Create a new database and get the necessary credentials.
- Upload Site Files
- Use FTP or the new host’s file manager to upload the backup files to the server.
- Run Duplicator Installer
- Access the installer and follow the steps to deploy your site on the new host.
- Enter the new database details and update the site URL if needed.
- Test the New Site
- Check for broken links, missing files, and test site features and performance.
- Update DNS Settings
- Log in to your domain registrar and replace the old DNS records with the new ones.
- This will point your domain to the new hosting server.
- Final Checks and Cleanup
- Verify the new site is accessible and functioning correctly.
- Test performance, disable caching plugins, and close the old hosting account.
By following these steps, you can migrate your WordPress site seamlessly without any downtime, ensuring a smooth transition to the new host.
Related video from YouTube
What You Need
To migrate your WordPress site to a new host without downtime, you’ll need the following tools:
Duplicator Plugin
The Duplicator plugin allows you to create a complete backup of your site, including files and databases. This backup can then be transferred to a new host.
FTP Client
An FTP client, like FileZilla, is required for uploading your site files to the new host.
Text Editor
A text editor, such as Notepad++ or Sublime Text, is necessary for editing your site’s configuration files.
Site Backup
Before migrating, ensure you have a complete backup of your current WordPress site. This prevents data loss during the migration process.
Staging Site (Optional)
Creating a staging site on the new host is recommended for testing purposes. This allows you to test your site before updating the DNS settings and making it live.
| Tool | Purpose |
|---|---|
| Duplicator Plugin | Create a complete site backup |
| FTP Client | Upload site files to new host |
| Text Editor | Edit site configuration files |
| Site Backup | Prevent data loss during migration |
| Staging Site | Test site on new host before going live |
1. Set Up New Hosting
To move your WordPress site to a new host without downtime, you’ll need to set up a new hosting account. This step is crucial for a smooth migration.
Choose a Reliable Host
Pick a hosting provider that meets your site’s needs. Consider factors like uptime, speed, security, and customer support. Make sure they offer a hosting plan compatible with WordPress.
Create a New Database
Once you’ve chosen a host, create a new database for your WordPress site. You’ll need to get the following details:
- Database name
- Username
- Password
- Host
Keep these credentials handy, as you’ll need them later in the migration process.
Set Up a Staging Site (Optional)
If you want to test your site on the new host before going live, create a staging site. This allows you to identify and fix any issues before updating the DNS settings.
2. Back Up Site with Duplicator
To move your WordPress site without downtime, you need a full backup. The Duplicator plugin can create this backup.
Install Duplicator
First, install and activate the Duplicator plugin on your current WordPress site:
- Go to the WordPress dashboard
- Click "Plugins" > "Add New"
- Search for "Duplicator"
- Install and activate the plugin
Create a Backup
Next, create a new backup using Duplicator:
- Go to "Duplicator" > "Packages"
- Click "Create New"
- Give your backup a name
- Click "Next"
Duplicator will scan your site and create a package with all your files and database.
Download Backup Files
Once the package is ready, download these files from Duplicator:
- Installer file
- Archive file
| Backup Files | Purpose |
|---|---|
| Installer | Restore site on new host |
| Archive | Contains site files and database |
Keep these files safe, as you’ll need them to migrate your site.
3. Upload Site Files to New Host
To move your WordPress site files to the new hosting server, you can use an FTP client or your new host’s file manager.
Using FTP Client
1. Connect to your new hosting server using an FTP client like FileZilla. You’ll need the FTP hostname, username, and password from your new host.
2. Navigate to the public_html or www directory on the server. This is usually the root directory for your website files.
3. Upload the installer.php file and the archive.zip (or .gz) file containing your site backup to this directory.
Using File Manager
1. Log into your new hosting account’s control panel (cPanel, Plesk, etc.).
2. Find the File Manager tool and go to the public_html or www directory.
3. Use the upload function to transfer the installer.php and archive.zip files to this directory.
Once the files are uploaded, you’ll be ready to run the installer and restore your site on the new server. Ensure the files were transferred completely before proceeding.
| File | Purpose |
|---|---|
| installer.php | Restore site on new host |
| archive.zip (or .gz) | Contains site files and database |
4. Update Hosts File (Optional)
The hosts file maps domain names to IP addresses on your computer. Updating it can help you access the new site during migration without affecting the live site.
Why Update the Hosts File?
By pointing your domain to the new server’s IP address, you can test and verify the new site before updating the DNS settings. This allows you to migrate without downtime.
Update Hosts File on Windows
- Open Notepad as an administrator.
- Go to
C:\Windows\System32\drivers\etcand open thehostsfile. - Add the new server’s IP address and your domain name, separated by a space. For example:
108.51.252.675 www.example.com - Save the file and close Notepad.
Update Hosts File on macOS
- Open the Terminal app.
- Type
sudo nano /private/etc/hostsand press Enter. - Add the new server’s IP address and your domain name, separated by a space. For example:
108.51.252.675 www.example.com - Press
Ctrl+X, thenYto save changes.
Important: After migration, remove the hosts file entry to avoid conflicts with your live site.
sbb-itb-77ae9a4
5. Run Duplicator Installer
With the Duplicator package uploaded to your new host, it’s time to run the installer. This will deploy your WordPress site on the new server.
Access the Installer
Open your web browser and go to http://yourdomain.com/installer.php, replacing yourdomain.com with your actual domain name. This will open the Duplicator installation wizard.
Follow the Steps
Follow the on-screen instructions to set up your site on the new host:
- Enter your new database details (name, username, password) when prompted. Test the connection to ensure it works.
- If changing your domain or hosting setup, update the site URL accordingly.
- Click Run Deployment to start the installation process.
This may take a few minutes, depending on your site’s size.
Review and Finalize
After deployment completes, review the installation summary. If everything looks correct, your site is now on the new host.
If you encounter issues, refer to the Duplicator documentation or contact your hosting provider’s support.
6. Test New Site
Now that your WordPress site is on the new host, it’s important to check that everything is working properly. This step ensures your site is ready for visitors.
Check for Broken Links and Missing Files
Go through your site’s pages, posts, and content. Look for any broken links or missing media files. You can use tools like Broken Link Checker or Dead Link Checker to find and fix broken links.
Test Site Features
Create a test post or page to make sure your site’s features are working as expected. This includes things like commenting, contact forms, and other interactive parts.
Review Site Performance
Use tools like GTmetrix, Pingdom, or Google PageSpeed Insights to check your site’s performance. This will help you identify any issues or areas for improvement.
By thoroughly testing your site, you can ensure a smooth transition to the new host and prevent any potential problems from affecting your users.
| Testing Area | Tools |
|---|---|
| Broken Links | Broken Link Checker, Dead Link Checker |
| Site Features | Create test posts/pages, try interactive features |
| Performance | GTmetrix, Pingdom, Google PageSpeed Insights |
7. Update DNS Settings
After successfully moving your WordPress site to the new host, you need to update your domain’s DNS settings. This ensures your website is accessible to visitors using your domain name.
Why Update DNS?
If you don’t update DNS, your domain will still point to your old hosting server. Users won’t be able to access your newly transferred website, leading to downtime and lost traffic.
How to Update DNS
To update DNS, get the new server’s DNS information from your hosting company. Then, log in to your domain registrar account and replace your old DNS records with the new ones:
- Log in to your domain registrar account
- Access the DNS settings (often under "Advanced" or "DNS & Nameservers")
- Edit your DNS records (replace old records with new ones)
- Update the DNS settings with the new host’s nameservers
Here are some examples:
| Domain Registrar | Steps |
|---|---|
| Domain.com | 1. Log in, 2. Access DNS & Nameservers, 3. Edit DNS Records |
| GoDaddy | 1. Log in, 2. Select DNS, 3. Update Records |
| Hostinger | 1. Log in, 2. Open DNS Zone Editor, 3. Edit and Save Records |
DNS Propagation
After updating DNS, it may take up to 48 hours for the changes to propagate globally. During this time, your website may be inaccessible to some users. Check for updates periodically to minimize downtime.
8. Final Checks and Cleanup
With the DNS changes propagated, it’s crucial to verify your new site is accessible and functioning correctly.
Check Front and Back Ends
Visit your website to ensure the front end loads smoothly, and all pages, posts, and content display properly. Log into the back end to confirm plugins are activated with the right settings, and other users can access the dashboard.
Test Performance and Functionality
Use tools like GTmetrix to check page load times and overall performance. Test forms, comments, and other interactive elements to ensure they work as expected.
Disable Caching, Firewall, and Redirect Plugins
Temporarily disable any caching, firewall, and redirect plugins. This prevents issues during the migration process, ensuring your site isn’t cached incorrectly and search engines can crawl your pages.
Close Old Hosting Account
Once everything checks out, you can close the old hosting account or transfer the domain to the new host. This prevents further charges and completes the transition.
| Step | Purpose |
|---|---|
| Check Front and Back Ends | Verify site accessibility and functionality |
| Test Performance and Functionality | Ensure optimal performance and user experience |
| Disable Plugins | Prevent caching and crawling issues |
| Close Old Hosting Account | Complete the migration process |
Migrating Your WordPress Site Without Downtime
Moving your WordPress site to a new hosting provider without any downtime is crucial. Downtime can disrupt the user experience, harm search engine rankings, and lead to lost revenue. Even brief outages can be costly, so avoiding downtime is essential for maintaining your online presence, revenue stream, and customer trust.
To migrate your WordPress site seamlessly, with zero downtime, follow these steps:
1. Set Up New Hosting
Choose a reliable hosting provider that meets your site’s needs, such as uptime, speed, security, and customer support. Create a new database and get the necessary credentials (database name, username, password, host). You can also set up a staging site to test your site before going live.
2. Back Up Site with Duplicator
Install and activate the Duplicator plugin on your current WordPress site. Create a new backup using Duplicator, which will generate an installer file and an archive file containing your site’s files and database. Download these files for the migration.
3. Upload Site Files to New Host
Use an FTP client or your new host’s file manager to upload the installer.php file and the archive.zip (or .gz) file to the public_html or www directory on the new server.
4. Update Hosts File (Optional)
Updating your computer’s hosts file can help you access the new site during migration without affecting the live site. Add the new server’s IP address and your domain name to the hosts file, allowing you to test the new site before updating the DNS settings.
5. Run Duplicator Installer
Access the Duplicator installer by visiting http://yourdomain.com/installer.php in your browser. Follow the on-screen instructions to set up your site on the new host, including entering your new database details and updating the site URL if necessary.
6. Test New Site
Check for broken links, missing files, and test site features and performance using tools like Broken Link Checker, GTmetrix, and Google PageSpeed Insights. Ensure everything is working correctly before going live.
7. Update DNS Settings
Log in to your domain registrar account and replace your old DNS records with the new ones provided by your new hosting company. This will point your domain to the new hosting server. Note that DNS changes may take up to 48 hours to propagate globally.
8. Final Checks and Cleanup
Once the DNS changes have propagated, verify your new site is accessible and functioning correctly on the front and back ends. Test performance and functionality, disable caching and firewall plugins temporarily, and close your old hosting account.
| Step | Purpose |
|---|---|
| Set Up New Hosting | Choose a new host and create a new database |
| Back Up Site with Duplicator | Create a complete backup of your WordPress site |
| Upload Site Files to New Host | Transfer backup files to the new server |
| Update Hosts File (Optional) | Access the new site during migration without affecting the live site |
| Run Duplicator Installer | Deploy your WordPress site on the new server |
| Test New Site | Check for issues and ensure everything is working correctly |
| Update DNS Settings | Point your domain to the new hosting server |
| Final Checks and Cleanup | Verify the new site, test performance, and close the old hosting account |
FAQs
How do I move my WordPress site to a new host?
To move your WordPress site to a new host:
- Choose a new hosting provider that meets your site’s needs.
- Back up your site files and database using a plugin like Duplicator.
- Create a new database on the new host.
- Upload your site files to the new host using FTP or the file manager.
- Update your site’s DNS settings to point to the new host.
Can I transfer a free WordPress site?
Yes, you can transfer a free WordPress site to another hosting provider.
Can I move my WordPress site to a different host?
Yes, you can move your WordPress site to a different host. Follow these steps:
- Back up your site files and database.
- Create a new database on the new host.
- Upload your site files to the new host.
- Update your DNS settings to point to the new host.
You can use a plugin like Duplicator to simplify the process.
| Step | Purpose |
|---|---|
| 1. Choose New Host | Find a hosting provider that meets your needs |
| 2. Back Up Site | Create a backup of your site files and database |
| 3. Create New Database | Set up a new database on the new host |
| 4. Upload Site Files | Transfer your site files to the new host |
| 5. Update DNS Settings | Point your domain to the new hosting server |
Related posts
- How to backup WordPress site
- WordPress Migration Checklist: Pre-Migration Planning
- WordPress Migration SEO Checklist 2024
- Test WordPress Plugins Safely: Staging Site Setup Guide
Server and host preparation before you migrate
Zero downtime depends on the destination being ready before the first file moves. Match the environment first, then stage, then touch DNS last. The biggest avoidable failures come from a new host running a different PHP or database version than the one your site was built and tested against.
Match PHP and database versions
Confirm the PHP version on both hosts and make them match before cutover. Aim for PHP 8.3 or higher, which is supported through the end of 2027. PHP 8.2 reaches end of life on 31 December 2026, and 8.1 is already out of security support, so avoid landing on either as a permanent target. Check the running version on each side over SSH with php -v, or in the WordPress dashboard under Tools > Site Health > Info. If you need to confirm a host before you have dashboard access, upload a temporary file containing <?php phpinfo(); ?>, load it in the browser, then delete it immediately.
Do the same for the database. Target MySQL 8.0 or newer (8.4 LTS is the safer long-term choice, as 8.0 reaches end of life in April 2026), or MariaDB 10.6+ with 10.11 or 11.4 LTS preferred. Check with mysql -V over SSH or through phpMyAdmin. Keep the collation consistent on both sides — utf8mb4_general_ci is the standard — so exported tables import cleanly without character corruption.
Set correct file permissions
After files land on the new host, normalise permissions. Directories should be 755 and files 644. You can apply both in two passes from the site root over SSH:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
Tightening wp-config.php to 600 keeps your database credentials readable only by the file owner, which matters most on shared hosting.
Stand up a password-protected staging copy
Restore the migrated site to a staging location on the new host first — a subdomain such as staging.example.com or a separate directory — so you can verify everything before any visitor or search engine sees it. Set WP_DEBUG to true in wp-config.php on staging to surface PHP errors that are hidden in production. The Health Check & Troubleshooting plugin helps isolate plugin or theme conflicts during this verification pass.
Lock staging behind HTTP Basic Authentication so it cannot be crawled or indexed. Create a credentials file and reference it from the staging .htaccess:
htpasswd -c /home/youruser/.htpasswd staging
# in the staging directory .htaccess:
AuthType Basic
AuthName "Staging"
AuthUserFile /home/youruser/.htpasswd
Require valid-user
Add a noindex directive as a second safeguard so the staging URL never enters search results even if the password is removed temporarily.
Lower DNS TTL ahead of cutover
The single most effective zero-downtime move is reducing your DNS TTL before you change records. Lower the TTL on the relevant A and CNAME records to between 60 and 300 seconds, and do it 48 to 72 hours ahead of the migration so the old, longer TTL has fully expired from resolvers by cutover time. With a short TTL in place, the eventual switch propagates in minutes rather than the 4 to 48 hours a default TTL can take, which keeps the window where some users hit the old host and some hit the new one as small as possible.
Pre-migration planning checklist
Planning is where downtime is actually prevented. Walk this checklist before you schedule the move.
Take a full, verified backup
- Back up everything: all website files, the database, and configuration. A full backup captures files, database, and configs together; an incremental backup only covers changes since the last one, so start from a full.
- Pull files and database manually with an FTP client such as FileZilla, or use a plugin like Jetpack or BlogVault. BackupBuddy and VaultPress are options when you need custom code included in the archive.
- Store the backup somewhere off the server — external storage or a cloud service — not only on the host you are about to leave.
- Confirm the backup restores before you rely on it. An untested backup is an assumption, not a safety net.
Inventory plugins and themes
Review installed plugins and themes and remove anything unused, outdated, or causing compatibility issues before the move — migrating less means fewer things that can break. Record the active plugin and theme list with versions so you have a known-good baseline to compare against if something behaves differently on the new host.
Handle ecommerce and membership sites with extra care
Stores and membership sites carry live, changing data, so plan around it. Make sure your export covers customer names, addresses, and contact details; order dates, amounts, and statuses; product names, descriptions, and prices; payment methods and transaction history; and subscription plans with their customer subscriptions. Because orders and sign-ups can land mid-migration, schedule the move during your lowest-traffic window and freeze or pause new transactions during the cutover so nothing is written to the old database after you have exported it.
Protect sensitive data in transit
- Transfer data over HTTPS or SFTP, never plain FTP, and encrypt sensitive data both in transit and at rest.
- Limit access to customer data to authorised personnel only during the migration.
- Use a reputable migration plugin or an experienced person to move customer data rather than improvising.
- Keep a complete backup of the existing site, including customer data, before touching anything.
Plan the maintenance window
Pick the window where the impact is smallest. Check your analytics for the genuine low-traffic period — for many sites this is overnight in the primary audience’s timezone — and estimate the work realistically: database export and import, file transfer, and a verification pass on staging. With the lowered TTL already in place and a verified staging copy ready, the only visitor-facing moment is the brief DNS switch, so the practical downtime can be kept to minutes rather than hours.

