WordPress Hosting

How to Migrate WordPress Hosts Without Downtime

A practical, honest framework for migrating a live WordPress site with minimal disruption, including backups, DNS cutover, and post-migration checks.

Two hosting environments connected by a controlled transfer path showing database, files, DNS, and verification stages

Moving a live WordPress site to a new host feels simple in theory and stressful in practice. Most of the process may go smoothly, while one missed detail can cause trouble during transfer, DNS cutover, or final verification. This guide provides a practical framework for minimizing disruption, defining what “without downtime” realistically means, and catching problems before visitors do.

What “without downtime” realistically means

In practice, “without downtime” means minimizing visible disruption to visitors and business operations, not achieving a literal zero-millisecond handoff between two servers. A well-planned migration can get very close to seamless for most visitors, especially on a content-focused site with simple DNS and no time-sensitive transactions in flight. It’s a different story for a store processing orders during business hours, a site with complex email routing, or an environment where DNS changes are slow to propagate for reasons outside your control.

Why zero downtime must not be guaranteed

DNS propagation timing varies by resolver and isn’t something you fully control. A destination server might behave differently under real traffic than it did during testing. A dependency you didn’t know about, an integration, a webhook, a scheduled task, might assume the old environment. Promising literal zero downtime sets an expectation that a genuinely careful migration can still fail to meet for reasons outside your control, so this guide treats “minimal, well-managed disruption” as the honest goal instead.

Auditing the existing hosting environment

Before touching anything, document what you’re actually working with. This audit is what makes every later step, especially troubleshooting, faster.

PHP version and server requirements

Record your current PHP version, any non-default PHP settings (memory limits, execution time, upload size), and whether you’re on Apache or Nginx. Mismatched PHP versions between old and new environments are a common source of post-migration errors, particularly with older plugins that haven’t been updated for current PHP behavior. Our guide to how hosting and PHP version set your server’s performance floor covers why this detail matters beyond just avoiding errors.

Plugins, themes, cron jobs, and integrations

List every active plugin and theme, along with any server-level cron jobs (as opposed to WordPress’s own WP-Cron) and third-party integrations: payment gateways, email services, CDN configuration, external APIs. Anything configured outside the WordPress database itself, an API key stored in a config file, a server-level redirect rule, needs to be manually recreated on the new host, since a standard WordPress migration won’t carry it over automatically.

Storage and database size

Check your total file storage (especially the uploads directory) and database size before migrating. A large media library or a bloated database, sometimes from years of accumulated revisions, transients, or spam comments, affects both transfer time and which migration method is practical. If you haven’t reviewed this recently, our database optimization guide covers what a healthy database size and structure looks like.

Creating and verifying backups

Take a complete backup covering both files and database before making any changes. This sounds obvious, but the more important, frequently skipped step is next.

Testing whether the backup can actually be restored

A backup that has never been restored is unverified. Restore it to a separate staging environment and confirm the site actually comes up correctly, database connects, pages load, media displays, before you treat that backup as your safety net. A backup file that exists but fails to restore under real conditions is not a plan; it’s an assumption.

Preparing the destination hosting account

Set up the new hosting account fully before moving any content, so it’s ready to receive the site rather than being configured under time pressure mid-migration. If you’re migrating specifically because your current hosting category no longer fits your traffic, our guide to choosing between shared, VPS, cloud, and managed hosting is worth reviewing before you commit to a destination.

Matching PHP and database compatibility

Confirm the destination supports a PHP version compatible with your current WordPress version and active plugins, and that the database engine and version are compatible with what your site expects. Address any mismatch before migrating, not after something breaks.

SSL/TLS preparation

Arrange an SSL certificate on the new host in advance, whether through the host’s automated provisioning or a certificate you manage yourself, so the destination is ready to serve HTTPS correctly from the moment traffic arrives. A gap here shows up as browser security warnings, which are highly visible and alarming to visitors.

DNS records, TTL, and email considerations

DNS is where a rushed migration usually goes wrong.

DNS records and TTL

Review your current DNS records well before cutover, and lower the TTL (time to live) on the relevant records in advance, ideally a day or more ahead. A lower TTL means resolvers refresh their cached records more frequently, which shortens the window during which some visitors see the old server and others see the new one during cutover. It doesn’t make propagation instant, but it meaningfully narrows the gap.

Email hosting and MX records

If email is hosted separately from your website, confirm MX records won’t be affected by the migration. If email is hosted on the same account as your website, this needs its own careful plan, since email disruption tends to be noticed immediately and is disproportionately disruptive relative to a brief website hiccup.

CDN and proxy considerations

If you’re using a CDN or a proxy service in front of your site, confirm how it points to your origin server and update that configuration as part of the migration, not as an afterthought once you notice the CDN is still serving from the old host.

Database and file migration

With backups verified and the destination ready, migrate the actual content.

Search-and-replace risks and serialized data

If your site’s URL changes at all, even from http:// to https://, or www to non-www, database values referencing the old URL need updating. WordPress stores some data as PHP serialized arrays, which include exact character-length counts inside the serialized string. A naive text find-and-replace on serialized data corrupts it, since the stored length no longer matches the replaced text, and can silently break widgets, theme settings, or plugin configuration. Use a migration tool or a serialization-aware search-and-replace utility built for this exact problem, rather than a plain text editor.

Preserving URLs and permalink structure

Keep your permalink structure identical on the new host unless you have a specific, deliberate reason to change it. An unplanned permalink change breaks every existing inbound link, bookmark, and search-indexed URL at once.

Previewing the migrated site before DNS cutover

Before pointing DNS at the new host, verify the migrated site actually works.

Hosts-file or temporary-preview limitations

A local hosts-file edit, or a host-provided temporary preview URL, lets you view the new environment before DNS changes, but be aware of real limitations: some relative links, cookies, or integrations tied to a specific domain may not behave identically under a temporary URL, so this preview is useful for a first check, not a substitute for post-cutover verification.

Maintenance windows and content freezes

For a site with frequent content updates or transactions, schedule a maintenance window and, if relevant, a content freeze, pausing new posts, comments, or orders during final synchronization, so nothing is created on the old site after your last backup and lost in the transition.

WooCommerce order and customer-data considerations

For a store, plan specifically around in-progress orders, customer accounts, and payment gateway configuration. A content freeze that doesn’t account for checkout activity risks losing an order placed during the transition window.

Membership, LMS, and form-submission considerations

Membership sites, learning platforms, and anything collecting form submissions need the same care: confirm user progress data, enrollment records, and submitted form entries are captured in your final backup and not generated only after it.

Final database synchronization and DNS cutover

Immediately before cutover, run one final database sync to capture anything created since your last full backup, then update DNS to point to the new host.

DNS propagation

Propagation time varies by resolver, region, and the TTL you set in advance; it is not a fixed, predictable duration. Some visitors will see the new site within minutes, others may take longer, depending on their DNS resolver’s caching behavior.

Cache and CDN purging

After cutover, clear any WordPress caching plugin, server-level cache, and CDN cache, so visitors aren’t served a stale cached version of the old environment through a cache that doesn’t know a migration happened. If you’re not sure which caching layers your site actually has, our guide to WordPress caching breaks down which ones typically need clearing.

Post-migration verification

Once DNS has propagated, verify the new environment thoroughly rather than assuming success.

Core functionality checks

Test login, contact forms, checkout (if applicable), outbound email delivery, and any scheduled tasks. Confirm each one actually works in the new environment rather than assuming it carried over correctly.

404 and redirect checks

Spot-check a sample of your most important URLs, and any redirects you had configured, to confirm they still resolve correctly on the new host.

Search indexing and robots/noindex checks

Confirm your robots.txt and any noindex settings migrated correctly and unchanged, since a misconfigured environment occasionally reintroduces a staging-site noindex tag that blocks the live site from search engines entirely.

Performance comparison before and after

Compare performance on the new host against your pre-migration baseline using the same method both times. You can run a WordPress speed test on Mobile and Desktop to confirm the new environment performs at least as well as the old one, since a migration is also a reasonable moment to catch a hosting-related regression early rather than months later.

Rollback planning

Keep the old hosting account active and untouched for a reasonable period after migration, rather than canceling it immediately. If a problem surfaces that’s easier to fix by reverting DNS than by troubleshooting forward, having the old environment still available and functional makes that a real option rather than a scramble.

A practical migration checklist

  • Document PHP version, plugins, themes, cron jobs, and integrations on the current host.
  • Check storage and database size to plan transfer method and timing.
  • Take a full backup and restore-test it on a separate environment before proceeding.
  • Fully prepare the destination host: PHP version, database, and SSL certificate.
  • Lower DNS TTL in advance of cutover.
  • Confirm email hosting and MX records won’t be disrupted.
  • Migrate files and database using a serialization-aware tool, not a plain text find-and-replace.
  • Preview the migrated site before DNS cutover, accounting for temporary-preview limitations.
  • Schedule a maintenance window or content freeze if the site has active transactions or submissions.
  • Run a final synchronization immediately before cutover.
  • Clear all caching layers, including CDN, after cutover.
  • Verify login, forms, checkout, email, and scheduled tasks on the new host.
  • Spot-check redirects, 404s, and robots/noindex configuration.
  • Compare performance against your pre-migration baseline.
  • Keep the old host active for a reasonable rollback window before canceling it.

Key Takeaways

  • “Without downtime” means minimizing visible disruption, not guaranteeing a literal zero-millisecond handoff; several factors, especially DNS propagation, are outside your direct control.
  • A backup is not verified until it has actually been restored successfully in a separate environment.
  • Serialized WordPress data requires a serialization-aware search-and-replace tool; a plain text find-and-replace can corrupt it.
  • Lowering DNS TTL in advance and keeping the old host active afterward are two of the highest-value, lowest-effort risk reductions available.
  • Post-migration verification, including a performance comparison, should be treated as a required step, not an optional afterthought.

Frequently Asked Questions

Can a WordPress migration really happen with zero downtime?

Not with an absolute guarantee. A well-planned migration can minimize disruption significantly, especially for content-focused sites, but factors like DNS propagation timing and unexpected destination-environment behavior are not fully within your control.

Do I need to change my permalink structure when migrating hosts?

No, and you generally shouldn’t unless you have a specific reason to. Keeping the same permalink structure preserves your existing inbound links and search-engine indexing.

Why did my widgets or theme settings break after migration?

This commonly happens when a URL change was applied to the database using a plain text find-and-replace rather than a serialization-aware tool, which corrupts WordPress’s serialized data format.

How long should I keep my old hosting account active after migrating?

Long enough to have a genuine rollback option if a problem surfaces, typically at least a few weeks, rather than canceling immediately after DNS appears to have propagated.

Should I migrate email hosting at the same time as my website?

Only with a specific, careful plan for it. Email disruption tends to be noticed immediately and can be more disruptive than a brief website issue, so treat it as its own coordinated step rather than an assumed side effect of the website migration.

Conclusion

A smooth WordPress migration comes from thorough preparation, not from a lucky cutover. Audit what you actually have, verify your backup can restore before you need it to, plan DNS and email changes deliberately, and check the result carefully rather than assuming it worked. Treat “downtime” as something to minimize through careful sequencing, not a guarantee you make to yourself before you’ve actually tested the destination environment under real conditions.

About the author

SitePulse Labs

SitePulse Labs publishes practical WordPress performance, hosting, security, Core Web Vitals, and technical SEO guidance.

View all articles →