{"id":1655,"date":"2025-12-19T16:05:54","date_gmt":"2025-12-19T16:05:54","guid":{"rendered":"https:\/\/ukspeed.co.uk\/blog\/migrate-website-zero-downtime\/"},"modified":"2026-01-07T13:25:45","modified_gmt":"2026-01-07T13:25:45","slug":"website-migration-zero-downtime","status":"publish","type":"post","link":"https:\/\/ukspeed.co.uk\/blog\/website-migration-zero-downtime\/","title":{"rendered":"How to Migrate Your Website to a New Host With Zero Downtime"},"content":{"rendered":"<p><strong>Website migration<\/strong> is one of the most important decisions when building a fast, reliable online presence. In this guide, we explain everything you need to know about website migration \u2014 how it works, who it benefits, and how to choose the right setup.<\/p>\n<p>Switching hosts is one of the most stressful tasks a site owner faces. Done wrong, you get broken pages, lost emails, and unhappy customers. Done right, your visitors notice nothing \u2014 your site simply continues working from a faster, more reliable server. This step-by-step guide walks you through a clean, zero-downtime migration.<\/p>\n<h2>What Is Website migration?<\/h2>\n<p>Before touching anything, finalize your destination. Confirm the new plan supports everything your site needs: PHP version, MySQL version, disk space, RAM, traffic capacity, and any specific extensions. Provision the new account and verify you can log in to its control panel.<\/p>\n<h2>Step 2: Take a Complete Backup<\/h2>\n<p>Never start a migration without a fresh full backup of your current site. This includes:<\/p>\n<ul>\n<li>All files in your web root (often <code>public_html\/<\/code>).<\/li>\n<li>Your database (export via phpMyAdmin or mysqldump).<\/li>\n<li>Email accounts and any locally stored mail.<\/li>\n<li>Cron jobs, custom configurations, and SSL certificates.<\/li>\n<\/ul>\n<p>Download the backup to your local machine. If anything goes wrong, you have a clean rollback point.<\/p>\n<h2>Step 3: Transfer Files to the New Host<\/h2>\n<p>Upload your sites files to the new server. Options include:<\/p>\n<ul>\n<li><strong>SFTP<\/strong> \u2014 reliable for any size site, works with FileZilla or WinSCP.<\/li>\n<li><strong>SSH\/rsync<\/strong> \u2014 fastest for large sites if both hosts allow SSH.<\/li>\n<li><strong>cPanel-to-cPanel transfer<\/strong> \u2014 many hosts offer free migration assistance.<\/li>\n<\/ul>\n<p>Place files in the same directory structure as the original. Verify the transfer completed without errors.<\/p>\n<h2>Step 4: Import Your Database<\/h2>\n<p>Create a new database on the destination host with the same name (or update your config later). Import your SQL dump using phpMyAdmin or the command line. Verify the import by checking row counts on key tables.<\/p>\n<h2>Step 5: Update Configuration Files<\/h2>\n<p>Update database credentials in your application config:<\/p>\n<ul>\n<li>WordPress: <code>wp-config.php<\/code><\/li>\n<li>Joomla: <code>configuration.php<\/code><\/li>\n<li>Drupal: <code>sites\/default\/settings.php<\/code><\/li>\n<li>Custom apps: your apps config file<\/li>\n<\/ul>\n<p>Make sure the new credentials match the database you just imported.<\/p>\n<h2>Step 6: Test Before Switching DNS<\/h2>\n<p>This is the step most people skip \u2014 and the one that prevents downtime. Edit your local computers <code>hosts<\/code> file to point your domain to the new servers IP address. Now you can browse your live domain on the new server while everyone else still hits the old one.<\/p>\n<p>Click through every important page. Test forms, logins, checkouts, search. Fix anything broken. Only when everything works should you proceed.<\/p>\n<h2>Step 7: Lower Your DNS TTL<\/h2>\n<p>At least 24 hours before the switch, log into your DNS provider and lower your A record TTL to 300 seconds (5 minutes). This ensures the world updates to your new IP quickly when you make the change.<\/p>\n<h2>Step 8: Switch DNS to the New Host<\/h2>\n<p>Update your A record (or nameservers) to point to the new server. With a low TTL, propagation completes in minutes for most visitors. Keep both hosts running during this period.<\/p>\n<h2>Step 9: Verify Globally<\/h2>\n<p>Use tools like <code>whatsmydns.net<\/code> to confirm your new IP is propagating worldwide. Test your site from different networks (mobile data, a VPN, ask a friend overseas). When everything looks good globally, the migration is essentially complete.<\/p>\n<h2>Step 10: Keep the Old Host Running for 7 Days<\/h2>\n<p>Even after DNS propagates, some caches take days to expire. Keep the old hosting active for at least a week. Make sure no late-arriving emails are lost, no edge-case visitors are still hitting it, and you have time to investigate any issues before final shutdown.<\/p>\n<h2>Common Migration Mistakes<\/h2>\n<ul>\n<li>Skipping the hosts-file test before DNS switch.<\/li>\n<li>Forgetting to migrate email accounts.<\/li>\n<li>Leaving the old database password in config files.<\/li>\n<li>Not updating absolute URLs in the database (a problem for WordPress especially).<\/li>\n<li>Cancelling the old host before the new one is fully verified.<\/li>\n<\/ul>\n<h2>Final Thoughts<\/h2>\n<p>A zero-downtime migration is entirely achievable if you plan ahead and test before flipping DNS. The few hours of careful preparation save days of customer complaints and lost revenue. Take it slow, keep backups, and verify every step.<\/p>\n<div class=\"uks-further-reading\">\n<div class=\"uks-fr-icon\"><\/div>\n<div class=\"uks-fr-content\">\n<h4 class=\"uks-fr-title\">Further Reading<\/h4>\n<div class=\"uks-fr-section\">\n<p class=\"uks-fr-label\">From our blog:<\/p>\n<ul class=\"uks-fr-list uks-fr-internal\">\n<li><a href=\"https:\/\/ukspeed.co.uk\/blog\/cpanel-beginners-complete-guide\/\">CPanel basics for migration<\/a><\/li>\n<li><a href=\"https:\/\/ukspeed.co.uk\/blog\/web-hosting-security-essential-practices\/\">Security after migration<\/a><\/li>\n<li><a href=\"https:\/\/ukspeed.co.uk\/blog\/boost-website-hosting-performance\/\">Performance after migration<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"uks-fr-section\">\n<p class=\"uks-fr-label\">External resources:<\/p>\n<ul class=\"uks-fr-list uks-fr-external\">\n<li><a target=\"_blank\" rel=\"noopener external\" href=\"https:\/\/wordpress.org\/documentation\/article\/moving-wordpress\/\">Official WordPress migration guide<\/a><\/li>\n<li><a target=\"_blank\" rel=\"noopener external\" href=\"https:\/\/www.cloudflare.com\/learning\/dns\/glossary\/dns-ttl\/\">Cloudflare on DNS TTL<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Switching hosts is one of the most stressful tasks a site owner faces. Done wrong, you get broken pages, lost emails, and unhappy customers. Done right, your\u2026<\/p>\n","protected":false},"author":1,"featured_media":1682,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[105],"tags":[126,125,124,127],"class_list":["post-1655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-hosting-migration","tag-tutorials","tag-website-migration","tag-zero-downtime"],"_links":{"self":[{"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1655"}],"version-history":[{"count":4,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1655\/revisions"}],"predecessor-version":[{"id":1755,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1655\/revisions\/1755"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/media\/1682"}],"wp:attachment":[{"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ukspeed.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}