HelpWithWebGet Help Now

Move website files and database from Bluehost to GoDaddy

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

Which route you take depends on what you bought at GoDaddy. GoDaddy Web Hosting (cPanel) is a like-for-like target for a Bluehost shared site — File Manager, phpMyAdmin, the same public_html layout. Managed Hosting for WordPress is a different product with no cPanel, and it has its own importer that does most of this for you.

Do this step first, while Bluehost is still live. Nothing here is visible to the public until you change DNS, so a mistake at this stage costs you 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 Bluehost 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 GoDaddy and change nothing else — the domain stays registered at Bluehost, email keeps flowing, and visitors carry on reaching the Bluehost copy. Nothing you do here is visible to the public until you make one DNS change afterwards.

What changes

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

What stays exactly as it is

  • The domain stays registered at Bluehost and is billed by Bluehost
  • Nameservers and DNS records are untouched
  • Email continues to work exactly as before
  • Visitors still reach the Bluehost 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 GoDaddy hosting plan, provisioned and showing a temporary URL or IP address
  • Bluehost account access with File Manager or FTP, and phpMyAdmin
  • Enough local disk space for a full copy of the site — check the Bluehost 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 Bluehost or GoDaddy.

  1. 1At Bluehost

    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 the thing you restore from when the migration copy turns out to be incomplete.

    • Files: Bluehost portal → Hosting → File Manager, or connect over FTP/SFTP
    • Database: phpMyAdmin → select the database → Export → Quick → SQL
    • Store both somewhere that is not Bluehost and not GoDaddy
  2. 2At Bluehost

    Compress public_html on the Bluehost side

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

    • In File Manager, open public_html, select all, then Compress → Zip Archive
    • Turn on hidden files first — .htaccess is hidden by default and is easy to leave behind
    • If your plan includes SSH, zip -r site.zip public_html is faster still
    Over SSH, if your Bluehost plan allows it
    cd ~
    zip -r site-backup.zip public_html -x '*/cache/*' '*/wp-content/cache/*'
    mysqldump -u DBUSER -p DBNAME > site-db.sql
  3. 3At Bluehost

    Export the database from phpMyAdmin

    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 you will need to rewrite all three.

    • 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
    • Do not export from the Databases home screen — that includes system tables you do not want
  4. 4At GoDaddy

    Upload the archive to GoDaddy and extract it

    In GoDaddy's cPanel File Manager, upload the zip into public_html and extract it there. Uploading one archive and extracting on the server avoids a multi-hour FTP crawl.

    • GoDaddy → Web Hosting → Manage → File Manager
    • Navigate to public_html, then Upload, then Extract the archive
    • If the zip contained the public_html folder itself, move the contents up one level so index.php sits directly in public_html
    • For very large sites, FTP with FileZilla is the documented alternative
  5. 5At GoDaddy

    Create the database and user at GoDaddy

    cPanel database users are separate from the database. Create both, then explicitly grant the user All Privileges on the database — a migration that loads the site but shows "Error establishing a database connection" is almost always a missing grant.

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

    Import the SQL file

    Import into the empty database you just created, through phpMyAdmin on the GoDaddy side.

    • cPanel → phpMyAdmin → select the new database → Import → choose the .sql file → Go
    • phpMyAdmin's upload limit is the usual failure point; if the file is too large, split it or import over SSH
    • Wait for the success message before moving on — a partial import leaves a site that half works
  7. 7At GoDaddy

    Update wp-config.php with the new credentials

    The site will not connect until wp-config.php names the GoDaddy database, user and password. On GoDaddy cPanel 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 GoDaddy

    Test on a temporary URL before you touch DNS

    This is the step that separates a calm migration from a bad one. Load the GoDaddy copy while the live site is still served by Bluehost, and fix what is broken with no audience watching.

    • Use the temporary URL or IP that GoDaddy provides for the hosting account
    • Better: edit your local hosts file to point the real domain at GoDaddy's IP, so WordPress renders with the correct domain and you catch redirect loops
    • Click through the site properly — forms, logins, checkout, an image deep in an old post
    hosts file entry (macOS/Linux: /etc/hosts)
    203.0.113.10  example.com www.example.com
  9. 9At GoDaddy

    Fix the predictable breakage

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

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

What goes wrong

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

  • Managed Hosting for WordPress is a different job

    Can cause downtime

    If you bought GoDaddy's Managed Hosting for WordPress rather than cPanel hosting, ignore the File Manager route — there is no cPanel and no phpMyAdmin. Use GoDaddy's importer, which installs the ManageWP Worker plugin on your Bluehost site and pulls it across. It needs the Bluehost site to be publicly reachable for the whole process, so run it before you change any DNS.

  • Hidden files are silently skipped

    Can cause downtime

    .htaccess, .user.ini and similar dotfiles do not appear in File Manager until you enable hidden files, and they do not get included in a zip you build 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 at Bluehost are not in public_html and are not in the database. If you use Bluehost email, that is a separate migration — download the mail via 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 proper 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 GoDaddy'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 — which proves .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 Bluehost site
  • The GoDaddy 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 Bluehost site continues serving as it always has. Delete the GoDaddy 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 GoDaddy copy is tested on a temporary URL while Bluehost still serves the public, there is no window where nothing answers. The only care needed is at cutover: avoid publishing content on the Bluehost site during the propagation window, since those posts live in a database you have already copied and will be lost.

Does GoDaddy migrate the site for me?

GoDaddy sells a paid Website Migration service, and its Managed Hosting for WordPress product includes an automatic importer. Neither covers email, DNS records or the registrar transfer — those remain yours to do, and they are the parts that cause outages.

What about my SSL certificate?

Certificates do not transfer. GoDaddy 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 on the GoDaddy side as soon as DNS points there, and check that the site's own settings still force HTTPS.

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 Bluehost to GoDaddy moves regularly and can tell you what is actually blocking it.

← All Bluehost to GoDaddy stepsMigration guide tool

CallTextMessage