How Long Does DNS Propagation Take?

DNS changes don't go live instantly. Here's exactly why, how long to expect, and how to verify propagation status from the command line.

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:

  1. Your browser asks a recursive resolver (usually your ISP's, or Google's 8.8.8.8, or Cloudflare's 1.1.1.1)
  2. The resolver checks its local cache. If it has a recent answer, it returns that — without contacting your nameserver
  3. If the cache is empty or expired, the resolver queries the root nameservers → TLD nameservers → your authoritative nameserver
  4. 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:

  1. 24–48 hours before your planned change: Lower the TTL of the record you're going to change to 300 seconds (5 minutes).
  2. 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.
  3. Make your DNS change: Update the record value. With TTL=300, most resolvers will fetch the new value within 5–10 minutes.
  4. 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?
Between a few minutes and 48 hours. The actual time equals the TTL of your old record — if it was set to 86400 (24 hours), resolvers that cached it just before your change will keep the old value for up to 24 hours. If you reduced TTL to 300 before changing, propagation completes in under 10 minutes globally.
What is the difference between DNS propagation and DNS caching?
DNS propagation (your nameserver publishing the new record) happens in seconds. What causes the actual delay is DNS caching — recursive resolvers worldwide serve their cached copy of your old record until the TTL expires. "Propagation" is the common term, but the delay is almost entirely cache expiry, not a slow rollout.
Why do some people see my new DNS record but others don't?
Different users query different recursive resolvers, each with its own cache. Some may have just cached your old record; others may query fresh and get the new value. This is normal and resolves once all resolvers' caches expire.
How can I check if DNS has propagated?
Use 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.
How do I speed up DNS propagation?
Lower your TTL to 300 at least 24 hours before making the change. After waiting for the old TTL to expire, make your change. With TTL=300, propagation completes in under 10 minutes. After confirming propagation, restore the TTL to a higher value.
What is a good TTL value?
For stable records (NS, MX): 86400 (24 hours). For A records and CNAMEs: 3600 (1 hour) balances propagation speed with query load. For records under active migration: 300 (5 minutes). TTL is a tradeoff — lower TTL means faster propagation but more DNS queries against your nameserver.
Does DNS propagation affect email delivery?
Yes. If you change MX records, email may be split between old and new mail servers during propagation. Configure both to accept mail during the transition. SPF, DKIM, and DMARC changes also propagate on their own TTL timelines — adding a new sender to SPF may take hours to reach all resolvers, causing authentication failures in the meantime.