Updated 2 hours ago
You update a DNS record, refresh your browser, and nothing changes. An hour later, still nothing. You search online and find the phrase "DNS propagation can take up to 48 hours."
This seems absurd. You changed one value in what amounts to a database. Why does the entire Internet need two days to notice?
Here's the answer: DNS caches don't know they're wrong. There's no mechanism to tell them. Each cache is an island, counting down its own timer, blissfully unaware that the truth has changed. You're not waiting for information to spread. You're waiting for ignorance to expire.
Caching All the Way Down
When you visit a website, your computer doesn't ask the authoritative DNS server directly. The query passes through layers of caching:
Your browser caches DNS responses. Your operating system maintains its own cache. Your router caches responses for your entire household. Your ISP runs DNS servers that cache results for millions of customers. Corporate networks and CDNs add more layers still.
Each cache stores DNS responses to avoid asking the same question twice. This makes DNS fast—most queries never leave your local network. But it means a DNS record change must expire from every cache between your users and the source before anyone sees the update.
Time to Live
Every DNS record includes a Time to Live (TTL)—a number in seconds that tells caching servers how long to store that record. Common values range from 300 seconds (5 minutes) to 86,400 seconds (24 hours).
When a caching server fetches a DNS record, it stores the response and starts counting down. When TTL hits zero, the record expires. The next query triggers a fresh lookup.
Here's what matters: changing a record on your authoritative server does not invalidate existing caches. There's no "refresh now" button. If your ISP cached your record with a 24-hour TTL five minutes before you made a change, their customers see the old value for nearly 24 more hours.
This isn't an oversight. It's the architecture. A mechanism to instantly invalidate caches worldwide would require every cache to listen for messages from millions of authoritative servers—the opposite of the "query only when needed" design that makes DNS scale. DNS works because caches are islands. They don't gossip. They don't synchronize. They just count down.
Where "48 Hours" Comes From
The "48 to 72 hours" estimate isn't a technical requirement. It's a conservative buffer based on worst cases:
- Many providers historically defaulted to 24-hour TTLs
- Some recursive servers ignore TTL values entirely
- Not all DNS implementations follow specifications strictly
- Network issues can delay updates beyond normal TTL periods
The 48-hour guidance ensures changes have definitely propagated everywhere, including misbehaving servers. In practice, with modern infrastructure and reasonable TTLs, most changes propagate within hours.
Actual Propagation Times
- 5-minute TTL (300 seconds): Most users see changes within 5–10 minutes
- 1-hour TTL (3,600 seconds): Most caches update within 1–2 hours
- 24-hour TTL (86,400 seconds): Majority of users see changes within 24–36 hours
The variation comes from timing. If a caching server hasn't queried your domain recently, it has no cached record—those users see your changes immediately. If a server cached your record one second before you changed it, those users wait the full TTL.
Minimizing Wait Time
You control TTL values, which means you control propagation speed.
Before planned changes: Lower your TTL to 300 seconds at least 24–48 hours in advance. By migration time, no cache holds your old record with a long TTL.
After changes propagate: Raise the TTL back to 3,600 or 86,400 seconds. Lower TTLs mean more queries to your authoritative servers.
For emergencies: Some DNS providers run globally distributed networks with very short internal TTLs and instant API updates. This doesn't eliminate ISP and device caching, but ensures your authoritative servers provide correct information as fast as possible.
Checking Propagation
Command-line tools like dig and nslookup let you query specific DNS servers directly. Online propagation checkers query servers worldwide and show geographic spread. Querying Google Public DNS (8.8.8.8) and Cloudflare DNS (1.1.1.1) indicates global status.
One catch: your browser and operating system cache DNS independently. Even after global propagation, you might see old values locally. Flush your DNS cache and clear browser data to verify.
What You Control and What You Don't
You control: TTL values. Choice of DNS provider. Planning changes in advance. Monitoring propagation status.
You don't control: Third-party resolver behavior. Whether all DNS software follows specifications. The fundamental reality of distributed systems—you cannot force a cache to check for updates it doesn't know exist.
DNS propagation isn't a flaw to work around. It's the cost of a system that handles billions of queries by embracing eventual consistency over real-time truth. Understanding this transforms waiting from frustration into planning: lower your TTLs before changes, verify propagation afterward, and stop refreshing your browser every thirty seconds. The caches will catch up. They just need time to realize they're wrong.
Frequently Asked Questions About DNS Propagation
Was this page helpful?