Skip to main content

DNS Guide

DNS Propagation — How Long It Takes and How to Check

You updated a DNS record and now you are waiting. Some users see the new IP, others still get the old one. This is DNS propagation — the process by which DNS changes spread across the global network of resolvers. This guide explains exactly what happens, why it takes time, and how to monitor progress.

How DNS Resolution Works

When you type a domain name into your browser, your device asks a recursive resolver (usually your ISP or a public resolver like 1.1.1.1 or 8.8.8.8) for the IP address. The resolver checks its cache first. If it has a recent answer, it returns it immediately. If not, it queries the authoritative nameservers for the domain, caches the result, and returns it.

The key concept is TTL (Time to Live). Every DNS record has a TTL value in seconds that tells resolvers how long to cache the result. A TTL of 3600 means the resolver will cache the answer for one hour before checking the authoritative server again.

Why Propagation Takes Time

"DNS propagation" is a bit of a misnomer. DNS changes do not actively push out to resolvers. Instead, each resolver independently refreshes its cache when the TTL expires. This means:

  • Resolvers that queried your domain 5 minutes ago (with a 3600s TTL) will keep the old record for another 55 minutes.
  • Resolvers that have never queried your domain will get the new record immediately.
  • Some ISP resolvers do not strictly honor TTL and may cache longer than specified.

This is why different users in different locations see different results during the propagation window.

How Long Does Propagation Take?

The theoretical maximum is determined by the TTL of the old record. If the old TTL was 86400 (24 hours), it could take up to 24 hours for every resolver to refresh. In practice:

  • Low TTL (300s / 5 minutes) — Most resolvers update within 5-15 minutes.
  • Default TTL (3600s / 1 hour) — Most resolvers update within 1-2 hours. Full propagation within 4-6 hours.
  • High TTL (86400s / 24 hours) — Can take up to 24-48 hours, with outlier ISPs taking even longer.

Pro tip: If you know you are about to make a DNS change, lower the TTL to 300 seconds a few hours beforehand. After making the change and confirming it has propagated, raise the TTL back to a higher value for better caching performance.

How to Check Propagation Progress

You can check whether resolvers around the world have picked up your change using a DNS propagation checker. The CheckFast DNS Checker queries multiple global resolvers and shows you which ones return the old record and which return the new one.

You can also check from the command line:

# Check against Google's resolver
dig @8.8.8.8 example.com A

# Check against Cloudflare's resolver
dig @1.1.1.1 example.com A

# Check the authoritative nameserver directly
dig @ns1.your-provider.com example.com A

If the authoritative nameserver returns the new record but public resolvers still show the old one, propagation is in progress. Just wait for caches to expire.

Common DNS Record Types

Understanding record types helps you know what to check:

  • A record — Maps a domain to an IPv4 address. The most common record type.
  • AAAA record — Maps a domain to an IPv6 address.
  • CNAME record — Alias that points one domain to another. Cannot coexist with other records at the same name.
  • MX record — Specifies mail servers for the domain. Critical for email delivery.
  • TXT record — Stores text data. Used for SPF, DKIM, DMARC, domain verification, and more.
  • NS record — Delegates a domain to specific nameservers. Changes to NS records typically take the longest to propagate.

Troubleshooting Slow Propagation

  • Verify the change on the authoritative server. If the authoritative nameserver is still returning the old record, the change has not been saved or published correctly.
  • Check for caching layers. Cloudflare and other CDNs add their own caching on top of DNS. Purge the CDN cache if needed.
  • Flush your local cache. Your OS caches DNS too. On macOS: sudo dscacheutil -flushcache. On Windows: ipconfig /flushdns.
  • Browser caching. Browsers cache DNS lookups independently. Try an incognito window or a different browser.

Check DNS propagation

See how your DNS records resolve from multiple global locations.

Check DNS Now →