Move Your WordPress Site to a New Host Without Downtime
Guide content
I want to be honest with you about something. The first time I helped someone move a WordPress site to a new host, we did it the wrong way. We moved the files, imported the database, and then just pointed the DNS. The site broke, the client panicked, and we spent three hours fixing serialized data issues that a five-minute preparation step would have prevented. The migration itself was not hard. The skipped steps were the problem.
That story is far more common than you would think. Common migration pitfalls include not lowering DNS TTL in advance, failing to test the site on the new host before flipping the switch, and misconfiguring database credentials in wp-config.php after the move. This comprehensive guide walks through each of those moments step by step so you do not hit them blind.
There are three primary paths for moving a WordPress site to a new host: using an automated plugin, performing the migration manually, or letting your new host handle the entire transfer for you. Some hosting providers include free hands-on migration assistance as part of onboarding, which removes the entire technical burden from your plate. VavaHost offers free technical migration assistance handled directly by experienced system engineers. But whether you plan to let a technical team handle it or want to understand what is happening under the hood, this guide provides the full picture.
Three ways to move your WordPress site to a new host (and how to pick the right one)
1. Plugin migration: fast and beginner-friendly
For most sites under 500 MB with no unusual server configurations, a migration plugin is the fastest path. Popular tools like All-in-One WP Migration and Duplicator work by exporting a packaged snapshot of your site from the old host and importing it onto the new server. You simply install the plugin in both environments, export the site file, upload it to the new destination, and the transfer is largely complete.
The catch with plugin migrations is the free tier file size limit. All-in-One WP Migration caps free package imports at approximately 512 MB. Duplicator's free version covers basic migrations cleanly but requires upgrading to a paid license for larger media libraries or multi-gigabyte databases. If you are dealing with a larger site, you can read our All-in-One WP Migration Unlimited Extension guide or switch to the manual method described below.
2. Manual migration: full control, zero file size limits
Manual migration involves transferring files via FTP/SFTP or your host's File Manager, exporting/importing the MySQL database through phpMyAdmin, and editing wp-config.php parameters directly. While it sounds intimidating to beginners, manual migration gives you complete control. You face zero upload size caps, and you know precisely which files and database tables were transferred.
The one critical technical step that catches webmasters off guard during manual migrations is serialized data. WordPress stores core settings, widget options, and plugin configurations as serialized PHP strings containing explicit byte-length markers. If you execute a plain SQL REPLACE() query to update your old domain to the new URL, those byte lengths become misaligned, causing site layouts and plugin settings to break silently. To safely replace domain references, you must use a serialization-aware tool like WP-CLI's wp search-replace or WP Migrate Lite.
3. Host-assisted migration: the hands-off option
When a hosting provider offers free migration assistance handled directly by their technical support team, you simply provide access credentials for the old host. The new host's engineers transfer all files, databases, SSL certificates, and email accounts without downtime. If touching FTP or databases sounds stressful, host-assisted migration is the ideal path. VavaHost includes complimentary white-glove site migration with every hosting plan.
What to do before you move a single file
Take a full backup of the old site
Before initiating any file transfers, export your database from phpMyAdmin as an uncompressed .sql file and download your complete WordPress directory (including wp-content, wp-config.php, and .htaccess). Store this backup off-server on your local machine or secure cloud storage like Google Drive or Dropbox. Do not rely solely on your old host's automated backups during an active migration.
Lower your DNS TTL early
This preparation step is frequently overlooked, resulting in severe DNS propagation delays. Log into your domain registrar or DNS management panel and drop the Time to Live (TTL) on your A record to 300 or 600 seconds (5 to 10 minutes). Perform this change at least 48 hours before you plan to switch server IP addresses. Old TTL values remain cached across global DNS resolvers until they expire. If your TTL is set to 86,400 seconds (24 hours), visitors will continue resolving to the old server for up to a full day after you update DNS. Lowering the TTL beforehand guarantees that resolvers pick up the new server IP within minutes.
Collect all database and FTP credentials
Gather the new host's database name, MySQL username, database password, and database host (usually localhost or a specific internal IP). Ensure you have active FTP/SFTP credentials for both old and new web servers before beginning file transfers.
How to move your WordPress site using a plugin
All-in-One WP Migration workflow
Install All-in-One WP Migration on your existing WordPress site. Navigate to Export, choose File, and download the resulting .wpress package. Next, install WordPress on your new hosting account, install the same plugin, navigate to Import, and drag-and-drop the .wpress file. The plugin automatically handles serialized data and database URL updates safely.
Duplicator package workflow
Duplicator generates two distinct files: an installer script (installer.php) and a compressed ZIP archive containing your site. Upload both files to the root directory of your new web host via FTP. Open your browser and navigate to https://yourdomain.com/installer.php (or use your new server IP), then follow the wizard to input new database credentials and run the automated extraction.
Post-import configuration checks
Immediately after importing your site through a plugin, log into the WordPress dashboard on the new server, navigate to Settings > Permalinks, and click Save Changes twice. This action flushes and rebuilds your .htaccess rewrite rules, resolving 404 errors on inner pages. Verify that wp-config.php reflects the correct new database credentials.
How to migrate WordPress manually when plugins fall short
Step 1: Export database and download files
Open phpMyAdmin on your old host, select your WordPress database, click Export, choose the Quick export method in SQL format, and save the .sql file. Connect to your old server using FileZilla or Cyberduck and download all files from /public_html/. For large sites containing gigabytes of uploads, compress the wp-content folder into a .zip file via cPanel File Manager before downloading to prevent FTP connection drops.
Step 2: Set up the new host database and upload assets
Log into cPanel or your control panel on the new host, create a new MySQL database, create a database user with a strong password, and grant the user ALL PRIVILEGES on that database. Upload all site files to the new server document root. Next, open phpMyAdmin on the new host, select the newly created empty database, click Import, select your .sql file, and run the execution query.
Step 3: Update wp-config.php and replace domain strings safely
Edit the wp-config.php file on the new server and update the following definitions:
define('DB_NAME', 'new_database_name');define('DB_USER', 'new_database_user');define('DB_PASSWORD', 'your_strong_password');define('DB_HOST', 'localhost');
To safely replace domain references across serialized database tables without corruption, execute WP-CLI via SSH:
wp search-replace 'https://olddomain.com' 'https://newdomain.com' --all-tables-with-prefix --skip-columns=guid --precise
If SSH access is unavailable, install the WP Migrate Lite plugin to perform serialized string replacements through the WordPress admin UI. Never execute raw SQL UPDATE queries for domain replacement on serialized WordPress tables.
Testing the migrated site before updating DNS
Using the local hosts file override
The safest way to verify your site on the new server without altering public DNS traffic is by editing your computer's local hosts file. On macOS and Linux, edit /etc/hosts. On Windows, edit C:\Windows\System32\drivers\etc\hosts. Add an entry mapping your domain to the new server IP address:
185.117.0.5 example.com www.example.com
Save the file and open your domain in a private browser window. Your computer will bypass public DNS records and connect directly to the new server. To verify you are viewing the new server, upload a temporary text file named /verification.txt to the new server and access it in your browser.
Pre-launch QA checklist
- Core Pages: Test Homepage, Blog posts, Contact forms, and
/wp-adminlogin. - Media & Assets: Verify that images, CSS, JavaScript, and fonts load cleanly without broken paths.
- E-Commerce Workflows: Test shopping cart additions, checkout payment gateways, and automated customer emails.
- SSL & Mixed Content: Ensure no insecure HTTP resource warnings appear in browser developer tools.
Updating DNS and SSL configuration
Switching DNS records seamlessly
Once testing passes, log into your domain registrar and update your domain A record to point to the new server IP address (or update your NS nameservers). Because you reduced the DNS TTL to 300 seconds earlier, global resolvers will transition traffic to your new host within minutes. Keep your old hosting account active for at least 48 hours after updating DNS to catch lingering visitor traffic during final propagation.
SSL Certificate reissue and validation
If your new host uses automated SSL tools like AutoSSL or Let's Encrypt, a free SSL certificate will be issued automatically as soon as DNS resolves to the new server IP. On VavaHost, SSL certificates are issued and renewed automatically with zero configuration required. If you use a paid custom SSL certificate, export the certificate, private key, and CA bundle from your old cPanel and import them into the new host's SSL/TLS Manager prior to switching DNS.
Post-migration troubleshooting
- Error Establishing a Database Connection: Re-check
DB_NAME,DB_USER,DB_PASSWORD, andDB_HOSTinwp-config.php. Verify database user privileges in cPanel. - 404 Errors on Subpages: Log into
wp-adminon the new server, go to Settings > Permalinks, and click Save Changes. - White Screen of Death (WSOD): Temporarily rename the
wp-content/pluginsfolder towp-content/plugins_oldvia FTP to deactivate all plugins, then reactivate them individually to isolate faulty code.
Conclusion: Zero-downtime WordPress hosting with VavaHost
Migrating a WordPress website to a new web host does not have to be stressful or risky. By taking proper backups, lowering DNS TTL in advance, executing serialized database search-and-replace queries correctly, and previewing the site via local hosts override, you eliminate downtime entirely.
If you prefer to skip the technical mechanics altogether, VavaHost provides free expert migration services with every account. Our technical engineers move your files, databases, email accounts, and SSL certificates seamlessly with zero disruption to your visitors. Choose your VavaHost plan today and experience high-performance LiteSpeed NVMe web hosting!