Check how far your change has spread
See what public resolvers around the world return for a domain right now:
Resolvers that return the new value have refreshed. Those that still return the old one will refresh when their cached copy expires.
Typical times
| What you changed | Usually visible in | Limited by |
|---|---|---|
| A, AAAA, CNAME or TXT record | Minutes to the old TTL | The TTL the old record had |
| MX record | Minutes to the old TTL | The old TTL; mail servers may retry on the old address meanwhile |
| Nameservers (at the registrar) | A few hours up to 48 hours | The registry's delegation TTL, which you can't shorten |
| A record that didn't exist before | Up to the negative-caching time, often 5 to 60 minutes | Resolvers remember "no such record" too |
Why it is not instant
Nothing is pushed out when you save a change. Every resolver keeps its own copy of each answer and reuses it for the record's TTL. A resolver that looked up your record five minutes before you changed it, with a one-hour TTL, will keep returning the old value for another fifty-five minutes. Browsers, operating systems and routers add small caches of their own. See what is DNS for the full chain.
The old TTL decides the wait, not the new one. Lowering a TTL now only speeds up the next change.
How to speed it up
- Lower the TTL in advance. A day or two before a planned change, set the record's TTL to 300 seconds. After the old, longer TTL has expired everywhere, make the change. Raise the TTL again afterwards.
- Clear your own cache so you see the new value:
# Windows ipconfig /flushdns # macOS sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder # Linux (systemd-resolved) resolvectl flush-caches - Ask big public resolvers to refresh a name. Google Public DNS and Cloudflare 1.1.1.1 both have a public cache-purge page where you enter the domain and record type. This helps people who use those resolvers; it doesn't touch anyone else's cache.
- Query the authoritative server directly to confirm the change was saved, without waiting for caches:
Use a nameserver from the NS lookup. If it already answers with the new value, the only thing left is cache expiry.dig @ns1.example.net example.com A +noall +answer
If it still looks wrong after 48 hours
- Check the record on the authoritative server (above). If it's wrong there, the change was never saved, or you edited the zone at a DNS host that isn't the one your registrar points to.
- Compare the nameservers at your registrar with the NS lookup. A mismatch sends some resolvers to the old host.
- Look for a second record at the same name. A CNAME can't coexist with other records, and two A records mean visitors get either one.
- Clear your browser's cache or try a private window. Browsers cache DNS and pages separately from the operating system.
Related: DNS record types and the MX lookup for mail changes.