SKR Tips logo SKR TipsWebsite tips that actually work
WordPress

How to Migrate WordPress to a New Host Without Downtime

Your current host is slow, expensive or about to double its renewal price, and you want out. The fear is that you will migrate WordPress to a new host and spend a weekend staring at a broken site, missing images and a contact form that no...

A laptop on a desk showing a WordPress dashboard beside a server rack diagram on a notepad, an external drive plugged into the laptop

Your current host is slow, expensive or about to double its renewal price, and you want out. The fear is that you will migrate WordPress to a new host and spend a weekend staring at a broken site, missing images and a contact form that no longer sends anything. That fear is reasonable, but almost every migration failure comes from doing the steps in the wrong order, not from anything technically difficult.

I have moved more than forty WordPress sites, from five-page business brochures to busy community sites with 30,000 comments. The method below keeps the old site live until the new one is proven, so visitors never see a gap.

What you need before you migrate WordPress to a new host

Collect these before touching anything. Missing one of them halfway through is how a one-hour job becomes a lost evening.

  • Logins for the old host, including the control panel, file manager or SFTP, and database access through phpMyAdmin or similar.
  • Logins for the new host, with an empty WordPress install or a blank account ready.
  • Access to your domain registrar, which is often a different company from your host. You will change DNS records there.
  • A full, fresh backup of both files and the database, stored on your own computer and not only on the old server.
  • A note of your PHP version and any custom settings in wp-config.php, such as memory limits or table prefixes.

If your current backup routine is one plugin that saves to the same server, fix that first. Our guide on how to back up a WordPress site the right way explains why off-server copies matter, and a migration is exactly the moment you will want one.

Lower the DNS TTL a day early

At your registrar, find the A record for your domain and set its TTL (time to live) to 300 seconds, or the lowest allowed value. Do this 24 hours before the move. When you later point the domain to the new server, the change will spread in minutes rather than the default of up to a day.

Step by step: moving the site

There are two routes. A migration plugin bundles everything into one archive and unpacks it on the new host. A manual move copies the files and database yourself. For sites under about 2 GB, a plugin is quicker. For larger sites or hosts with strict upload limits, the manual route is more reliable.

  1. Put the old site in a soft freeze. Pause new posts and, if you can, close comments for a few hours. Anything published after you export will not exist on the new host.
  2. Export. With a plugin, create the archive and download it. Manually, download the whole wp-content folder by SFTP and export the database as a .sql file.
  3. Import on the new host. Install a clean WordPress, install the same migration plugin and upload the archive. Manually, upload wp-content, create a new database and user, import the .sql file and edit wp-config.php with the new database name, user and password.
  4. Preview before DNS changes. Edit the hosts file on your own computer so your domain points to the new server's IP address. You now see the new copy while everyone else still sees the old one. Many hosts also offer a temporary preview URL.
  5. Test properly. Log in, open ten random posts, check images, submit a form, run a search and visit the admin dashboard. Look at the browser console for mixed content or missing files.
  6. Switch DNS. Change the A record at your registrar to the new IP address. With a low TTL, most visitors will reach the new server within 5 to 30 minutes.
  7. Issue the SSL certificate. Most hosts issue a free certificate automatically once DNS points at them. Confirm the padlock appears and that http redirects to https.
  8. Keep the old hosting for at least a week. If something hidden breaks, you still have a working original to compare against.

Why "just use the free migration service" is not always the safe choice

Many hosts offer to move your site for free, and the common advice is to accept. For a simple site it is usually fine. For anything with custom code, a membership area or a busy forum, I would rather do it myself, and here is the reason.

Free migration teams work through a queue. They copy the site, confirm the homepage loads and close the ticket. They do not know that your event calendar relies on a cron job, that your theme has a hard-coded file path, or that your contact form uses a mail setting the new host blocks. You discover those problems a week later, from a member who could not register.

If you use the free service, treat it as step 2 and step 3 only. Do your own testing, your own DNS switch and your own checks on email and scheduled tasks. You stay in control of the moment the site goes live.

The things that break after a migration

Most sites come across intact. The problems that do appear fall into a predictable short list.

Site emails stop arriving

New hosts often limit the PHP mail function to prevent spam. Password resets and form notifications silently vanish. The fix is to send through an authenticated mail service, which is explained in our guide to setting up WordPress SMTP so site emails arrive.

The homepage loads but every post shows "not found". This usually means the .htaccess file did not copy or the new server uses Nginx. Go to Settings, Permalinks and click Save without changing anything. That rewrites the rules on Apache. On Nginx, ask the host to enable WordPress rewrites.

If you also changed the domain or moved from http to https, run a search and replace on the database with a tool that handles serialized data. A plain text replace in the .sql file can corrupt widget and plugin settings.

Scheduled posts and backups stop running

WordPress cron depends on visits. On a quiet site, or on a host that disables it, scheduled tasks pile up. Set up a real server cron job hitting wp-cron.php every 15 minutes.

After the move: a 48-hour checklist

Once DNS has switched, keep an eye on the site for two days before you cancel the old plan.

  • Check Search Console for crawl errors and a spike in 404 pages.
  • Compare page load times against your notes from the old host. A good move should cut time to first byte by at least 20 percent.
  • Confirm your backup plugin is running on the new host and storing copies off-server.
  • Set up an external monitor so you hear about outages before visitors do. Our guide to uptime monitoring for a small website covers free options that check every five minutes.
  • Download a final full backup from the old host, then cancel it.

Frequently asked questions

Will migrating WordPress to a new host hurt my SEO?

Not if the domain and URLs stay the same. Search engines care about the address and content, not the server behind it. A short burst of downtime or a week of 404 errors can cause a temporary dip, which is why testing before the DNS switch matters.

How long does it take to move a WordPress site?

The copying usually takes 30 minutes to two hours, depending on size. DNS changes reach most visitors within an hour if you lowered the TTL in advance. Plan for a full day including testing, and keep the old host for a week.

Can I migrate WordPress without a plugin?

Yes. Copy the wp-content folder by SFTP, export and import the database, and update wp-config.php with the new database details. It takes a little longer but works on any size of site and avoids upload limits.

SF
Saskia Ferrante

Saskia has built WordPress sites for clients since the early 2010s and tested more themes than she can remember. She edits SKR Tips and writes about themes, builders and plugins.

More posts by Saskia

More in WordPress

01doorganico 084goad 3hot8 4465456 after5internprogram ahandfulofblessings ahmadpc ahomcybersecurity allodialresources annodex antiquesandperiodcollectibles aotc asianworldkashmir beedlectrics bloggertemplatefree bluefeatheragency bodyweightsolution campaign08blog carfixadvisor catstreetcollective cbstvsports cnfanspurchasing committeeof500yearsofdignityandresistance covertopsdjs cs-kaiyuangame cuestacomunicaciontotal cxoutlet dancebetgame deskgearhub destinyvillastay detectmagazine di33 diamondsteelbuildings donmo dyanadropship emarsysfinance emimattl escapechan eskitarih evautoplay everythingweddings-orlando farmzone feedviewerapp foxstudiosscratch gamevui123 gleasongrade greetingsday hacklabasu haskell iw-kaiyun jagoanproperti jilidskripsi joltbusinessfinance juegodepokergratis juegospucca kaeru-festival latestmehndidesigns lestanzediottaviano litemagazines localcommunityhero lustrsazan mariashebets menswheels newwebstechs1 nikkit ootheday oxigenvpn plurfitness prefetial probudgetcarpetcleaning psychicmrsmartin pyaten qvantor rejoignezlogis rexzbot riselayouts ruchin rwxqsgd5 sakaltime shibiaowang shop-bot strcoding tetapatrium topselller uneplanteartificielle vipertechcr webtech1223411 wo-kygaming yamaha-mekar yeknava yoybuysheets zenunwa yamaha-mekar jilidskripsi ankertoto ankertoto ankertoto ankertoto