Moving to a Better Host: A Practical WordPress Migration Guide
Switching web hosts feels overwhelming — until you realize the bigger risk is staying put. Budget shared hosting plans are built for volume, not performance, and when your site starts to suffer, the cost of inaction adds up fast: lost visitors, crawling load times, and support tickets that go unanswered for days. This guide walks you through every step of migrating your WordPress site to a better host, from backing up your files to flipping your DNS — without losing your SEO rankings or your mind.
Why Small Business Owners Switch Hosts
Most small business owners don't switch hosts because they feel like it. They switch because something breaks — and the experience of trying to fix it reveals just how bad things really are.
The complaints are predictable and well-documented across hosting forums and Reddit communities:
- Slow load times that never improve, regardless of "optimization" efforts
- Support that takes hours or days to respond, then offers generic scripted answers
- Shared server slowdowns — your site drags because another site on the same server is getting hammered
- Renewal pricing surprises — that $2.99/month intro rate quietly becomes $14.99/month
- Missing features — no staging environments, no daily backups, no PHP version control
These aren't dealbreakers on day one. But over time, they erode your site's performance, your patience, and your revenue. The average small business website running on budget shared hosting sees page load times two to three times slower than comparable sites on managed WordPress infrastructure — a gap that directly affects bounce rates and conversions.
If you've hit that wall, this guide is your way out.
Before You Start: Pre-Migration Checklist
Don't touch anything until you've run through this checklist. Skipping steps here causes 90% of migration headaches.
Site inventory: - [ ] List all active plugins (Settings → Plugins in WP Admin) - [ ] Note your current PHP version (Tools → Site Health → Info) - [ ] Export your WordPress database (via phpMyAdmin or a plugin) - [ ] Document your current permalink structure (Settings → Permalinks) - [ ] Screenshot your custom wp-config.php settings if you've made changes
DNS & domain prep: - [ ] Log in to your domain registrar and locate your DNS settings - [ ] Note your current A record, CNAME records, and MX records (for email) - [ ] Reduce TTL to 300 seconds (5 minutes) at least 24 hours before migration — this speeds up DNS propagation later
SEO baseline: - [ ] Screenshot your Google Search Console dashboard (current indexed pages, crawl errors) - [ ] Export a list of your top 20 traffic pages from Google Analytics - [ ] Crawl your site with Screaming Frog (free for up to 500 URLs) and export all URLs
This baseline data is your insurance policy. If anything goes wrong post-migration, you'll have a clean record of how things looked before.
Step 1: Choose Your New Host
Before migrating, you need somewhere to go. Not all hosting is equal — and "managed WordPress hosting" means different things to different providers.
When evaluating a new host, look for:
| Feature | Why It Matters |
|---|---|
| Daily automated backups | Recovery takes minutes, not days |
| Staging environment | Test changes before they go live |
| PHP 8.1+ support | Modern PHP dramatically improves performance |
| WordPress-specific caching | Built-in caching beats installing another plugin |
| Free migration assistance | Reduces your migration workload significantly |
| Real 24/7 support | Someone picks up when your site breaks at 2am |
| No bandwidth throttling | Traffic spikes shouldn't crash your site |
Hyperscale Hosting offers all of the above — including free migration for new accounts. If you want to skip the manual process entirely, get started with Hyperscale and our team handles the technical lift for you.
If you prefer to do it yourself, keep reading.
Step 2: Back Up Your Entire Site
Never migrate without a fresh backup. Even if your new host offers migration assistance, make your own backup independently.
Option A: Use UpdraftPlus (free, recommended)
- Install and activate UpdraftPlus from the WordPress plugin directory
- Go to Settings → UpdraftPlus Backups
- Click Backup Now
- Check both "Include your database in the backup" and "Include your files in the backup"
- Once complete, download all backup files to your local computer
- Also store a copy in cloud storage (Google Drive, Dropbox, or S3)
Option B: Manual backup via cPanel/phpMyAdmin
Export your database:
-- In phpMyAdmin, select your WordPress database
-- Click Export → Quick → Format: SQL → Go
-- Save the .sql file to your local machine
Download site files via FTP:
# Using command line (replace with your credentials)
ftp your-server.com
# Navigate to public_html and download everything
mget *
Option C: WP-CLI (for the command-line comfortable)
# Export database
wp db export backup-$(date +%Y%m%d).sql
# Create a zip of the entire site
zip -r site-backup-$(date +%Y%m%d).zip /path/to/wordpress/
Store your backup somewhere other than your current host. If the host fails mid-migration, you want your backup accessible from anywhere.
Step 3: Set Up Your New Hosting Account
Once you've signed up with your new host:
- Create a new WordPress installation — most managed hosts do this automatically, or you can do it via a one-click installer
- Install the same PHP version you're currently running (to avoid compatibility issues during migration — you can upgrade after)
- Set up your database — note the database name, username, password, and host (you'll need this for wp-config.php)
- Configure your staging domain — most managed hosts give you a temporary URL like
username.staging.hostdomain.comso you can test before going live
Step 4: Migrate Your Content
Option A: Use a migration plugin (easiest)
The All-in-One WP Migration plugin is the most reliable free option:
- On your old site: Install All-in-One WP Migration → Export → File → Download
- This creates a single
.wpressfile containing everything - On your new site: Install All-in-One WP Migration → Import → Upload the
.wpressfile - Wait for the import to complete (can take 5–30 minutes depending on site size)
- Log in to your new site at the staging URL to confirm everything transferred
Note: The free version has a 512MB upload limit. For larger sites, use Migrate Guru (free, no size limit) or WP Migrate (premium).
Option B: Manual migration
If you prefer manual control:
- Upload your WordPress files to the new host via FTP or SFTP
- Import your database via phpMyAdmin on the new host
- Update
wp-config.phpwith your new database credentials:
/** The name of the database for WordPress */
define( 'DB_NAME', 'new_database_name' );
/** MySQL database username */
define( 'DB_USER', 'new_database_user' );
/** MySQL database password */
define( 'DB_PASSWORD', 'your_new_password' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
- If your site URL has changed (e.g., you're migrating from HTTP to HTTPS), run a search-replace on the database:
# Using WP-CLI (run on new server)
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --all-tables
Step 5: Test Everything Before Going Live
This is the step most people rush. Don't.
With your site running on the staging URL:
Functionality checks: - [ ] Log in to WP Admin — does everything load? - [ ] Check all menus and navigation links - [ ] Submit a test contact form - [ ] If WooCommerce: add a product to cart, go through checkout (use test payment mode) - [ ] Test your search functionality - [ ] Check that images load correctly - [ ] Test on mobile
Performance checks: - [ ] Run your staging URL through Google PageSpeed Insights - [ ] Check GTmetrix for load time and performance score - [ ] Compare against your baseline from pre-migration
SEO checks: - [ ] Verify your permalink structure matches your old site (Settings → Permalinks → Save Changes) - [ ] Check that robots.txt is correct and not blocking search engines - [ ] Confirm your Yoast/RankMath settings transferred correctly - [ ] Make sure your XML sitemap generates properly
Step 6: Set Up 301 Redirects
If any of your URLs are changing (HTTPS migration, restructured slugs, etc.), set up 301 redirects before you flip the DNS. A 301 redirect permanently tells search engines that a page has moved, preserving your SEO juice.
Create a .htaccess file in your WordPress root directory (or add to the existing one):
# Redirect HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect old URL structure to new (example)
# Redirect 301 /old-page/ /new-page/
# Redirect old blog path to new path
# RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]
If you're not changing URLs (just changing hosts), you don't need to add redirects — your existing .htaccess file moved with your content. Just verify it's intact.
Step 7: Update DNS and Go Live
Once testing is complete and you're satisfied:
- Log in to your domain registrar (GoDaddy, Namecheap, Google Domains, etc.)
- Update your A record to point to your new host's IP address
- Update CNAME records if applicable (www, etc.)
- Do not change MX records unless your new host is also handling your email
DNS propagation typically takes 1–4 hours (faster if you reduced TTL in advance, up to 48 hours if you didn't).
During propagation, some visitors will hit the old host and some will hit the new one. This is normal. Keep your old hosting account active for at least 48 hours after DNS change — don't cancel it immediately.
Step 8: Post-Migration Cleanup
After DNS has propagated (check via dnschecker.org):
- [ ] Flush your WordPress cache on the new host
- [ ] Clear browser cache and confirm your site loads from the new server
- [ ] Submit your sitemap to Google Search Console
- [ ] Monitor Google Search Console for crawl errors over the next 7 days
- [ ] Check that SSL certificate is active and HTTPS is working
- [ ] Deactivate migration plugins (you no longer need them)
- [ ] Cancel your old hosting account (after 48+ hours)
Common Migration Mistakes to Avoid
Forgetting to flush permalinks. After migration, always go to Settings → Permalinks → Save Changes — even without making any changes. This regenerates the .htaccess rewrite rules and fixes most 404 errors.
Cancelling old hosting immediately. Wait at least 48 hours. If something goes wrong, you want the old site available as a fallback.
Migrating without testing. Your staging URL exists for a reason. Use it thoroughly.
Ignoring your database table prefix. If your old site used a custom table prefix (not wp_), make sure that's reflected in your new wp-config.php.
Not checking email. If your email was hosted with your old provider, updating your MX records incorrectly will break it. Verify email still works after migration.
What Hyperscale Does Differently
At Hyperscale, we understand that migrating your website is stressful enough without dealing with unhelpful support, confusing dashboards, or technical gotchas that nobody told you about.
That's why we offer:
- Free, managed migration — our team migrates your site for you, including database, files, DNS coordination, and post-launch testing
- Staging environments included on all plans — test before you touch production
- Daily automated backups — so if anything goes sideways, you're covered
- Real human support, 24/7 — not a chatbot, not a ticket queue with 48-hour response times
Most of our customers are migrated and live within 24 hours. No drama, no data loss, no SEO damage.
Ready to Make the Move?
Migration doesn't have to be a nightmare. With the right preparation, the right host, and this guide in hand, you can move your site without losing a single ranking or a night's sleep.
Get started with Hyperscale → — free migration included. We'll handle the technical side while you focus on your business.
Images needed: Migration checklist screenshot; DNS settings example; UpdraftPlus backup screen; All-in-One WP Migration export screen; Staging environment preview
Note on command-line access: This guide includes some command-line examples (like WP-CLI and SSH) for users who have shell access to their hosting accounts. Hyperscale Hosting does not offer SSH/shell access on standard plans. All migrations, backups, and site management can be completed through standard web-based tools (FTP, plugins, and our control panel) without requiring shell access. The technical methods shown here are optional and for users with more advanced hosting setups.