Moving to a Better Host: A Practical WordPress Migration Guide
Your site just went down. Not at 3am when nobody's watching. During the product launch you spent three weeks building toward. You open a support ticket with your host. An automated reply confirms it was received. Six hours later, a human finally responds with a script that doesn't apply to your problem.
That's not bad luck. That's how budget shared hosting works. You're on a server crammed with thousands of other sites, and when something breaks, you're in a queue.
If you've hit that point (or you're getting close), this guide walks you through every step of moving your WordPress site to a host that actually works. From backing up your files to flipping your DNS, done right, you won't lose your SEO rankings or a single customer. Here's exactly how to migrate safely.
What staying put actually costs you
This is the part most migration guides skip. They jump straight to the how-to without explaining why this decision matters more than most people think.
Let's be concrete. According to research by Amazon and Google, a one-second delay in page load time reduces conversions by 7%. If your site makes $5,000/month and loads in 4 seconds instead of 2, you're leaving roughly $700/month on the table. That's not a rounding error. It's $8,400/year going to your competitor because your shared server is overloaded.
And that's on a normal day. What about when a neighboring site on your server gets a traffic spike and drags everyone down with it? Or when Google starts penalizing your site in search rankings because Core Web Vitals are failing? Budget hosts don't tell you this is happening. You just notice, gradually, that organic traffic is slipping.
Then there's what you're not getting. No staging environment means every plugin update is a live experiment on your production site. No daily backups means one bad update could erase weeks of work. No real support means when something breaks, you're Googling it yourself at midnight.
Small businesses take the hit hardest here. You don't have a developer on retainer. You don't have a sysadmin. You have you, trying to run a business, and a hosting provider that treats your $8/month as not worth proper attention.
The irony is that the "cheap" host is usually the expensive one.
Before you start: pre-migration checklist
Don't touch anything until you've run through this. Skipping steps here is responsible for 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 any custom wp-config.php settings you've changed
**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 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 your top 20 traffic pages from Google Analytics
- ☐ Crawl your site with Screaming Frog (free up to 500 URLs) and export all URLs
This baseline is your insurance policy. If anything looks off post-migration, you have a clean record of how things looked before.
Step 1: Choose your new host
Before migrating, you need somewhere worth going. "Managed WordPress hosting" means different things to different providers, so here's what to actually 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 meaningfully improves performance |
| **WordPress-specific caching** | Built-in beats adding another plugin |
| **Free migration assistance** | They do the heavy lifting, not you |
| **24/7 support with fast response** | Someone picks up when your site breaks at 2am |
| **No bandwidth throttling** | Traffic spikes shouldn't crash your site |
One thing I see SMB owners get wrong here: they pick based on price and move to another shared host with a better promo rate. Six months later, same problems. Managed WordPress hosting costs more than shared, but the gap in performance, reliability, and actual support is not subtle.
**If you're in this situation right now:** Hyperscale handles migrations in under 24 hours with zero downtime. You don't touch anything — we move the files, the database, handle DNS coordination, and test everything before going live. Our average support response time is 30 minutes. Start your free migration →
If you'd rather 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: UpdraftPlus (free, recommended)**
1. Install and activate UpdraftPlus from the WordPress plugin directory
2. Go to Settings → UpdraftPlus Backups
3. Click **Backup Now**
4. Check both "Include your database" and "Include your files"
5. Once complete, download all backup files to your local computer
6. Store a second copy in cloud storage — Google Drive, Dropbox, or S3
**Option B: Manual 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 command-line users)**
# 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/
One important note: store your backup somewhere other than your current host. If the host fails mid-migration, you need to access that backup from anywhere.
Step 3: Set up your new hosting account
Once you've signed up with your new host:
1. **Create a new WordPress installation** — most managed hosts do this automatically, or via a one-click installer
2. **Match your current PHP version** — avoid compatibility surprises during migration; you can upgrade after
3. **Set up your database** — note the database name, username, password, and host (you'll need these for wp-config.php)
4. **Get your staging URL** — most managed hosts provide a temporary URL like `username.staging.hostdomain.com` so you can test before going live
The staging URL is where you'll be working until you're ready to flip DNS. Don't skip this setup.
Step 4: Migrate your content
**Option A: Migration plugin (easiest)**
All-in-One WP Migration is the most reliable free option for most sites:
1. On your **old site**: Install All-in-One WP Migration → Export → File → Download
2. This produces a single `.wpress` file with everything
3. On your **new site**: Install All-in-One WP Migration → Import → Upload the `.wpress` file
4. Wait for the import (5–30 minutes depending on site size)
5. Log in at your staging URL to confirm everything transferred correctly
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**
1. Upload your WordPress files to the new host via FTP or SFTP
2. Import your database via phpMyAdmin on the new host
3. Update `wp-config.php` with 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' );
4. If your site URL is changing (e.g., 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. A half-hour of thorough testing here prevents hours of post-launch firefighting.
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, run 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 pre-migration baseline
**SEO checks:**
- ☐ Verify your permalink structure matches the old site (Settings → Permalinks → Save Changes)
- ☐ Check that robots.txt isn't 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 URLs are changing (HTTPS migration, restructured slugs), set up 301 redirects **before** you flip DNS. A 301 permanently tells search engines a page has moved, which preserves your SEO rankings.
Add to your `.htaccess` file in the WordPress root directory:
# 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 keeping your URLs the same (just changing hosts), you don't need new redirects. Your existing `.htaccess` moved with the content. Just verify it's intact.
Step 7: Update DNS and go live
Once testing is complete:
1. **Log in to your domain registrar** (GoDaddy, Namecheap, Google Domains, etc.)
2. **Update your A record** to point to your new host's IP address
3. **Update CNAME records** if applicable (www subdomain, etc.)
4. **Leave MX records alone** unless your new host is also handling email
DNS propagation typically takes 1–4 hours 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 the new one. This is normal. Keep your old hosting account active for at least 48 hours after the DNS change — don't cancel it immediately.
**Not sure if you're ready to switch?** Free migration removes the risk. Hyperscale's team moves your entire site — files, database, DNS, SSL — while keeping your old site live until the new one is confirmed working. If anything goes wrong, we roll back and try again. Here's how free migration works →
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 is active and HTTPS is working
- ☐ Deactivate migration plugins (you don't need them anymore)
- ☐ Cancel your old hosting account (after 48+ hours)
Common migration mistakes
**Forgetting to flush permalinks.** After migration, go to Settings → Permalinks → Save Changes — even without making any changes. This regenerates the `.htaccess` rewrite rules and fixes most 404 errors. Every time. This is a mistake I see SMBs make on almost every self-managed migration.
**Cancelling old hosting immediately.** Wait at least 48 hours. If something goes wrong, you want the old site as a fallback.
**Skipping the staging test.** The staging URL exists for a reason. Use it thoroughly before touching DNS.
**Ignoring database table prefix.** If your old site used a custom prefix (not `wp_`), make sure that's reflected in your new `wp-config.php` or nothing will load.
**Not checking email.** If email was hosted with your old provider, incorrect MX record changes will break it. Verify email works after migration.
What Hyperscale does — and why it's different
We don't offer shell access on standard plans. That's a deliberate choice, not an oversight. Shell access opens attack vectors that most SMBs don't need and can't safely manage. Everything you need to run, maintain, and grow a WordPress site is available through our control panel, FTP, and the plugin ecosystem. We've found clients are actually more productive without it — fewer "I accidentally broke something" support tickets.
What we do offer:
**Free, managed migration.** Our team moves your site from wherever it is — GoDaddy, Bluehost, SiteGround, anywhere — including database, files, DNS coordination, and post-launch testing. Average completion time is under 24 hours. You don't touch anything.
**Staging environments on all plans.** Test plugin updates, theme changes, and new features before they ever touch your live site.
**Daily automated backups.** One-click restore. If something breaks, you're back up in minutes.
**Real support, fast.** Our average response time is 30 minutes, 24/7. Not a ticket queue. Not a chatbot. A person who knows WordPress.
Most of our customers are migrated and live within 24 hours. Zero downtime. No SEO damage. No data loss.
Ready to make the move?
Migration doesn't have to be the nightmare your last host made it. With the right preparation and the right destination, you can move your site without losing a single ranking or a single customer.
Start your free migration today →
We handle everything: files, database, DNS, SSL, and post-launch testing. You keep running your business. If something goes wrong on our end, we fix it. No extra charges. No excuses. Most sites are live on Hyperscale within 24 hours.
The bad host isn't going to get better. But getting out doesn't have to be hard.
Start your migration → Free. Zero downtime. Done in 24 hours.
**Note on command-line access:** This guide includes command-line examples (WP-CLI, SSH, FTP) for users with shell access to their current host. Hyperscale Hosting does not offer SSH/shell access on standard plans — all migrations, backups, and site management work through web-based tools (FTP, plugins, and our control panel). The technical methods above are optional, for users on more advanced hosting setups.