{"id":594,"date":"2025-09-15T02:50:49","date_gmt":"2025-09-15T02:50:49","guid":{"rendered":"https:\/\/www.pofii.com\/blog\/?p=594"},"modified":"2025-09-15T03:18:46","modified_gmt":"2025-09-15T03:18:46","slug":"zero-downtime-website-migration-the-dns-ttl-playbook","status":"publish","type":"post","link":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/","title":{"rendered":"Zero-Downtime Website Migration: The DNS TTL Playbook"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#What_%E2%80%9Cdowntime%E2%80%9D_really_is_and_where_it_hides\" >What \u201cdowntime\u201d really is (and where it hides)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#The_game_plan_at_a_glance\" >The game plan at a glance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#1_Prep_72%E2%80%9324_hours_before_drop_your_TTL\" >1) Prep (72\u201324 hours before): drop your TTL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#2_Clone_your_site_on_the_new_host\" >2) Clone your site on the new host<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#3_Smoke_test_with_hosts_file_staging\" >3) Smoke test with hosts file &amp; staging<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#4_The_cutover_window_the_fun_part\" >4) The cutover window (the fun part)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#5_Post-cutover_clean-up_30%E2%80%93120_minutes_after\" >5) Post-cutover clean-up (30\u2013120 minutes after)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#Common_pitfalls_and_quick_fixes\" >Common pitfalls (and quick fixes)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#Minimal_migration_checklist_copypaste\" >Minimal migration checklist (copy\/paste)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#FAQ\" >FAQ<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#Want_help\" >Want help?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-what-downtime-really-is-and-where-it-hides\"><span class=\"ez-toc-section\" id=\"What_%E2%80%9Cdowntime%E2%80%9D_really_is_and_where_it_hides\"><\/span>What \u201cdowntime\u201d really is (and where it hides)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When people say \u201cmy site was down during migration,\u201d it\u2019s usually one of three things:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS propagation lag<\/strong> \u2014 visitors resolve old IPs for hours because TTLs were high.<\/li>\n\n\n\n<li><strong>Origin issues<\/strong> \u2014 the new server isn\u2019t an exact clone (missing env vars, bad DB URL, wrong PHP, etc.).<\/li>\n\n\n\n<li><strong>Mixed cutover<\/strong> \u2014 nameservers switched <em>and<\/em> records changed at the same time, creating inconsistent states.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The fix? <strong>Lower TTL well before cutover<\/strong>, switch <strong>A\/AAAA\/CNAME records<\/strong> (not nameservers) during the window, and test like a maniac before traffic flips.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-game-plan-at-a-glance\"><span class=\"ez-toc-section\" id=\"The_game_plan_at_a_glance\"><\/span>The game plan at a glance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>72\u201324 hours before<\/strong>: Lower DNS TTLs.<\/li>\n\n\n\n<li><strong>Clone your site<\/strong> to the new host.<\/li>\n\n\n\n<li><strong>Smoke test<\/strong> via hosts file &amp; staging URL.<\/li>\n\n\n\n<li><strong>Cutover window<\/strong>: flip A\/AAAA\/CNAME only.<\/li>\n\n\n\n<li><strong>Post-cutover checks<\/strong> and raise TTLs again.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-1-prep-72-24-hours-before-drop-your-ttl\"><span class=\"ez-toc-section\" id=\"1_Prep_72%E2%80%9324_hours_before_drop_your_TTL\"><\/span>1) Prep (72\u201324 hours before): drop your TTL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lower the TTL on your key records so the world forgets old answers quickly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Records to adjust:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>A<\/code> \/ <code>AAAA<\/code> for apex (<code>yourdomain.com<\/code>) and <code>www<\/code><\/li>\n\n\n\n<li>Any <code>CNAME<\/code> you\u2019ll point at the new host<\/li>\n\n\n\n<li>(If you have mail on the same host, treat MX\/related records carefully\u2014see Pitfalls.)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Recommended TTLs:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>300 seconds (5 min)<\/strong> is a sweet spot. If your DNS provider allows <strong>60 seconds<\/strong>, even better for the cutover hour.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Bonus:<\/strong> If you\u2019re on a CDN (e.g., Cloudflare), review cache settings; don\u2019t lock stale origin IPs behind the shield during cutover.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-2-clone-your-site-on-the-new-host\"><span class=\"ez-toc-section\" id=\"2_Clone_your_site_on_the_new_host\"><\/span>2) Clone your site on the new host<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Make the new environment a mirror image <strong>before<\/strong> switching traffic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Checklist:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Files &amp; DB copied (use your host\u2019s migration tool or <code>rsync<\/code>\/plugin for WordPress).<\/li>\n\n\n\n<li>Update environment secrets (<code>.env<\/code>, <code>wp-config.php<\/code>, salts\/keys).<\/li>\n\n\n\n<li><strong>Search-replace<\/strong> old domain \u2192 new (or staging) URL in DB if needed.<\/li>\n\n\n\n<li>Match PHP version, extensions, <strong>Redis\/Object Cache<\/strong> settings.<\/li>\n\n\n\n<li>Ensure scheduled tasks\/cron are set but <strong>disabled<\/strong> until cutover.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WordPress quick note:<\/strong> If you use an object cache (Redis\/Memcached) or page cache, enable it on the new host <em>after<\/em> you confirm the site renders correctly.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-3-smoke-test-with-hosts-file-amp-staging\"><span class=\"ez-toc-section\" id=\"3_Smoke_test_with_hosts_file_staging\"><\/span>3) Smoke test with hosts file &amp; staging<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Don\u2019t trust luck\u2014force your computer to resolve the new server and browse the site <strong>like it\u2019s live<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>macOS\/Linux<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/hosts\n203.0.113.10   yourdomain.com www.yourdomain.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows (Run Notepad as Admin)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Windows\\System32\\drivers\\etc\\hosts\n203.0.113.10   yourdomain.com www.yourdomain.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open a private window and validate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Home, key landing pages, login, checkout (if eCommerce)<\/li>\n\n\n\n<li>Forms, search, sitemaps, robots.txt<\/li>\n\n\n\n<li>Admin actions (create\/update a draft, upload a media file)<\/li>\n\n\n\n<li>Error logs clean; no mixed content<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When done, <strong>remove<\/strong> the hosts entries so you don\u2019t forget later.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-4-the-cutover-window-the-fun-part\"><span class=\"ez-toc-section\" id=\"4_The_cutover_window_the_fun_part\"><\/span>4) The cutover window (the fun part)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is where zero-downtime happens if you stay disciplined.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Freeze content<\/strong> briefly: pause heavy writes (orders keep flowing; just avoid theme\/plugin updates or massive imports).<\/li>\n\n\n\n<li><strong>Flip records, not nameservers.<\/strong> Update only <code>A\/AAAA\/CNAME<\/code> to point at the new server.<\/li>\n\n\n\n<li><strong>Purge caches<\/strong> (origin + CDN) where safe.<\/li>\n\n\n\n<li><strong>Verify from multiple resolvers<\/strong> quickly:\n<ul class=\"wp-block-list\">\n<li><code>1.1.1.1<\/code>, <code>8.8.8.8<\/code>, your ISP, mobile hotspot<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Command-line sanity checks:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig +short yourdomain.com @1.1.1.1\ndig +short yourdomain.com @8.8.8.8\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Both should return the <strong>new<\/strong> IP within minutes if TTL was lowered in advance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-5-post-cutover-clean-up-30-120-minutes-after\"><span class=\"ez-toc-section\" id=\"5_Post-cutover_clean-up_30%E2%80%93120_minutes_after\"><\/span>5) Post-cutover clean-up (30\u2013120 minutes after)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When traffic is clearly flowing to the new host:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Re-enable crons\/scheduled tasks<\/strong> (and WooCommerce webhooks if you paused anything).<\/li>\n\n\n\n<li><strong>Raise TTL<\/strong> back to a sane value (e.g., 3600\u201314400) to reduce DNS chatter.<\/li>\n\n\n\n<li><strong>Rebuild caches<\/strong> (object cache\/page cache\/CDN).<\/li>\n\n\n\n<li><strong>Monitor logs<\/strong>: 404 spikes, PHP errors, slow queries.<\/li>\n\n\n\n<li><strong>Check email<\/strong>: if you changed nameservers anywhere, confirm MX\/SPF\/DMARC are intact.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-common-pitfalls-and-quick-fixes\"><span class=\"ez-toc-section\" id=\"Common_pitfalls_and_quick_fixes\"><\/span>Common pitfalls (and quick fixes)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You switched nameservers and records together.<\/strong><br><em>Fix:<\/em> Only change A\/AAAA\/CNAME during cutover. Leave nameservers alone unless you must move DNS providers; if you do, pre-create all records at the new DNS and switch during a quiet window.<\/li>\n\n\n\n<li><strong>Emails broke after migration.<\/strong><br><em>Fix:<\/em> If mail stays with your old provider (e.g., Google\/Microsoft), <strong>do not<\/strong> touch MX. Watch out for <code>mail.yourdomain.com<\/code> A records and auto-discovery (<code>autodiscover<\/code>, <code>smtp<\/code>, <code>imap<\/code>) subdomains.<\/li>\n\n\n\n<li><strong>IPv6 forgotten.<\/strong><br><em>Fix:<\/em> If you had an <code>AAAA<\/code> record, move it too\u2014or remove it intentionally if your new stack isn\u2019t ready for v6.<\/li>\n\n\n\n<li><strong>Mixed protocol\/CDN rules.<\/strong><br><em>Fix:<\/em> Align HTTPS redirects, HSTS, and CDN page rules. Double-check that the CDN uses the <strong>new<\/strong> origin IP.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-minimal-migration-checklist-copy-paste\"><span class=\"ez-toc-section\" id=\"Minimal_migration_checklist_copypaste\"><\/span>Minimal migration checklist (copy\/paste)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lower TTLs to 300\u201360s (A\/AAAA\/CNAME) 24\u201372h in advance<\/li>\n\n\n\n<li>Full clone (files + DB) and env secrets updated<\/li>\n\n\n\n<li>Smoke test via hosts file + staging<\/li>\n\n\n\n<li>Freeze content; flip <strong>A\/AAAA\/CNAME<\/strong> only<\/li>\n\n\n\n<li>Validate via multiple resolvers (<code>dig<\/code>)<\/li>\n\n\n\n<li>Raise TTLs, re-enable cron\/caching, rebuild CDN<\/li>\n\n\n\n<li>Scan logs, forms, payments, email, sitemap\/robots<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faq\"><span class=\"ez-toc-section\" id=\"FAQ\"><\/span>FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How long should I keep TTL low?<\/strong><br>24\u201372 hours before cutover is ideal. You can raise it back 30\u2013120 minutes after you confirm traffic is hitting the new server cleanly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is it better to change nameservers or just A records?<\/strong><br>For zero-downtime, <strong>just change A\/AAAA\/CNAME<\/strong>. Move nameservers only when you\u2019re ready to migrate DNS hosting\u2014and do that as a separate, planned step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What if my site has heavy write traffic (orders, comments)?<\/strong><br>Keep the database on the <strong>old host<\/strong> write-active until the cutover moment; minimize writes during the 5\u201315 minute switch. For very high-write sites, consider temporary read-only banners or replicate DB strategies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I do this behind Cloudflare?<\/strong><br>Yes. Update the origin IP in DNS (orange cloud on) and purge caches. Make sure any firewall rules or IP allow-lists include the new server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-want-help\"><span class=\"ez-toc-section\" id=\"Want_help\"><\/span>Want help?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019d rather not DIY, we can handle a <strong><a href=\"http:\/\/pofii.com\/contact\">free assisted migration<\/a><\/strong> and run a quick performance check once you\u2019re live. Either way, use this playbook\u2014it\u2019s the safest way to move without customers ever noticing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thinking about moving to a faster host (hey \ud83d\udc4b), but terrified of downtime and angry customers? This is the step-by-step zero-downtime migration guide you can follow today. No hand-waving. No guesswork. Just a clean DNS TTL strategy, a safe cutover, and a quick post-migration checklist.<\/p>\n","protected":false},"author":5,"featured_media":624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[226,208],"class_list":["post-594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting","tag-dns","tag-website-migration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Zero-Downtime Website Migration: The DNS TTL Playbook - Pofii Insights<\/title>\n<meta name=\"description\" content=\"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zero-Downtime Website Migration: The DNS TTL Playbook\" \/>\n<meta property=\"og:description\" content=\"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\" \/>\n<meta property=\"og:site_name\" content=\"Pofii Insights\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PofiiCOM\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-15T02:50:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-15T03:18:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"John Cavil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PofiiGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@PofiiGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Cavil\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\"},\"author\":{\"name\":\"John Cavil\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/82dd56bd4b7d1ae512907145b3a68873\"},\"headline\":\"Zero-Downtime Website Migration: The DNS TTL Playbook\",\"datePublished\":\"2025-09-15T02:50:49+00:00\",\"dateModified\":\"2025-09-15T03:18:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\"},\"wordCount\":897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png\",\"keywords\":[\"DNS\",\"Website Migration\"],\"articleSection\":[\"Hosting Tips &amp; Tricks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\",\"url\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\",\"name\":\"Zero-Downtime Website Migration: The DNS TTL Playbook - Pofii Insights\",\"isPartOf\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png\",\"datePublished\":\"2025-09-15T02:50:49+00:00\",\"dateModified\":\"2025-09-15T03:18:46+00:00\",\"description\":\"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage\",\"url\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png\",\"contentUrl\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png\",\"width\":1536,\"height\":1024,\"caption\":\"zero downtime migration playbook\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nl.pofii.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zero-Downtime Website Migration: The DNS TTL Playbook\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#website\",\"url\":\"https:\/\/www.pofii.com\/blog\/\",\"name\":\"Pofii\",\"description\":\"Success Simplified.\",\"publisher\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pofii.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#organization\",\"name\":\"Pofii\",\"url\":\"https:\/\/www.pofii.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2024\/12\/cropped-cropped-pofiiinsights-2.png\",\"contentUrl\":\"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2024\/12\/cropped-cropped-pofiiinsights-2.png\",\"width\":2079,\"height\":221,\"caption\":\"Pofii\"},\"image\":{\"@id\":\"https:\/\/www.pofii.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/PofiiCOM\",\"https:\/\/x.com\/PofiiGlobal\",\"https:\/\/www.instagram.com\/PofiiGlobal\",\"https:\/\/www.linkedin.com\/company\/Pofii\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/82dd56bd4b7d1ae512907145b3a68873\",\"name\":\"John Cavil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.pofii.com\/brand\/logo-icon-circle-friendly.png\",\"contentUrl\":\"https:\/\/www.pofii.com\/brand\/logo-icon-circle-friendly.png\",\"caption\":\"John Cavil\"},\"description\":\"WordPress Expert, Head of technical support at Pofii Ltd.\",\"sameAs\":[\"https:\/\/www.pofii.com\/blog\/author\/JohnC\"],\"url\":\"https:\/\/www.pofii.com\/blog\/author\/johnc\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Zero-Downtime Website Migration: The DNS TTL Playbook - Pofii Insights","description":"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/","og_locale":"en_US","og_type":"article","og_title":"Zero-Downtime Website Migration: The DNS TTL Playbook","og_description":"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.","og_url":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/","og_site_name":"Pofii Insights","article_publisher":"https:\/\/www.facebook.com\/PofiiCOM","article_published_time":"2025-09-15T02:50:49+00:00","article_modified_time":"2025-09-15T03:18:46+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png","type":"image\/png"}],"author":"John Cavil","twitter_card":"summary_large_image","twitter_creator":"@PofiiGlobal","twitter_site":"@PofiiGlobal","twitter_misc":{"Written by":"John Cavil","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#article","isPartOf":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/"},"author":{"name":"John Cavil","@id":"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/82dd56bd4b7d1ae512907145b3a68873"},"headline":"Zero-Downtime Website Migration: The DNS TTL Playbook","datePublished":"2025-09-15T02:50:49+00:00","dateModified":"2025-09-15T03:18:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/"},"wordCount":897,"commentCount":0,"publisher":{"@id":"https:\/\/www.pofii.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png","keywords":["DNS","Website Migration"],"articleSection":["Hosting Tips &amp; Tricks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/","url":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/","name":"Zero-Downtime Website Migration: The DNS TTL Playbook - Pofii Insights","isPartOf":{"@id":"https:\/\/www.pofii.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage"},"image":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png","datePublished":"2025-09-15T02:50:49+00:00","dateModified":"2025-09-15T03:18:46+00:00","description":"Zero-downtime website migration made simple. Lower DNS TTL, clone, test, flip A\/AAAA only, and verify\u2014no outages, clean cutover.","breadcrumb":{"@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#primaryimage","url":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png","contentUrl":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2025\/09\/zero-downtime-migration-playbook.png","width":1536,"height":1024,"caption":"zero downtime migration playbook"},{"@type":"BreadcrumbList","@id":"https:\/\/www.pofii.com\/blog\/zero-downtime-website-migration-the-dns-ttl-playbook\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nl.pofii.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Zero-Downtime Website Migration: The DNS TTL Playbook"}]},{"@type":"WebSite","@id":"https:\/\/www.pofii.com\/blog\/#website","url":"https:\/\/www.pofii.com\/blog\/","name":"Pofii","description":"Success Simplified.","publisher":{"@id":"https:\/\/www.pofii.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pofii.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.pofii.com\/blog\/#organization","name":"Pofii","url":"https:\/\/www.pofii.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pofii.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2024\/12\/cropped-cropped-pofiiinsights-2.png","contentUrl":"https:\/\/www.pofii.com\/blog\/wp-content\/uploads\/2024\/12\/cropped-cropped-pofiiinsights-2.png","width":2079,"height":221,"caption":"Pofii"},"image":{"@id":"https:\/\/www.pofii.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/PofiiCOM","https:\/\/x.com\/PofiiGlobal","https:\/\/www.instagram.com\/PofiiGlobal","https:\/\/www.linkedin.com\/company\/Pofii"]},{"@type":"Person","@id":"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/82dd56bd4b7d1ae512907145b3a68873","name":"John Cavil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pofii.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.pofii.com\/brand\/logo-icon-circle-friendly.png","contentUrl":"https:\/\/www.pofii.com\/brand\/logo-icon-circle-friendly.png","caption":"John Cavil"},"description":"WordPress Expert, Head of technical support at Pofii Ltd.","sameAs":["https:\/\/www.pofii.com\/blog\/author\/JohnC"],"url":"https:\/\/www.pofii.com\/blog\/author\/johnc\/"}]}},"_links":{"self":[{"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/posts\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":2,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/posts\/594\/revisions"}],"predecessor-version":[{"id":604,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/posts\/594\/revisions\/604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/media\/624"}],"wp:attachment":[{"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/media?parent=594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/categories?post=594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pofii.com\/blog\/wp-json\/wp\/v2\/tags?post=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}