You updated a DNS record. Your registrar or DNS panel said "saved." But your website, email, or service still isn't working everywhere. Here's what's actually happening and what you can do about it.
What is DNS Propagation?
When you update a DNS record, your authoritative nameserver has the new value almost immediately. The delay comes from caching, not from a slow rollout.
Here's the path a DNS query takes:
- Your browser asks a recursive resolver (usually your ISP's, or Google's 8.8.8.8, or Cloudflare's 1.1.1.1)
- The resolver checks its local cache. If it has a recent answer, it returns that — without contacting your nameserver
- If the cache is empty or expired, the resolver queries the root nameservers → TLD nameservers → your authoritative nameserver
- Your authoritative nameserver returns the current record, and the resolver caches it for the record's TTL duration
The "propagation delay" is almost entirely the time for all the world's resolvers to let their cached copy of your old record expire and re-fetch from your nameserver.
Propagation vs. Caching: The Key Distinction
| Concept | What it is | How fast |
|---|---|---|
| DNS Propagation | Your authoritative nameserver publishing the new record | Seconds to ~1 minute |
| Cache Expiry | Recursive resolvers worldwide letting old cached records expire | Equal to the old TTL value |
This means: if your A record had a TTL of 86400 (24 hours) before you changed it, resolvers that cached it just before your change will serve the old IP for up to 24 more hours — even though your nameserver has the new value instantly.
TTL Values and What They Mean
| TTL Value | Duration | Max propagation delay | Typical use |
|---|---|---|---|
| 60 | 1 minute | ~1–2 minutes | Active migration, failover |
| 300 | 5 minutes | ~5–10 minutes | Pre-migration (lower before change) |
| 3600 | 1 hour | ~1–2 hours | A records, CNAME (default for many providers) |
| 14400 | 4 hours | ~4–6 hours | MX records, SPF/DKIM/DMARC |
| 86400 | 24 hours | Up to 48 hours | NS records, stable infrastructure |
Why can propagation take longer than the TTL? Some ISP resolvers ignore TTL and cache records longer than specified. This is uncommon with major resolvers (Google, Cloudflare, OpenDNS) but happens with older or misconfigured ISP resolvers.
How to Speed Up DNS Propagation
The only way to speed up propagation is to lower your TTL before making the change. The process:
- 24–48 hours before your planned change: Lower the TTL of the record you're going to change to 300 seconds (5 minutes).
- Wait for the old TTL to expire: If your record had TTL=86400, wait 24 hours for all resolvers to let their cache expire and pick up the new short TTL.
- Make your DNS change: Update the record value. With TTL=300, most resolvers will fetch the new value within 5–10 minutes.
- After propagation confirms: Raise the TTL back to 3600 or higher.
Common mistake: Lowering TTL at the same time as making the change. This doesn't help — the resolvers already cached your old record at the old TTL. The TTL reduction only affects future cache refreshes.
How to Check DNS Propagation with dig
dig is the standard command-line DNS tool on Linux and macOS. Query a specific resolver with @server:
Check your A record from Google's resolver:
dig @8.8.8.8 example.com A
Check from Cloudflare's resolver:
dig @1.1.1.1 example.com A
Query your authoritative nameserver directly (bypasses all caching):
# First, find your nameserver
dig example.com NS
# Then query it directly (replace ns1.example.com with your NS)
dig @ns1.example.com example.com A
Check TTL remaining on a cached record (the number in the ANSWER SECTION shows seconds left):
dig @8.8.8.8 example.com A +noall +answer
# Output:
# example.com. 2341 IN A 93.184.216.34
# ^^^^
# TTL remaining in seconds (2341s = ~39 minutes until refresh)
Check MX records (email routing):
dig @8.8.8.8 example.com MX +short
How to Check DNS Propagation with nslookup
nslookup is available on Windows, macOS, and Linux:
# Query from Google DNS
nslookup example.com 8.8.8.8
# Query from Cloudflare
nslookup example.com 1.1.1.1
# Query MX records
nslookup -type=MX example.com 8.8.8.8
# Query TXT records (SPF, DMARC, DKIM)
nslookup -type=TXT example.com 8.8.8.8
nslookup -type=TXT _dmarc.example.com 8.8.8.8
If Google (8.8.8.8) and Cloudflare (1.1.1.1) both return your new record but your ISP resolver still returns the old one, propagation is nearly complete. The ISP cache will expire on its own schedule.
Flush Your Local DNS Cache
Your own computer also caches DNS records. To see the new record locally, flush your DNS cache:
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Windows:
ipconfig /flushdns
Linux (systemd-resolved):
sudo systemd-resolve --flush-caches
Browser caching: Chrome and Firefox maintain their own DNS cache independently of the OS. In Chrome, go to chrome://net-internals/#dns and click "Clear host cache". In Firefox, restart the browser after flushing the OS cache.
Check your DNS records from multiple locations
Our tool queries authoritative nameservers and returns live results — no caching.
FAQ
How long does DNS propagation take? ▸
What is the difference between DNS propagation and DNS caching? ▸
Why do some people see my new DNS record but others don't? ▸
How can I check if DNS has propagated? ▸
dig @8.8.8.8 example.com A (Google) and dig @1.1.1.1 example.com A (Cloudflare) and compare the answers. If both return your new value, propagation is effectively complete for most users. You can also use our DNS Lookup tool to check live records.