DNS propagation and TTLs: why your change hasn't shown up yet
By James Bayliss · Updated · Reviewed
In this guide
What "propagation" really is
When a resolver (your ISP's, your company's, or a public one such as 1.1.1.1) looks up a name, it caches the answer for the number of seconds in the record's TTL. Until that expires, it answers from its cache without asking your nameservers again.
So after you change a record:
- Your authoritative nameservers serve the new value immediately (or within seconds, depending on the provider's internal replication).
- Every resolver that cached the old value keeps serving it until its copy expires: anywhere from zero seconds to the full old TTL.
- Resolvers that never cached it get the new value right away.
That's why two people can see different results at the same moment, and why "it works for me" means little during a change.
The three caches that matter
1. The record's own TTL
www.example.com. 3600 IN A 203.0.113.10
This answer can be cached for up to 3,600 seconds (one hour). If you change it now, some users may see the old address for up to an hour.
2. Negative caching
If someone looked up a name before it existed, resolvers cache the "doesn't exist" answer too. RFC 2308 sets that duration from the zone's SOA record: the lower of the SOA's TTL and its minimum field. If you create a record and some users still get NXDOMAIN, this is why. Check the SOA with the DNS Name Lookup.
3. Delegation (NS) caching
When you change nameservers at your registrar, resolvers keep using the old ones until the parent zone's NS TTL expires; that's two days for .com. Lowering TTLs in your own zone doesn't shorten this. See changing nameservers without downtime.
Planning a change
-
Find the current TTL with the DNS Name Lookup. It shows the remaining TTL as seen by the resolver.
-
Lower it in advance, to 300 seconds for example, and wait at least the old TTL before the change.
-
Make the change.
-
Verify at the source, by querying the authoritative nameserver directly:
dig @ns1.yourprovider.example www.example.com A +short -
Wait out the short TTL, then check public resolvers.
-
Raise the TTL again (one hour to one day for stable records). Long TTLs reduce query load and protect you briefly if your DNS provider has an outage.
Typical TTLs
| Record | Common TTL | Notes |
|---|---|---|
| A/AAAA for websites | 300–3,600 s | Shorter if you use DNS failover |
| MX | 3,600 s or more | Lower before a mail migration |
| TXT (SPF, DMARC, verification) | 3,600 s | Lower before replacing SPF |
| NS (inside your zone) | 86,400 s | The parent's NS TTL controls delegation |
| CNAME for vendor services | Vendor's choice | Follow their setup guidance |
Things that look like propagation but aren't
- Browser and OS caches. Browsers and operating systems cache DNS too. Try a private window or flush the OS cache (
ipconfig /flushdnson Windows) before blaming DNS. - Application caches. Java processes and some SDKs cache lookups for their whole lifetime unless configured otherwise.
- CDN or proxy in front. If a site is proxied (by Cloudflare, Azure Front Door and so on), public DNS returns the proxy's addresses. Changes to the origin don't show up in DNS at all.
- Edited the wrong zone. If the domain's nameservers point somewhere else, changes at your "usual" DNS host do nothing. Check with the Nameserver Lookup.
- Split-horizon DNS. Internal resolvers may serve a different zone from the internet.
Can I force propagation?
Not globally. You can't make other people's resolvers drop their cache. Some public resolvers offer a "purge cache" page for their own cache, which helps you test, but you can't flush every resolver on the internet. The only reliable control is to lower TTLs before the change.
From the field: Different DNS vendors have different propagation times. Some will take up to 24 hours, some are fairly instantaneous with changes. A tool to visualize that is extremely helpful when you are trying to troubleshoot.
Sources
Check it now
DNS Name Lookup What does DNS return for this name right now?
Related guides
- Changing nameservers (DNS providers) without downtime
How to move a domain to a new DNS provider without downtime: copy and verify the zone, handle DNSSEC, then change the delegation and wait out the caches.
- MX records: how inbound mail finds your server
How sending servers use MX records and preferences, what happens with no MX or a null MX, and the record rules behind most "mail isn't arriving" problems.
- Fixing "SPF too many DNS lookups" (PermError)
Why SPF fails at 10 DNS lookups, how to count them correctly, and five safe ways to get back under the limit without breaking mail.