Back to Help Center
DNS & RECORDS August 10, 2026 · 6 min read

Understanding DNS Propagation

You updated your DNS record — but your site still shows the old content. DNS propagation is why. Here's how resolvers cache records, how TTL controls the wait time, and how to verify your changes have propagated globally.

DNS propagation is one of the most misunderstood concepts in web infrastructure. It’s not a single event — it’s a gradual process that happens independently on thousands of DNS resolvers around the world.

How DNS Caching Works

When a resolver (like Google’s 8.8.8.8 or your ISP’s DNS) looks up a record, it caches the result for the duration of the TTL (Time to Live) value in that record.

Resolver gets: example.com A 93.184.216.34 TTL=3600
Resolver caches this for 3600 seconds (1 hour)
Any query for example.com during this hour → returns cached 93.184.216.34
After 3600 seconds → resolver fetches fresh data from authoritative nameserver

When you change a DNS record, you’re changing it at your authoritative nameserver. But every resolver that has the old value cached will continue serving it until their cache expires.

The TTL: Your Primary Control

TTL determines how long your record is cached. This is the main lever you control:

TTL ValueCache DurationUse When
60s1 minuteDuring active migrations, testing
300s5 minutesPre-migration staging
3600s1 hourNormal operations
86400s24 hoursStable infrastructure, reduces resolver load

Best practice for planned DNS changes:

  1. 24 hours before: Lower TTL to 300 seconds
  2. Wait the old TTL for caches to expire (so resolvers pick up the new short TTL)
  3. Make your change — now it propagates in 5 minutes
  4. Verify using multiple resolvers (DomainScan checks from multiple locations)
  5. After confirmation: raise TTL back to 3600

If you didn’t lower TTL beforehand, you’re stuck waiting for the old TTL duration.

What “Propagation” Actually Is

Propagation is simply the time it takes for all cached copies of the old record to expire and resolvers to fetch the new value. There’s no “push” mechanism — DNS is a pull system.

Your DNS provider (authoritative) — change is instant here
    ↓ (resolvers pull on cache expiry, not push)
Google 8.8.8.8      — pulls after TTL expires
Cloudflare 1.1.1.1  — pulls after TTL expires (may differ from Google)
Your ISP resolver   — pulls after TTL expires
User's browser cache — may cache separately from resolver (short TTL)

Each resolver has its own independent cache. Propagation isn’t complete until all resolvers’ caches expire.

Checking Propagation Status

DomainScan’s DNS lookup checks your record from multiple locations simultaneously:

  • North America (US East, US West)
  • Europe (Frankfurt, London)
  • Asia Pacific (Singapore, Tokyo)
  • South America (São Paulo)

If you see the new value in most locations but not all, propagation is still in progress. If you see the old value everywhere, your change may not have saved correctly — verify at your DNS provider’s dashboard.

Local DNS Cache vs. Resolver Cache

Your computer also caches DNS results independently of your ISP resolver. Even if the resolver has the new value, your computer may serve from its local cache.

Clear your local DNS cache:

# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

# Windows
ipconfig /flushdns

# Linux (systemd-resolved)
sudo systemd-resolve --flush-caches

After flushing, open a new browser tab (Chrome has its own DNS cache — you may also need chrome://net-internals/#dns → Clear host cache).

Browser DNS Cache

Chrome, Edge, and Firefox maintain their own DNS caches, separate from the OS:

  • Chrome/Edge: Navigate to chrome://net-internals/#dns → Click “Clear host cache”
  • Firefox: About:config → network.dnsCacheExpiration = 0 (temporarily), then back to 60

Common Propagation Scenarios

Migrating to a New Host

Lower TTL → wait → update A record → verify with DomainScan from multiple regions → once confirmed everywhere, raise TTL.

Don’t cancel your old hosting until propagation is complete — users still hitting the old IP need the old server to be up.

Switching Email Providers

MX record changes are particularly important to verify. Email sent during the transition may be queued at sending servers until MX resolves. Allow 24-48 hours before decommissioning the old mail server.

Nameserver Changes

NS record changes propagate through the registry (e.g., Verisign for .com) which has its own update schedule. These can genuinely take 24-48 hours. TTL on NS records is set by the registry, not you.

When Propagation Seems Stuck

If DomainScan shows the old value everywhere after you’ve waited longer than the TTL:

  1. Verify at source: Use your DNS provider’s dashboard to confirm the record is saved correctly
  2. Check the TTL: Query dig +nocmd example.com A +answer — the TTL field shows remaining cache time
  3. Query authoritative directly: dig A example.com @ns1.yourprovider.com — bypasses caches, hits authoritative server directly
  4. Check for negative caching: If the record didn’t exist and returned NXDOMAIN, that negative response is also cached (for the SOA minimum TTL)

Common Questions

01

How long does DNS propagation actually take?

The honest answer: it depends on the TTL of the old record. If the record had a TTL of 3600 (1 hour), resolvers cache it for up to 1 hour after you make a change. After that, they fetch the new value. Most of the world sees changes within 1-4 hours for typical TTLs. 'Up to 48 hours' is often cited but is rarely relevant today — it applied to old root zone update schedules, not typical record changes.

02

I can see the new value but my colleague in another country still sees the old one. Why?

Different users use different DNS resolvers (ISPs, Google, Cloudflare) each with their own cache. If your resolver's cache expired and fetched the new value, you see it. Your colleague's resolver may still have the old value cached. Wait for their resolver's cache to expire. In the meantime, they can clear their local DNS cache or use a different resolver temporarily.

03

Can I force DNS propagation to be instant?

You can't force remote resolvers to flush their caches. The only thing you control is TTL: set it low (60-300 seconds) before making a change, and propagation will be much faster. After the change is confirmed, raise TTL back to 3600 or higher. If you didn't lower TTL in advance, you'll wait for the old TTL to expire.