The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →You can move a WordPress site away from Bluehost without taking the existing site offline: keep the Bluehost copy running, back up both its files and MySQL database, restore those two payloads at the destination, update wp-config.php, test on the new server, and change DNS only after the copy works. DNS changes can take up to 48 hours to propagate, and mailboxes need a separate migration plan because website files and email are not the same asset.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
What a Bluehost-to-another-host migration actually moves
A WordPress installation has two essential payloads. The first is the file tree: WordPress core files, the wp-content directory, themes, plugins, uploads, configuration files, and any custom files in the document root. The second is the MySQL database, which stores posts, pages, users, settings, menus, plugin data, comments, and much of the site’s structure.
As an Amazon Associate I earn from qualifying purchases.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Copying only the files produces a site with no usable content. Importing only the database produces data with no executable WordPress installation. A complete migration restores both and reconnects them through the destination server’s database credentials.
- Files: the complete document-root directory, including
wp-content/uploads, active and inactive plugins, themes, and root files. - Database: the SQL export associated with the site’s
DB_NAMEvalue. - Configuration: a destination
wp-config.phpcontaining the new database name, user, password, host, and the original table prefix. - Domain services: DNS records and mailboxes, which are handled separately from the web copy.
Do not cancel the Bluehost account or delete its files until the destination has passed testing and DNS traffic has had time to settle.
#1 Best Overall
Prepare the move while Bluehost remains live
Preparation prevents the most damaging mistakes: missing a mailbox, exporting the wrong database, or discovering after DNS changes that a plugin or scheduled task was never copied.
Make an inventory
Record the current site’s domain and protocol (http or https), WordPress administrator access, Bluehost control-panel access, document-root location, database name, table prefix, PHP and other runtime requirements, active plugins, theme, cron jobs, and any integrations that call the site.
Free tools Windows power users keep installed
One-click scans. No signup required.
Write down the mailbox names and the provider responsible for each address. Note whether mail is hosted in the same Bluehost account, at a separate provider, or through a third-party service. Also list DNS records used for email, verification, analytics, payment services, or subdomains. This inventory is the reference for rebuilding services at the new host.
Lower avoidable change during the copy
Choose a maintenance window for the final synchronization. Until then, keep the Bluehost site live so visitors can continue to read and submit content. If the site receives comments, orders, registrations, or other writes, record the final time you export the database; changes made after that export will not appear in the restored copy unless you repeat the export or reconcile them manually.
Create and download a complete backup
- Use Bluehost File Manager or FTP to download the entire WordPress document root. Include hidden files such as
.htaccesswhen they are present. - Open phpMyAdmin from the Bluehost control panel and identify the database named by
DB_NAMEinwp-config.php. Export all tables belonging to that installation as a SQL file. - Store the downloaded files and SQL export in at least one location outside the Bluehost account. Keep the original backup unchanged and record its date.
- Confirm that the archive contains
wp-content/uploads, your theme, plugins, and the SQL file. A backup that omits uploads or the database is not a restorable WordPress backup.
Bluehost’s migration guidance recommends testing the destination before cancelling the old account. Treat the downloaded backup as your rollback point: if the new server fails, you can continue serving the Bluehost copy while correcting the migration.
Choose a manual or guided migration
There are two practical routes. The manual route gives you visibility into every file, database table, URL, and error. A guided route reduces the number of hosting-panel operations but gives you less direct control over how edge cases are handled.
| Decision factor | Manual transfer | Guided migration tool |
|---|---|---|
| How it works | Download files, export SQL, create a database, import SQL, edit configuration, then test. | A guided interface transfers files, database, and content through the tool’s workflow. |
| Technical skill | Requires FTP or File Manager, phpMyAdmin, database credentials, and configuration editing. | Lower day-to-day technical burden, although you still need to verify the result. |
| Control | Maximum control over table prefixes, URL replacement, exclusions, and troubleshooting. | Convenient defaults, with less control over unusual plugins, serialized data, or custom server rules. |
| URL and serialized-data issues | You can choose a migration-safe search-and-replace process and inspect the affected tables. | Behavior depends on the tool and its supported source and destination combinations. |
| Downtime exposure | Can be near-zero when you test on a temporary address and perform a final database export before DNS cutover. | Can also avoid downtime, but transfer duration and limits depend on the service. |
| Support | Support is generally divided between the source and destination hosts; you diagnose more yourself. | The destination may provide migration assistance, subject to its current program and eligibility. |
Manual method
Use the manual method when you need to audit the database, preserve a complicated setup, troubleshoot serialized URLs, or migrate a site with custom code. It is also the fallback when a guided tool does not support your destination, site size, plugin set, or hosting arrangement.
Rank #2
Guided method
Bluehost documents a self-service migration tool powered by InstaWP. It is intended to transfer files, the database, and content through a guided interface. Availability, supported hosts, limits, and any account-specific requirements can change, so check the migration tool inside your account before relying on it. Even with a guided transfer, retain your independent files-and-database backup and perform the same front-end, dashboard, form, media, SSL, and DNS checks described below.
Manual migration: copy the files and database
1. Identify the correct WordPress installation
Before exporting anything, open the site’s wp-config.php and note these values:
define( 'DB_NAME', 'current_database' );
define( 'DB_USER', 'current_user' );
define( 'DB_PASSWORD', 'current_password' );
define( 'DB_HOST', 'current_host' );
$table_prefix = 'wp_';
Names are often prefixed by the hosting account. Export the database named by DB_NAME, not an unrelated database visible in phpMyAdmin. Preserve the table prefix shown in the file; changing it without updating the configuration and table references can break the installation.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems2. Download every site file
Use FTP or the Bluehost File Manager to download the whole document root. That normally includes wp-admin, wp-includes, wp-content, root PHP files, wp-config.php, .htaccess, and any custom verification or rewrite files. Do not download only the theme or uploads directory. Plugins may contain required code, and root files may contain rewrite rules or ownership-specific settings that you need to review at the destination.
3. Export the MySQL database
- Open phpMyAdmin in Bluehost.
- Select the database identified by
DB_NAME. - Choose an export of all tables in SQL format.
- Save the resulting
.sqlfile with the backup date and site name.
Do not edit the SQL file casually. WordPress and plugins may store references in serialized PHP data; a plain text replacement can change string lengths and corrupt those values.
4. Create the destination database and user
In the new host’s control panel, create a MySQL database and a database user, then grant that user full privileges on the new database. Write down the exact database name, username, password, and database host supplied by the destination. The host may be localhost, a server name, or another value; use the value supplied by the destination rather than assuming it.
5. Import the SQL file
Open the destination host’s phpMyAdmin or database-import utility, select the newly created database, and import the SQL file. Wait for the import to complete and check for an error message. A timeout or upload-size error may require the host’s command-line importer or support-assisted import rather than a second, incomplete upload.
6. Upload the WordPress files
Upload the complete file tree to the destination document root. Confirm that wp-content/uploads, plugins, themes, and root files are present. If the host uses a different document-root path, place the files there rather than in a sibling directory that the domain does not serve.
7. Replace the database constants in wp-config.php
Edit the copy of wp-config.php on the destination so it points to the new database:
define( 'DB_NAME', 'destination_database' );
define( 'DB_USER', 'destination_user' );
define( 'DB_PASSWORD', 'destination_password' );
define( 'DB_HOST', 'destination_host' );
$table_prefix = 'wp_';
Keep the existing authentication keys, salts, and table prefix unless you have a specific reason to regenerate or change them. Check file permissions using the destination host’s recommended values, and never publish the database password in a public support ticket.
Handle domain and URL changes safely
If the domain and protocol stay exactly the same, the imported database usually retains the correct site URLs. If you are changing the domain, moving from HTTP to HTTPS, or replacing a temporary hostname, update URLs with a migration-safe search-and-replace method that understands serialized data.
Recommended Free Tools
Serialized values include their character length. Replacing a longer or shorter URL with a generic text editor can leave the recorded length wrong, causing broken widget settings, menus, plugin options, or page-builder content. Use a tool designed to update serialized data, take a database backup first, and run the replacement against the relevant tables rather than blindly changing every occurrence.
After the replacement, inspect the site for the old hostname in:
- Posts, pages, navigation menus, and reusable blocks.
- Image and media URLs, including background images in CSS or page builders.
- Canonical tags, XML sitemaps, feeds, and robots.txt.
- Redirect rules and hard-coded links in theme or plugin settings.
- Forms, webhooks, analytics, payment, membership, and API integrations.
Refresh permalinks after the copy
Once you can sign in to the destination dashboard, open Settings → Permalinks and click Save Changes, even if the selected structure already looks correct. This makes WordPress regenerate its rewrite rules and is the standard fix for copied sites that show 404 errors on posts or pages while the home page loads.
Rank #4
If URLs still fail, check that the destination domain points to the intended document root, that Apache or Nginx rewrite support is enabled, and that the copied .htaccess or equivalent server rules are compatible with the new host. A caching or security plugin can also block requests until its cache and domain settings are refreshed.
Test the destination before changing DNS
Do not use the public DNS cutover as your first test. Use the destination host’s preview URL, a staging copy, a temporary URL, or a hosts-file override that resolves your domain to the new server only on your computer. The exact preview mechanism varies by host; the essential requirement is that you can exercise the copied site while public visitors still reach Bluehost.
Front-end and dashboard checks
- Load the home page, representative posts, pages, categories, search results, archives, and any custom post types.
- Sign in to
/wp-admin; confirm the dashboard has no database-connection or missing-file errors. - Open the Media Library and several original-size and thumbnail images.
- Test menus, widgets, blocks, theme controls, and page-builder layouts.
- Submit every important form and verify its notification destination.
- Test user registration, login, password reset, checkout, membership, or other transaction flows if the site uses them.
Operational checks
- Issue a test HTTPS request and confirm the certificate covers the domain before enabling the site publicly.
- Clear and rebuild page, object, CDN, and plugin caches; verify that cached pages do not contain the temporary hostname.
- Confirm analytics, advertising tags, search-console verification, webhooks, and API credentials still point to the correct domain.
- Review
robots.txt, XML sitemaps, canonical URLs, redirects, and noindex settings. - Check scheduled posts, backups, WordPress cron events, server cron jobs, and notification tasks.
- Review PHP version, memory limit, upload limit, maximum execution time, and any required extensions against the site’s plugin and theme requirements.
Record each failed check and correct it before cutover. Testing the front page alone will not reveal a missing upload directory, broken scheduled task, invalid form endpoint, or a plugin that fails only in the administrator area.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.DNS cutover and the 48-hour propagation window
When the destination passes testing, change the domain’s A record or nameservers to the new host, according to the DNS arrangement you use. DNS maps a domain name to an IP address so browsers can load the website. Different resolvers and networks may continue using cached records for different periods; Bluehost states that propagation can take up to 48 hours. That is a possible window, not a guarantee that every network will update at the same moment.
- Confirm the destination is ready and the Bluehost copy is still intact.
- Change only the records required for the website unless you have deliberately planned a full nameserver move.
- Keep the old hosting active during propagation.
- Check the site from more than one network or resolver and monitor both old and new servers.
- Watch forms, orders, registrations, and logs for requests still arriving at Bluehost.
Do not make conflicting content edits on both servers during propagation. If the site receives important writes, keep a record of which server accepted them and perform a final database synchronization before retiring the old copy.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated 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 matchMove email separately from the website
Email messages and mailboxes usually do not transfer automatically when WordPress files and a database are moved. Before changing DNS, determine where each mailbox is hosted and preserve mail locally or migrate the mailboxes separately. If the DNS zone contains MX, SPF, DKIM, DMARC, autodiscover, or provider verification records, reproduce the required records at the authoritative DNS provider.
Email continuity checklist
- List every address, alias, forwarder, autoresponder, and shared mailbox.
- Export or otherwise preserve existing messages before the old mail service is removed.
- Create destination mailboxes and verify passwords, storage limits, and spam settings.
- Copy the provider’s required MX and authentication records exactly.
- Send test messages in both directions and verify that website form mail still arrives.
- Keep the old mail service available during DNS propagation when possible.
A website can appear fully migrated while email silently fails because its MX records still point to the old service or because the new provider lacks a mailbox that existed at Bluehost. Treat mail as its own migration project.
Best Value
Common failure modes and recovery steps
“Error establishing a database connection”
Recheck DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST character by character. Confirm that the user has privileges on the destination database and that the database server is running. If the host adds an account prefix to database names, use the fully qualified name shown in its control panel.
The home page loads but posts return 404
Sign in and save Settings → Permalinks. If that does not work, verify rewrite support, document-root mapping, and the destination server’s equivalent of .htaccess. Purge caches after correcting the rule.
Images are missing
Check that wp-content/uploads was copied with its year and month subdirectories and that file permissions allow the web server to read it. Inspect the image URLs for an old domain or HTTP protocol. A serialized-data-safe URL replacement may be required.
The site redirects to Bluehost or a temporary URL
Search the database, configuration, theme, plugin settings, and redirect rules for the old hostname. Confirm that the DNS record and destination virtual host point to the same installation. Clear caches only after the correct URL is saved.
Forms or scheduled tasks stop working
Re-enter API keys and SMTP settings if they contain host-specific values. Check PHP extensions, cron configuration, SSL validation, and firewall rules. A copied WordPress database cannot recreate a server-level cron job or an external mailbox automatically.
The SQL import times out
Keep the original SQL export safe and ask the destination host which import method and size limits apply. A command-line import or host-assisted restore may be required. Do not assume that a partially completed phpMyAdmin import is valid; verify that all expected tables exist and that WordPress can read them.
When it is safe to retire Bluehost
Wait until the destination serves the correct site from normal networks, email tests pass, critical forms and transactions work, scheduled jobs run, and no required traffic is still reaching Bluehost. Keep the backup and a known-good copy of the old site for your organization’s retention period. Only then cancel hosting or delete files, because deleting the source removes your easiest rollback while DNS caches may still direct visitors to it.
The safest sequence is therefore: preserve the live source, back up files and database, restore both at the destination, correct configuration and URLs, refresh permalinks, test privately, change DNS, monitor propagation and email, then retire the old account.
Quick Recap
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.

