Moving your WordPress site from Bluehost to a new hosting provider can feel overwhelming, especially if you’re worried about breaking something. Thousands of people successfully migrate their sites every day, and with the right approach, you can too.
This guide will walk you through the entire process step-by-step, explaining your options and helping you avoid common pitfalls. By the end, you’ll have a clear roadmap to move your site safely to a better hosting environment.
Why People Migrate from Bluehost
If you’re reading this, you’re probably experiencing some frustrations with Bluehost. Here are the most common reasons people decide to make the switch:
Performance Issues: Many users report extremely slow loading times, with homepages taking 30+ seconds to load. Bluehost’s shared hosting gets severely impacted when other sites on the same server experience traffic spikes.
Process Limits: Bluehost limits accounts to 25 concurrent processes, causing “Error 429: Too many requests” messages even for moderately active sites that work fine elsewhere.
Support Quality: Bluehost markets heavily, but their support quality has declined over the years. Many users report outsourced support that tends to blame customers rather than solve problems.
EIG Ownership: As part of Endurance International Group (EIG), Bluehost has followed the pattern of buying good hosting companies and gradually reducing service quality while maintaining marketing spend.
Migrating your site is a normal part of website ownership. Don’t let fear of the technical process keep you stuck with poor performance.
Preparation: Before You Start
Before starting the migration process, make sure you’re fully prepared. Proper preparation prevents most migration headaches.
1. Choose Your New Hosting Provider
If you haven’t already selected a new host, consider these migration-friendly options:
- [SiteGround](https://www.siteground.com/): Offers free migration assistance and has excellent performance reviews
- [DreamHost](https://www.dreamhost.com/): Provides automated migration tools and has been hosting WordPress sites since 1997
- Kinsta: Premium managed WordPress hosting with free migrations
- WP Engine: Managed WordPress hosting with automated migration tools
2. Lower Your DNS TTL (Time To Live)
This is a crucial step many people skip. Log into wherever your domain’s nameservers are currently managed (likely Bluehost) and:
1. Find your DNS settings
2. Lower the TTL for all records to 300 seconds (5 minutes)
3. Wait 24-48 hours before starting your migration
This creates faster propagation when you switch to your new host.
3. Document Your Current Setup
Before making any changes, document:
- Your current domain registrar (where you bought the domain)
- Your hosting provider (Bluehost)
- Any email services connected to your domain
- External services using your domain (like CDNs or email services)
- Any subdomains in use
4. Backup Everything Yourself
You’ll be creating backups during migration, but create your own backup first:
1. In your Bluehost dashboard, click “Advanced” to access cPanel
2. Use File Manager to download your entire `public_html` folder
3. Use phpMyAdmin to export your database
4. Save these backups in a safe location on your computer
Method Options: Choose Your Migration Path
You have three main migration approaches. Choose based on your comfort level with technical tasks and the complexity of your site.
Option 1: Migration Plugin (Recommended for Most People)
Best for: Sites under 1GB, users who want minimal technical involvement
Time required: 2-4 hours
Difficulty: Beginner-friendly
Migration plugins handle most of the complex work for you. Here are the top options:
Migrate Guru (Free): Completely free with no hidden costs. Uses BlogVault’s servers so it won’t slow down your current site. Handles sites up to 200GB and works with 5,000+ hosting providers. The only limitation is 5 different sites per month.
All-in-One WP Migration (Free/Paid): User-friendly with a drag-and-drop interface. The free version has a 256MB limit, but paid extensions are reasonably priced.
Duplicator Pro ($49.50/year): The most robust option. Handles large sites, includes server-to-server transfers, and provides AES-256 encryption. Best for complex sites or e-commerce stores.
Option 2: New Host Migration Service (Easiest)
Best for: Anyone willing to wait 24-48 hours for completion
Time required: Minimal hands-on time
Difficulty: Easiest
Many quality hosting providers offer free migration services:
- SiteGround: Free automated migration tool plus expert assistance
- Kinsta: Free migrations with all plans, handled by migration specialists
- WP Engine: Automated migration system with fallback to manual assistance
- Cloudways: Free migration with dedicated migration team
Option 3: Manual Migration (Full Control)
Best for: Large or complex sites, developers, users who want complete control
Time required: 4-8 hours
Difficulty: Advanced
Manual migration involves downloading your files and database yourself, then uploading to the new host. We’ll cover this method in detail.
Step-by-Step Migration Process
Using Migration Plugins (Recommended Method)
Here’s the process using Migrate Guru, since it’s free and handles large sites well:
Step 1: Install Migrate Guru
1. Log into your WordPress admin dashboard
2. Go to Plugins > Add New
3. Search for “Migrate Guru”
4. Install and activate the plugin
Step 2: Start Migration
1. In your WordPress dashboard, find Migrate Guru in the sidebar
2. Click “Migrate This Site”
3. Select your destination hosting provider from the list
4. Enter your new hosting details (cPanel credentials, FTP details, etc.)
Step 3: Let the Plugin Work
Migrate Guru will:
- Create a complete backup of your site
- Transfer files to the new server
- Import your database
- Update URLs to match your new hosting
This process takes 1-3 hours depending on site size.
Step 4: Test Your Migrated Site
Once the plugin reports completion:
1. Access your site on the new host (you’ll get a temporary URL)
2. Test all major functionality
3. Verify your admin login works
4. Check that forms submit correctly
Manual Migration Process
If you prefer complete control or have a complex site, here’s the manual approach:
Step 1: Create New Database
In your new host’s cPanel:
1. Go to MySQL Databases
2. Create a new database (remember the name)
3. Create a database user
4. Add the user to the database with all privileges
5. Note down: database name, username, and password
Step 2: Export Your Bluehost Database
1. Access Bluehost cPanel through the Advanced tab
2. Open phpMyAdmin
3. Select your WordPress database
4. Click Export tab
5. Choose Quick export method and SQL format
6. Click Go to download the .sql file
Tip: For large databases, compress the file to .zip format for faster transfer.
Step 3: Download Your Website Files
Using Bluehost File Manager:
1. In cPanel, click File Manager
2. Navigate to your `public_html` folder
3. Select all files and folders
4. Right-click and choose Compress to create an archive
5. Download the compressed file
Alternatively, use FTP with FileZilla:
1. Connect to your Bluehost FTP (details in cPanel > FTP Accounts)
2. Navigate to `public_html`
3. Download all files, including hidden `.htaccess` file
Step 4: Upload to New Host
1. Access your new host’s File Manager or FTP
2. Navigate to the `public_html` folder
3. Upload your compressed website files
4. Extract the archive if needed
Step 5: Import Database
1. Access phpMyAdmin on your new host
2. Select the database you created in Step 1
3. Click Import tab
4. Choose your .sql file and click Go
Step 6: Update wp-config.php
Edit your `wp-config.php` file to use the new database credentials:
define('DB_NAME', 'your_new_database_name');
define('DB_USER', 'your_new_username');
define('DB_PASSWORD', 'your_new_password');
define('DB_HOST', 'localhost');
Step 7: Update URLs in Database
Use the Better Search Replace plugin or run these SQL commands in phpMyAdmin:
UPDATE wp_options SET option_value = replace(option_value, 'http://old-domain.com', 'http://new-domain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://old-domain.com', 'http://new-domain.com');
Replace `old-domain.com` and `new-domain.com` with your actual domains.
Domain Management: Transfer vs DNS Pointing
You have two options for handling your domain:
Option A: Update Nameservers (Faster)
Keep your domain registered at Bluehost but point it to your new host:
1. Get nameserver information from your new host
2. In Bluehost, go to Domains > My Domains
3. Click the dropdown next to your domain > DNS
4. Update nameservers to your new host's nameservers
5. Wait for propagation (4-48 hours)
Option B: Transfer Domain (Complete Migration)
Move your domain registration to a new registrar:
1. Unlock your domain in Bluehost (Domains > Manage > Security)
2. Request EPP/Authorization code (sent to registrant email)
3. At your new registrar, initiate the transfer
4. Enter the EPP code when prompted
5. Approve the transfer via email
6. Wait 5-7 days for completion
Important: You cannot transfer a domain within 60 days of registration, previous transfer, or registrant information changes. If you're within this window, use Option A first.
Post-Migration Verification
Once your migration is complete, thorough testing confirms everything works correctly:
Immediate Testing Checklist
Admin Access:
- [ ] Log into wp-admin successfully
- [ ] Test password reset functionality
- [ ] Verify all user roles can access appropriate areas
Content Integrity:
- [ ] Post count matches pre-migration numbers
- [ ] Images display correctly
- [ ] Internal links work properly
- [ ] Comments and their threading are intact
Functionality Testing:
- [ ] Submit contact forms (check email delivery)
- [ ] Test newsletter signups
- [ ] Verify e-commerce checkout process (if applicable)
- [ ] Check all menu items and footer links
Technical Verification:
- [ ] SSL certificate shows padlock icon
- [ ] No mixed content warnings
- [ ] XML sitemap accessible
- [ ] robots.txt not blocking crawlers
Performance Comparison
Document your site's performance before and after migration:
- Test loading speed with GTmetrix or Pingdom
- Check Core Web Vitals scores in Google PageSpeed Insights
- Monitor Time to First Byte (TTFB) improvements
Sites see significant performance improvements when leaving Bluehost's shared hosting.
SEO Verification
- Submit your new sitemap to Google Search Console
- Check for any old domain references in your database
- Verify meta descriptions and title tags are intact
- Monitor search rankings for any temporary dips
Troubleshooting Common Issues
Well-planned migrations can still hit snags. Here are solutions to the most common problems:
White Screen of Death
Cause: Usually PHP memory limits or plugin conflicts
Solution:
1. Increase memory limit in wp-config.php: `ini_set('memory_limit', '256M');`
2. Disable all plugins via FTP by renaming the plugins folder
3. Check PHP version compatibility
Database Connection Error
Cause: Incorrect database credentials in wp-config.php
Solution:
1. Verify database name, username, and password
2. Check if database host is 'localhost' or specific server
3. Ensure database user has proper privileges
Images Not Loading
Cause: Incomplete file transfer or old URLs in database
Solution:
1. Re-upload wp-content/uploads folder
2. Run search-replace for image URLs
3. Regenerate thumbnails with a plugin
SSL/Mixed Content Warnings
Cause: Some resources loading over HTTP instead of HTTPS
Solution:
1. Run search-replace to change HTTP URLs to HTTPS
2. Check for hardcoded HTTP links in theme files
3. Use tools like WhyNoPadlock.com to identify mixed content
Login Redirect Loops
Cause: Cached redirects or cookie issues
Solution:
1. Clear browser cookies for your site
2. Check WP_HOME and WP_SITEURL in wp-config.php
3. Clear any caching plugins
Broken Permalinks
Cause: Missing or incorrect .htaccess file
Solution:
1. Go to Settings > Permalinks in WordPress admin
2. Click "Save Changes" to regenerate .htaccess
3. Manually create .htaccess if needed with standard WordPress rules
Final Steps and Cleanup
Once you've verified everything works correctly:
1. Cancel Old Hosting: Wait at least 48 hours after successful migration, then cancel your Bluehost hosting
2. Update External Services: Notify any services connected to your old hosting about the change
3. Set Up Monitoring: Configure uptime monitoring and automated backups on your new host
4. Configure Caching: Set up appropriate caching plugins for your new environment
5. Delete Temporary Files: Clean up any staging or temporary files from both old and new hosts
You've Done It!
You've successfully migrated your WordPress site from Bluehost. The technical part is complete, but DNS changes can take up to 48 hours to propagate fully worldwide.
Monitor your site for the next few days and contact your new hosting provider's support if you notice any issues. Quality hosts are happy to help with post-migration tweaks.
Your site should now be faster, more reliable, and backed by better support. You've taken an important step in your website's journey, and the improved performance will benefit both you and your visitors going forward.
Remember to keep regular backups of your site in its new home, and don't be afraid to make this kind of change again in the future if needed. You now have the knowledge and experience to migrate confidently.