Move the site by building and testing the Linux VPS before changing DNS, then perform a final database sync and switch the domain’s DNS records. Keep the Bluehost account online during propagation so you can roll back if the VPS fails. The essential sequence is: inventory and freeze changes, create verified file and database backups, provision and secure the VPS, copy the files, import the database, update wp-config.php, test privately, cut over DNS, and monitor both servers.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This procedure applies whether the domain remains the same or is changing. A same-domain move normally needs no URL replacement; a domain change requires a serialization-safe search-and-replace. No migration can promise zero interruption, but a prepared destination, a short content freeze and a retained rollback server greatly reduce risk.
As an Amazon Associate I earn from qualifying purchases.
Choose the migration method before you touch the live site
You can migrate manually, use a guided migration tool, or hire a WordPress/server specialist. The right choice depends on how much control you need and whether you can safely work with SSH, SQL, DNS and Linux permissions.
| Approach | Control and flexibility | Skill and risk profile | Best fit | What is established |
|---|---|---|---|---|
| Manual migration | Full control of the Linux distribution, web server, PHP, database, firewall, backups and deployment layout | Requires shell, database, DNS and troubleshooting knowledge; you own testing and rollback | Large, customized or unusual sites, and owners who need a reproducible server configuration | Bluehost’s manual workflow covers file transfer, SQL export/import, database creation, wp-config.php edits and permalink resaving. |
| Guided migration tool | Less server-level control; the tool follows its supported path | Lower hands-on effort, but unsupported plugins, large databases or unusual hosting settings can still require manual work | Standard WordPress installations where the destination provider supports the tool | A Bluehost/InstaWP self-service migration description says the program is designed for a success rate of at least 85% in collaboration with its partner team. That is a stated program target, not a guarantee for your site. |
| Professional migration | Can include server setup, transfer, DNS, TLS, email and rollback planning, depending on the written scope | Reduces your operational workload; quality, coverage, geography and availability must be confirmed before purchase | Stores, membership sites and business sites where a failed cutover has a material cost | Bluehost’s migration guidance identifies professional support as an option, but no universal price or availability is established here. |
Regardless of method, insist on a downloadable SQL export and a copy of the complete WordPress directory. A tool is not a substitute for a recovery plan.
#1 Best Overall
- Slim durable design to help take your important files with you
- Vast capacities up to 6TB[1] to store your photos, videos, music, important documents and more
- Back up smarter with included device management software[2] with defense against ransomware
- Help secure your important files with password protection and hardware encryption
- 3-year limited warranty
Prepare the move while Bluehost is still authoritative
Inventory every dependency
Write down the domain name, DNS provider, Bluehost document root, current PHP and MySQL or MariaDB versions, active plugins and themes, cron jobs, email routes, payment processors, webhooks, external object storage, CDN settings and any server-specific rewrite rules. Record where TLS certificates are issued and how renewal is handled. This list becomes your acceptance checklist after the cutover.
Freeze changes for the final export
Schedule a short maintenance or content-freeze window. Prevent new orders, comments, form submissions and editorial changes while you create the final database dump. If you cannot fully freeze the site, note the exact time of the export and plan a second, final export immediately before DNS changes.
Recommended Free Tools
Lower DNS TTL ahead of time
When your DNS provider permits it, reduce the domain’s A and AAAA record TTL to 300–600 seconds approximately 24–48 hours before the move. This can make resolver caches expire sooner, but it does not force every network to refresh immediately and it does not shorten an already cached nameserver delegation.
Create backups you can actually restore
Download the complete WordPress tree
Copy the entire document root, not only the visible media directory. Include wp-content (uploads, plugins, themes and other content), WordPress core files, wp-config.php, .htaccess and any custom files used by the site. Keep one copy on your computer and another on separate or off-site storage. An external hard drive or SSD is useful for the local copy, but it should not be the only copy.
Export the database as SQL
In Bluehost’s hosting control panel, open phpMyAdmin, select the WordPress database, choose Export, use the SQL format and save the resulting file. If you use a command-line database client instead, create a complete dump that includes the tables, structure and data. Note the database name and table prefix from wp-config.php; the prefix may not be wp_.
Rank #2
- Slim durable design to help take your important files with you
- Vast capacities up to 6TB[1] to store your photos, videos, music, important documents and more
- Back up smarter with included device management software[2] with defense against ransomware
- Help secure your important files with password protection and hardware encryption
- 3-year limited warranty
Verify the backup before proceeding
- Confirm that the downloaded directory contains recent files and the expected upload folders.
- Check that the SQL file has a plausible size and contains table definitions and data rather than an error page.
- Open the archive or copy on a second device to ensure it is readable.
- For a high-value site, restore the SQL dump into a temporary database and confirm that WordPress tables are present.
- Record the backup timestamp and keep the original Bluehost copy untouched until the rollback window ends.
Provision and secure the Linux VPS first
Select a compatible stack
Choose a supported Linux distribution and install a web server, PHP and MySQL or MariaDB. A common combination is the LAMP stack (Linux, Apache, MySQL and PHP), although the exact stack can vary. Match or exceed the PHP and database features required by your WordPress version, theme and plugins; do not change several major components at once unless you have tested them.
Apply basic server security
- Apply the distribution’s security updates.
- Create a non-root administrative user and use SSH keys where possible.
- Disable routine root-password SSH access after confirming the new account works.
- Configure a firewall that allows SSH on your chosen port plus HTTP (80) and HTTPS (443).
- Install time synchronization, log rotation and a method for receiving security updates.
Use your provider’s documented commands for the selected distribution; package names and service commands differ between Linux releases.
Create the database and virtual host
Create a dedicated database and a least-privilege database user. Save the database name, username, password and host; you will enter these values in wp-config.php. Create an Apache virtual host or Nginx server block for the domain and set its document root to the WordPress directory. Configure the intended PHP handler, upload limits and rewrite rules before testing.
Prepare directories and ownership
Create the document-root directory, then set ownership so the web service can read the application and WordPress can write only where necessary, normally wp-content/uploads and other explicitly required paths. Avoid making the entire site world-writable. Verify the effective web user with your distribution’s service configuration instead of assuming its name.
Transfer the files and database separately
Copy WordPress files securely
Use SFTP, SSH-based rsync or another encrypted transfer method. For example, an rsync transfer can look like this, with paths and usernames adapted to your servers:
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- 【Plug-and-Play Expandability】 With no software to install, just plug it in and the drive is ready to use in Windows(For Mac,first format the drive and select the ExFat format.
- 【Fast Data Transfers 】The external hard drives with the USB 3.0 cable to provide super fast transfer speed. The theoretical read speed is as high as 110MB/s-133MB/s, and the write speed is as high as 103MB/s.
- 【High capacity in a small enclosure 】The small, lightweight design offers up to 500GB capacity, offering ample space for storing large files, multimedia content, and backups with ease. Weighing only 0.35 Lbs, it's easy to carry "
- 【Wide Compatibility】Supports PS4 5/xbox one/Windows/Linux/Mac and other operating systems, ensuring seamless integration with game consoles,various laptops and desktops .
- Important Notes for PS/Xbox Gaming Devices: You can play last-gen games (PS4 / Xbox One) directly from an external hard drive. However, to play current-gen games (PS5 / Xbox Series X|S), you must copy them to the console's internal SSD first. The external drive is great for keeping your library on hand, but it can't run the new games.
rsync -aH --info=progress2 /path/to/site/ admin@VPS_IP:/var/www/example.com/
If rsync is unavailable, upload the archive over SFTP, extract it on the VPS and verify that hidden files such as .htaccess were included. Do not overwrite your only backup while correcting ownership or permissions.
Import the SQL dump
Copy the SQL file to the VPS, then import it into the empty destination database:
mysql -u DESTINATION_DB_USER -p DESTINATION_DB_NAME < wordpress-backup.sql
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsEnter the database user’s password when prompted. If the import reports an error, stop and resolve it rather than opening the site against a partial database. Check character-set and collation errors, packet-size limits and available disk space, then repeat into a newly emptied database.
Rank #4
- Slim durable design to help take your important files with you
- Back up smarter with included device management software[2] with defense against ransomware
- Help secure your important files with password protection and hardware encryption
- 3-year limited warranty
Update wp-config.php
Edit the destination copy so DB_NAME, DB_USER, DB_PASSWORD and DB_HOST match the new database. Preserve the existing authentication keys, salts, table prefix and any intentional constants unless you have a documented reason to change them. Keep the file outside public downloads and confirm its permissions prevent unauthorized reading.
Handle URLs safely
If the domain stays exactly the same, do not run a search-and-replace merely because the server changed. WordPress stores serialized data, and a naive text replacement can corrupt it. If the domain changes, use a serialization-aware tool such as a tested WP-CLI search-replace operation, make a fresh database backup first, exclude the guid column unless you have a specific reason to alter it, and review redirects and canonical URLs afterward.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Preview the VPS privately before DNS cutover
Choose a private preview method
Use a temporary hostname, a staging subdomain, a local hosts-file override or another access method that does not make the new server authoritative for public traffic. A hosts-file override lets your own computer resolve the real domain to the VPS IP while everyone else continues reaching Bluehost. Remove the override after testing.
Run a functional acceptance checklist
- Open the homepage, representative posts, pages, categories and archives.
- Load images, galleries, downloadable files, menus, search and pagination.
- Log in and out of
/wp-admin/; test user roles and password resets. - Submit every important form and verify that notifications arrive.
- Run a complete checkout or payment test in the provider’s safe test mode, and verify webhooks.
- Check active plugins, scheduled jobs, feeds, redirects, robots directives and sitemap generation.
- Test the responsive layout on mobile and desktop browsers.
- Inspect PHP, web-server and WordPress logs while exercising the site.
- Confirm that the document root, uploads and generated caches are writable only where required.
Resave permalinks after the site loads
In WordPress, open Settings → Permalinks and click Save Changes without changing the selected structure. This regenerates rewrite rules for the destination server. Then test a post URL, a page URL and a deliberately missing URL to confirm both routing and 404 handling.
Issue and test TLS
Stage a certificate for the production hostname before cutover when your certificate method allows it. Verify HTTPS on the homepage and representative deep links, HTTP-to-HTTPS redirects, canonical URLs, secure cookies and the absence of mixed-content warnings. Confirm that automatic renewal is configured on the VPS; a certificate that works on launch but cannot renew is an impending outage.
Best Value
- World’s First 6TB 2.5” Portable Hard Drive
- Slim durable design to help take your important files with you
- Vast capacities up to 6TB[1] to store your photos, videos, music, important documents and more
- Back up smarter with included device management software[2] with defense against ransomware
- Help secure your important files with password protection and hardware encryption
Perform the DNS cutover with a final sync
Take the final database export
At the scheduled freeze, disable submissions or place the site in maintenance mode, export the database again and import that final dump into the VPS. Copy any files uploaded since the first transfer, especially new media. Repeat the most important private tests against the final data.
Change the correct DNS records
Update the domain’s A record, and its AAAA record if you are using IPv6, to the VPS address. If you are moving DNS management as well, change the nameservers exactly as the DNS provider instructs and recreate all required records first, including mail-related records. Do not delete the Bluehost records until you have confirmed that web, mail and third-party services are operating from the intended endpoints.
Monitor both endpoints during propagation
Resolvers refresh at different times; there is no universal propagation duration. Test from more than one network and monitor VPS access logs, error rates, uptime, certificate status, contact forms, payment callbacks, cron execution and email delivery. Keep Bluehost active while caches expire and your acceptance checklist remains green.
Keep a rollback path
If the VPS serves errors, loses data or breaks a business-critical integration, restore the previous A and AAAA records or nameservers and re-enable the Bluehost site. Preserve logs and the failed destination database for diagnosis. Do not make new content on both servers during a rollback unless you have a deliberate reconciliation plan; otherwise the databases will diverge. Define the rollback owner, decision threshold and final deadline before the cutover.
Troubleshoot the failures that appear most often
“Error establishing a database connection”
- Recheck the four database constants and the host value in
wp-config.php. - Confirm the database service is running and listening on the expected socket or address.
- Verify that the user exists, has privileges on the selected database and is allowed to connect from the web server.
- Inspect the database and PHP logs for authentication, socket, TLS or resource errors.
Pages return 404 after the move
Resave Settings → Permalinks, verify Apache rewrite support or the equivalent Nginx configuration, and confirm that the virtual host points to the correct document root. Check that the transferred .htaccess file is present when Apache uses it.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Images or uploads are missing
Confirm that wp-content/uploads was copied with its year/month subdirectories, that the database’s attachment records use the expected URL, and that the web user can read the files. Check for case-sensitive filename differences, which can appear when moving from a case-insensitive development environment to Linux.
Redirect loops, mixed content or a broken login
Check WordPress Address and Site Address, reverse-proxy HTTPS headers, forced-HTTPS rules and cookie-domain settings. Remove conflicting redirect rules and clear only the caches that are actually involved. Test in a private browser session after each change.
Forms, cron or webhooks do not work
Verify outbound mail configuration, firewall egress rules, DNS records used by third-party services, webhook allowlists and the VPS cron service. Run the scheduled command manually as the same user and inspect its output and logs. Payment callbacks may still target the old IP until the provider’s endpoint is updated.
Quick Recap
Finalize the VPS after the rollback window
- Take a fresh post-cutover backup of both files and database.
- Configure automated, encrypted off-site backups and perform a restore test.
- Enable security updates, monitoring, log alerts and disk-space notifications.
- Verify cron, email delivery, TLS renewal and all external integrations again.
- Document SSH access, database credentials storage, DNS ownership, restore steps and the person authorized to roll back.
- Only after the rollback window, billing review and domain, DNS and email checks are complete should you decommission the Bluehost account.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




