Why does DNS take time to propagate?

DNS propagation explained without the magic — what actually happens between changing a record and the change taking effect for everyone.

3 MIN READ

You change a DNS record. It works for you immediately, but your friend in another country still sees the old site. Frustrating, but it makes sense once you understand what's happening.

What DNS actually is

When someone types yourdomain.com into a browser, that name has to be turned into an IP address (5.9.109.61). DNS is the system that does this translation. It works through a chain of cached lookups:

Browser → ISP resolver → Root DNS → TLD DNS → Authoritative DNS

Each step caches the answer for some duration (the TTL — Time To Live). When you change a DNS record, only the authoritative server has the new value immediately. Every cache higher up still has the old one until it expires.

Why "propagation" isn't really propagation

DNS doesn't push updates. The change waits passively in the authoritative server. Each ISP resolver picks up the new value when its cache for that record expires and it queries fresh.

So "propagation" really means "waiting for ~50,000 caches around the world to expire one by one". Some expire in 5 minutes. Some in 24 hours. Average is 1‑6 hours.

How to check propagation

Use whatsmydns.net or dig from a terminal:

dig +short yourdomain.com @1.1.1.1   # Cloudflare's resolver
dig +short yourdomain.com @8.8.8.8   # Google's resolver
dig +short yourdomain.com @9.9.9.9   # Quad9's resolver

If all three return the new IP, the major resolvers have updated. Your visitors are 90% covered.

Speeding it up before a planned change

The day before you're going to change DNS, lower the TTL on the record to 300 seconds (5 minutes). Save. Wait the original TTL period (often 1-24 hours) — now any cache that re-fetches will only cache for 5 minutes.

The next day, make your real DNS change. Worst case visitors see stale data for 5 minutes instead of hours.

After the change is stable, raise TTL back to 3600 (1 hour) or higher to reduce DNS query load.

Common gotchas

"It works on my phone but not my laptop." Different DNS resolvers cached at different times. Wait or flush DNS:

  • Windows: ipconfig /flushdns
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Linux: sudo systemd-resolve --flush-caches

"Some users still see the old site after 48 hours." Their resolver might have a stuck cache. Asking them to try a different network (mobile data instead of WiFi) confirms — if it works on mobile, the issue is their home/office DNS, not yours.

"Cloudflare won't propagate." Cloudflare's edges update within 60 seconds of a DNS change. If yours doesn't, your record probably has the orange cloud (proxied) on — change to grey cloud (DNS only) for hosting records, or check your Page Rules.

When to call us

If after 48 hours major resolvers (Cloudflare, Google, Quad9) still show the old IP, something's wrong upstream of the resolvers. Either the change didn't save, or there's a typo in the record. Open a ticket with the domain name and we'll check the authoritative servers directly.

Still stuck?

Chat with a real engineer — median response under 3 minutes, any time of day.

Contact support