HelpWithWebGet Help Now

Move website files and database from GoDaddy to Bluehost

This is the only task that moves the website itself. Everything else moves pointers and paperwork.

If you are on GoDaddy's Web Hosting (cPanel) product, this is a like-for-like move: both ends give you a file manager, FTP and phpMyAdmin, and both use public_html as the web root. If you are on GoDaddy's Managed Hosting for WordPress, there is no cPanel to export from, so you will be pulling the site out with a migration plugin instead.

Do this first, while GoDaddy is still live. Nothing here is visible to the public until DNS changes, so a mistake at this stage costs time and nothing else.

Hands-on time
1–3 hours of hands-on work
Start to finish
Same day
Difficulty
Moderate
Steps
9

Downtime risk: None while you work — the live site stays on GoDaddy until DNS changes. Risk arrives at cutover if the copy was never tested.

Can I do just this, and nothing else?

Yes — this works on its own

Yes. You can put a working copy of the site on Bluehost and change nothing else — the domain stays at GoDaddy, email keeps flowing, and visitors carry on reaching the GoDaddy copy. Nothing you do here is public until you make one DNS change afterwards.

What changes

  • A second, working copy of the site exists on Bluehost's servers
  • You have a tested target to point at when you are ready

What stays exactly as it is

  • The domain stays registered at GoDaddy and is billed by GoDaddy
  • Nameservers and DNS records are untouched
  • Email continues to work exactly as before
  • Visitors still reach the GoDaddy copy — nothing has moved for them

Before doing website files & database on its own: Nothing. This is the safest task to do first, because it changes nothing anyone can see.

Before you start

  • An active Bluehost plan, provisioned and showing a temporary URL or IP address
  • GoDaddy access with File Manager or FTP, and phpMyAdmin
  • Enough local disk space for a full copy — check the GoDaddy disk usage figure first
  • The WordPress admin login, if the site is WordPress

Step-by-step

Each step is labelled with which side you are working on, so you always know whether you should be signed in to GoDaddy or Bluehost.

  1. 1At GoDaddy

    Take a full backup before touching anything

    Download a copy of both the files and the database and keep it off both hosts. This is not the migration copy — it is what you restore from when the migration copy turns out to be incomplete.

    • Files: GoDaddy → Web Hosting → Manage → File Manager, or connect over FTP
    • Database: cPanel → phpMyAdmin → select the database → Export → Quick → SQL
    • Store both somewhere that is neither GoDaddy nor Bluehost
  2. 2At GoDaddy

    Compress public_html on the GoDaddy side

    Zipping on the server and downloading one archive is far faster and more reliable than pulling thousands of small files over FTP, which is where WordPress migrations usually stall.

    • In cPanel File Manager, open public_html, select all, then Compress → Zip Archive
    • Turn on hidden files first — .htaccess is hidden by default and easy to leave behind
    • For very large sites, GoDaddy documents FileZilla over FTP as the alternative
  3. 3At GoDaddy

    Export the database

    Export the whole database as a single SQL file. For WordPress, the database name is in wp-config.php — open it and note DB_NAME, DB_USER and DB_PASSWORD while you are there, because all three are about to change.

    • phpMyAdmin → select the database → Export tab → Quick, format SQL → Go
    • If the export times out or the file is over ~50 MB, use mysqldump over SSH instead
    Over SSH, if your plan allows it
    cd ~
    zip -r site-backup.zip public_html -x '*/wp-content/cache/*'
    mysqldump -u DBUSER -p DBNAME > site-db.sql
  4. 4At Bluehost

    Upload and extract on Bluehost

    Upload the archive into public_html on the Bluehost side and extract it there, rather than uploading the expanded tree.

    • Bluehost portal → Hosting → File Manager, or connect over FTP/SFTP
    • Navigate to public_html, upload the archive, then extract
    • If the zip contained the public_html folder itself, move the contents up one level so index.php sits directly in public_html
  5. 5At Bluehost

    Create the database and user at Bluehost

    The database and its user are separate objects. Create both, then explicitly grant the user All Privileges — a site that loads but reports "Error establishing a database connection" is almost always a missing grant.

    • Bluehost cPanel → Databases → MySQL Databases → create a database
    • Create a user, then Add User To Database → All Privileges
    • Note the full names — cPanel prefixes both with your account name
  6. 6At Bluehost

    Import the SQL file

    Import into the empty database you just created, using phpMyAdmin on the Bluehost side.

    • cPanel → phpMyAdmin → select the new database → Import → choose the .sql file → Go
    • Wait for the success message; a partial import leaves a site that half works
    • Compare the table count against the source before moving on
  7. 7At Bluehost

    Update wp-config.php with the Bluehost credentials

    The site will not connect until wp-config.php names the new database, user and password. On Bluehost shared hosting, DB_HOST stays localhost.

    wp-config.php
    define( 'DB_NAME', 'yourcpanel_dbname' );
    define( 'DB_USER', 'yourcpanel_dbuser' );
    define( 'DB_PASSWORD', 'the password you just set' );
    define( 'DB_HOST', 'localhost' );
  8. 8At Bluehost

    Test before you touch DNS

    This is what separates a calm migration from a bad one. Load the Bluehost copy while GoDaddy still serves the public, and fix what is broken with no audience.

    • Use the temporary URL or IP that Bluehost provides for the account
    • Better: add a hosts file entry so the real domain resolves to Bluehost for you only, which catches redirect loops the temporary URL hides
    • Click through properly — forms, logins, checkout, an image deep in an old post
    hosts file entry (macOS/Linux: /etc/hosts)
    162.241.0.10  example.com www.example.com
  9. 9At Bluehost

    Fix the predictable differences

    A handful of things reliably differ between the two hosts. Work through them now rather than discovering them live.

    • PHP version — match GoDaddy's first, upgrade later as a separate change
    • File permissions — directories 755, files 644
    • Confirm .htaccess actually arrived; if permalinks 404, it did not
    • Re-create cron jobs; they do not travel with files
    • Check the error log for anything referencing a GoDaddy-specific path

What goes wrong

The failures that actually happen on this step, rather than a generic warning to be careful.

  • Coming off Managed Hosting for WordPress is a different job

    Can cause downtime

    GoDaddy's managed WordPress product has no cPanel and no phpMyAdmin, so there is nothing to export the way this guide describes. Pull the site out with a migration plugin that produces a portable archive, or use Bluehost's migration service. Do it while the GoDaddy site is still publicly reachable, because most migration tooling works by fetching the live site.

  • Hidden files are silently skipped

    Can cause downtime

    .htaccess, .user.ini and similar dotfiles do not appear in most file managers until you enable hidden files, and they are not included in a zip built from a selection that never showed them. A WordPress site missing .htaccess loads the homepage fine and 404s on every other page.

  • Large database imports fail quietly in phpMyAdmin

    Can cause delays

    Above roughly 50 MB the import hits the upload or execution limit. Sometimes it errors; sometimes it stops partway and reports nothing useful. Check the table count after importing against the source, rather than trusting the absence of an error.

  • Email does not live in the files

    Can cause downtime

    Mailboxes hosted with your old provider are not in public_html and are not in the database. If you use host-provided email, that is a separate migration — download the mail over IMAP before you cancel, or the messages go with the account.

  • Cached URLs baked into the database

    Can cause delays

    If the domain is changing as well as the host, the old domain is written throughout the database — in post content, in widget settings, in serialized option arrays. Use a search-replace tool that understands PHP serialization; a raw SQL find-and-replace corrupts serialized data and breaks theme settings.

How to check it worked

Do not rely on the site looking fine in your own browser — it caches, and it will tell you what you want to hear.

  • The site loads on Bluehost's temporary URL, or on the real domain via a hosts file entry, with no database connection error
  • Interior pages load — not just the homepage — proving .htaccess and permalinks survived
  • Images in old posts render, confirming wp-content/uploads came across in full
  • wp-admin logs in and the plugin list matches the GoDaddy site
  • The Bluehost error log is clean after a few minutes of clicking around

If it goes wrong

Nothing is live yet, so rollback is simply: do not change DNS. The GoDaddy site keeps serving as it always has. Delete the Bluehost copy and start again if the import went badly.

Questions about this step

Can I move the site without downtime?

Yes, and this order is how. Because the Bluehost copy is tested while GoDaddy still serves the public, there is no window where nothing answers. The only care needed is at cutover: avoid publishing content on the GoDaddy site during propagation, since those posts live in a database you have already copied.

What about my SSL certificate?

Certificates do not transfer. The new host issues its own once the domain resolves to its servers, which means there is a short period after cutover where HTTPS may warn. Provision the certificate as soon as DNS points there, and check the site still forces HTTPS afterwards.

Does Bluehost still offer free migrations?

It has varied by plan and over time, and there is a paid Pro Migration service alongside it. Check what your specific plan includes rather than assuming — and note that either way it covers files and the database, not DNS, email or the registrar.

Reference documentation

Provider interfaces change. When these steps and the official documentation disagree, the documentation wins.

Only if you are doing the full move

Stuck on this step?

Send me the domain and what you have tried. I do GoDaddy to Bluehost moves regularly and can tell you what is actually blocking it.

← All GoDaddy to Bluehost stepsMigration guide tool

CallTextMessage