First migration I ever did? Took my site offline for eighteen hours. Forgot to check the TTL on my DNS records. Classic rookie mistake.

Since then I've moved maybe forty or fifty sites. Tiny blogs, WooCommerce stores doing real volume, that kind of thing. You copy files, test on a staging URL, update DNS when everything looks good. That's basically it.

Pre-Migration Checklist

Before you touch anything, grab a coffee and work through this list. Trust me. Ten minutes of prep work saves hours of headaches later.

  • [ ] Write down your current setup: What PHP version are you running? Which plugins? Any weird custom stuff the last developer added? Screenshot everything.
  • [ ] Make sure your new host can handle it: Check they support the same PHP version (or newer), have all the extensions you need, and enough storage space for your files.
  • [ ] Find your DNS login: Cloudflare? Your domain registrar? Wherever it is, make sure you can actually log in before migration day. Nothing worse than being locked out.
  • [ ] Pick a quiet time: Late Sunday night works well for most sites. You want minimal visitors while you are in the middle of things.
  • [ ] Turn off caching plugins: WP Rocket, W3 Total Cache, whatever you use. Disable it temporarily. Caching and migrations do not play nice together.
  • [ ] List everything tied to your old server: SSL certs, CDN settings, email accounts. You do not want to realize you forgot something after the switch.

Step 1: Backup Everything

This is not optional. I do not care if your host has automatic backups. I do not care if you backed up last week. Make a fresh backup right now, and download it to your computer. When something goes sideways at 2 AM, you will thank yourself.

For WordPress Sites

The Easy Way: Use a Plugin

UpdraftPlus or All-in-One WP Migration are both solid choices. Install one, hit the backup button, and download the file to your laptop. Takes maybe five minutes. These same plugins can restore everything on your new server too.

The Old-School Way: Manual Backup

Connect with FileZilla or use your host's File Manager. Download everything from public_html. Then hop into phpMyAdmin and export your database. Save both somewhere safe. Not just on your desktop that your cat likes to walk across.

Your Host's Backup Tool

Most decent hosts offer one-click backups these days. Use it, but download the file to your own storage. Server backups have a funny way of disappearing when you actually need them.

One More Thing

Actually verify your backup works. Check the file sizes look reasonable. Open the database export and make sure it is not just error messages. A broken backup is worse than no backup because you think you are safe when you are not.

Step 2: Set Up New Hosting

Now we get the new place ready. Think of it like setting up an apartment before you move in. You want the lights working and the fridge plugged in before the moving truck arrives.

What You Need to Do

  • Sign up for your new host if you have not already (obviously)
  • Add your domain to the account. But do not touch DNS yet. Seriously. Leave it alone for now.
  • Create a fresh database and write down the name, username, and password somewhere. You will need these later.
  • Set the PHP version to match what you are running now, or go higher if your site supports it
  • Ask for a temporary URL. Most hosts give you something like yoursite. Tempurl. Host so you can test before going live

Quick tip: a lot of hosts will migrate your site for free if you ask nicely. SiteGround, Cloudways, and others have migration teams who do this all day. If you are paying for hosting anyway, might as well let the experts handle the heavy lifting.

SiteGround: Free Migration Included Expert team handles your move

Step 3: Transfer Files and Database

Alright, here is where the actual moving happens. You have got options depending on how hands-on you want to get.

Getting Your Files Over

FTP/SFTP Upload

Fire up FileZilla, connect to your new server, and start uploading. Drop everything into public_html or www. Fair warning though. If your site has a lot of images or files, you might be waiting a while. I once had a 15GB site that took the better part of a day to transfer.

File Manager Upload

Got cPanel? Upload your backup as a ZIP file through File Manager and extract it on the server. Way faster than dragging thousands of individual files over FTP. This is my go-to method for most migrations.

Plugin Restore

Install a fresh WordPress on the new server, add your migration plugin, and import your backup file. All-in-One WP Migration makes this almost stupidly simple. Three clicks and done.

Importing Your Database

If you are doing this manually (not using a plugin), here is the drill:

  1. Log into phpMyAdmin on your new server
  2. Click on the empty database you created earlier
  3. Hit the "Import" tab at the top
  4. Choose your .sql backup file and click "Go"
  5. Wait for it to finish (big databases can take a minute)

Do Not Forget This Part

If your database credentials changed (they probably did), you need to update wp-config. Php. Open it up and change these lines to match your new setup:

define('DB_NAME', 'new_database_name');
define('DB_USER', 'new_database_user');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost');

Miss this step and you will get the dreaded "Error establishing database connection" screen. Ask me how I know.

Step 4: Test on Temporary URL

This is where patience pays off. Do not rush to change your DNS the second files are transferred. Test everything first. Your visitors are still happily using your old server while you poke around the new one.

How to Access Your New Site

Use the Temporary URL

Your host should have given you a temporary address like yoursite. Tempurl. Host or something similar. Pop that into your browser and see if your site loads. This is the easiest way to test.

Edit Your Hosts File (Advanced)

Want to test with your actual domain? You can edit your computer's hosts file to point yourdomain.com to the new server IP. Only you will see the new site. Everyone else still sees the old one. Google "edit hosts file" plus your operating system for instructions.

Things to Actually Check

Do not just glance at the homepage and call it good. Click around. Try to break things.

  • [ ] Does the homepage look right? No weird formatting issues?
  • [ ] Can you access your older blog posts? Check a few random ones.
  • [ ] Do images load properly or are they broken?
  • [ ] Submit a test contact form. Does it go through?
  • [ ] Can you log into wp-admin? Sometimes permissions get weird.
  • [ ] If you have a store, try the full checkout process
  • [ ] Look for the padlock icon . SSL working?
  • [ ] Click around and watch for any 404 errors

Step 5: Update DNS Settings

Everything working on the test site? Good. Now comes the moment of truth. Pointing your domain to the new server. Take a deep breath. This part sounds scarier than it actually is.

The Actual Steps

  1. Log into wherever your DNS lives (Cloudflare, your domain registrar, wherever)
  2. Find the DNS records section. Usually called DNS Management or something similar
  3. Look for the A record pointing to your old server's IP and change it to the new one
  4. Update any CNAME records if your host tells you to
  5. Pro move: lower your TTL to 300 seconds a day before migrating. This makes the switch faster.
  6. Save everything and wait

About That Wait Time

DNS propagation is the internet equivalent of "it will get there when it gets there." Technically it can take up to 48 hours, but in practice most people see changes within an hour or two. During this window, some visitors hit the old server while others hit the new one. Totally normal. This is why we keep both running.

Obsessively checking if DNS has propagated yet? DNSChecker. Org shows you propagation status from servers around the world. Fair warning. You will probably refresh it fifty times.

Step 6: Monitor After Migration

You are not done yet. I know, you want to close your laptop and celebrate, but give it a few more days of attention. Most migration problems show up in the first 48-72 hours.

Keep an Eye on These Things

  • [ ] Double-check SSL is working. That padlock should be there on every page
  • [ ] Check Search Console for any new crawl errors
  • [ ] Set up free uptime monitoring (UptimeRobot takes two minutes)
  • [ ] Run through your site again. Things that worked on the temp URL sometimes break on the real domain
  • [ ] If your email was on the old host, make sure it is still working
  • [ ] Search your content for any hardcoded old URLs that need updating
  • [ ] Turn your caching plugins back on
  • [ ] Clear every cache you can find. Server cache, plugin cache, CDN cache, even your browser cache

Do Not Cancel Your Old Host Yet

I get it. You do not want to pay for two hosting accounts. But keep the old one running for at least two weeks. If something goes wrong, you have a fallback. If you cancel immediately and then realize you missed something, you are stuck scrambling to restore from backups. Not fun.

Common Migration Mistakes

I have seen these mess up perfectly good migrations more times than I can count. Learn from other people's disasters:

"I'll Just Wing It Without a Backup"

Famous last words. Had a client once who skipped the backup "to save time." Then something corrupted during transfer. Guess how their day went. Just make the backup.

Switching DNS Before Testing

You get excited, the files are transferred, and you just go for it. Then your visitors see a broken site while you scramble to fix whatever went wrong. Test first. Always test first.

Forgetting wp-config. Php

Your database credentials changed. You forgot to update the config file. Now your site just says "Error establishing database connection" and you are panicking. Been there. Double-check those credentials.

Canceling Old Hosting Immediately

DNS is still pointing some visitors to the old server. You cancel it. Now they get nothing. Keep paying for both accounts for a couple weeks. It is not that expensive compared to the potential headache.

Completely Forgetting About Email

If your email runs on your web hosting, it needs to move too. People forget this constantly. Suddenly your business email stops working and you are missing important messages. Consider using Google Workspace or Microsoft 365 instead. Keeps email separate from hosting and saves this headache in future migrations.

When to Hire a Professional

Look, I wrote this whole guide, but I am also the first to admit that sometimes you should just pay someone else to do it. Here is when hiring help makes sense:

  • Your site is massive. We are talking 10GB+ of files or a database that makes phpMyAdmin choke
  • You have a WooCommerce store with orders coming in constantly (migration timing gets tricky)
  • The previous developer did weird custom stuff to the server that you do not fully understand
  • Your business loses real money every minute the site is down
  • The words "FTP" and "database" make you break out in a cold sweat

Good news: most quality hosts include free migration with your plan. Cloudways and SiteGround both have teams who do this stuff all day every day. If you are already paying for hosting, check if migration is included before you start DIY-ing it. Professional migrations typically run $50-200 for standard WordPress sites if you need to pay separately.

Frequently Asked Questions

Frequently Asked Questions

A simple WordPress site can be migrated in 1-2 hours. Complex e-commerce sites with large databases may take 4-8 hours. DNS propagation (the time for your domain to point to the new server) can take up to 48 hours, though it is usually much faster.
Not if done correctly. By testing on a temporary URL before updating DNS, and keeping your old hosting active during DNS propagation, you can achieve zero downtime. The technique is called "parallel hosting."
No. Migration involves copying your existing WordPress installation (files + database) to the new server. Everything transfers including themes, plugins, settings, and content. You should not need to reinstall anything.
If your email is hosted with your web hosting, you will need to migrate email accounts too. Consider using dedicated email hosting (Google Workspace, Microsoft 365) to keep email separate from web hosting and avoid this complexity.
No. Keep your old hosting active for at least 1-2 weeks after migration. This ensures you have a backup if something goes wrong and allows DNS to fully propagate. Cancel only after confirming everything works correctly.
A properly executed migration should not affect SEO. Ensure all URLs remain the same, 301 redirects are in place for any changed URLs, your sitemap is updated, and you resubmit to Google Search Console. Temporary minor fluctuations are normal.

Wrapping Up

Migrated maybe thirty sites over the years. Lost one to a corrupted database back in 2019. Forgot to verify the backup was actually complete before deleting the old server. Learned that lesson the expensive way.

These days my process is pretty simple. Backup, transfer, test on a temp URL, flip DNS, keep the old host running for two weeks minimum. Most migrations take a few hours. The waiting on DNS propagation takes longer than the actual work.

If you skipped to the end: don't wing it. Back up everything. Test before going live. And seriously, don't cancel your old hosting until you're absolutely sure nothing's broken. That's the whole thing really.

Fresh hosting is also a good excuse to finally set up proper caching. Your site's already down for maintenance in your head. Might as well fix everything while you're at it.

Ready to Move?

SiteGround includes free expert migration with every hosting plan. Their team handles the heavy lifting while you grab lunch.