How long does DNS propagation take? The TTLs we measured
Short answer: it depends on which of three things you changed, and each one has its own clock. A changed record waits on its old TTL. A brand-new record waits on the zone's negative TTL, which in our sample of 36 zones ran from 1 min to 2 days, with a median of 15 min. A nameserver change waits on the delegation TTL set by the registry, which ran from 15 min to 2 days across 15 top-level domains. The tables below are the measurements.
Published · TTLs measured · external sources retrieved
Three different waits
Nothing is pushed across the internet when you save a DNS record. The authoritative nameservers answer with the new value within seconds, and every other resolver keeps whatever it cached until that answer's TTL runs out. The DNS propagation glossary entry explains the mechanism. What people call propagation time is one of three numbers:
- You changed an existing record. The worst case is the TTL the old record was served with. You set that number yourself, which is why lowering it a day ahead of a planned change works.
- You created a record that did not exist. If a resolver asked for the name before you created it, it cached the answer "nothing here" and keeps it for the zone's negative TTL. Your DNS host sets that number in the zone's SOA record, and most hosts do not let you change it.
- You changed nameservers. The delegation lives in the parent zone at the registry. Resolvers that cached it keep asking the old nameservers until the longer of two TTLs runs out: the registry's on its NS records, and the old DNS host's on its own copy of them. You cannot shorten the registry's.
How we measured
On 2026-09-23 we sent DNS queries straight to each zone's authoritative nameserver, with recursion off, so every TTL is the full value the source hands out rather than a cached copy counting down. For each top-level domain we read the TTL on the NS records it returns for a well-known domain, and the SOA it returns for a name that does not exist. For each zone we read its SOA record.
The negative TTL follows IETF, section 5:
When the authoritative server creates this record its TTL is taken from the minimum of the SOA.MINIMUM field and SOA's TTL.
So a zone whose SOA says MINIMUM 86400 but is itself served with a TTL of 900 gets a 15-minute negative TTL, not a day. 5 of the 36 zones have a MINIMUM larger than their SOA TTL, so their MINIMUM field alone would overstate the wait.
Nameserver changes: the registry's delegation TTL
This is the slow one. .com, .net, .uk hand out the NS records for every domain under them with a TTL of 2 days. A resolver that looked up your domain just before you switched nameservers may keep sending queries to the old DNS host for that long, or longer if the old host's own copy of those NS records carries a bigger TTL. Keep the old host serving correct records until the change has settled.
The second column matters for newly registered domains. Until the domain is delegated, the registry answers "no such domain", and a resolver that asked early keeps that answer for the TLD's negative TTL.
| TLD | Delegation TTL (NS) | Negative TTL | Read from |
|---|---|---|---|
| .com | 172,800 s (2 days) | 900 s (15 min) | google.com |
| .net | 172,800 s (2 days) | 900 s (15 min) | cloudflare.net |
| .org | 3,600 s (1 h) | 3,600 s (1 h) | wikipedia.org |
| .io | 3,600 s (1 h) | 3,600 s (1 h) | github.io |
| .co | 3,600 s (1 h) | 900 s (15 min) | angel.co |
| .ai | 3,600 s (1 h) | 3,600 s (1 h) | character.ai |
| .app | 10,800 s (3 h) | 900 s (15 min) | cash.app |
| .dev | 10,800 s (3 h) | 300 s (5 min) | web.dev |
| .ca | 86,400 s (1 day) | 3,600 s (1 h) | cbc.ca |
| .uk | 172,800 s (2 days) | 10,800 s (3 h) | bbc.co.uk (negative answer probed under co.uk) |
| .de | 86,400 s (1 day) | 7,200 s (2 h) | spiegel.de |
| .xyz | 3,600 s (1 h) | 900 s (15 min) | abc.xyz |
| .online | 900 s (15 min) | 300 s (5 min) | mrneon.online |
| .so | 86,400 s (1 day) | 86,400 s (1 day) | notion.so |
| .us | 3,600 s (1 h) | 900 s (15 min) | zoom.us |
New records: the zone's negative TTL
Across the 36 zones below, the median negative TTL is 15 min. 33 of 36 are at an hour or less, and 3 are a day or more (linode.com, he.net, cloudns.net). The sample is the zones of registrars and DNS hosts themselves, a handful of SaaS companies, and dc.mrneon.online, the zone where DoDomain proved its Domain Connect templates. It shows the spread, not a market share.
Zones on Cloudflare's standard DNS returned 1800 seconds (30 minutes), except basecamp.com, hey.com and 37signals.com, which returned 60; shopify.com, on Cloudflare's Foundation DNS, returned 300. Amazon Route 53 zones returned their SOA with a TTL of 900 seconds, so their negative TTL is at most 15 minutes whatever their MINIMUM says.
| Zone | DNS host | SOA TTL | SOA MINIMUM | Negative TTL |
|---|---|---|---|---|
| godaddy.com | Akamai | 3,600 | 3,600 | 1 h |
| namecheap.com | Namecheap | 3,600 | 3,600 | 1 h |
| porkbun.com | Amazon Route 53 | 900 | 86,400 | 15 min |
| squarespace.com | NS1 | 1,800 | 900 | 15 min |
| wix.com | NS1 | 3,600 | 3,600 | 1 h |
| hover.com | Tucows | 7,200 | 300 | 5 min |
| gandi.net | Gandi | 86,400 | 1,200 | 20 min |
| ovhcloud.com | OVHcloud | 3,600 | 300 | 5 min |
| ionos.com | IONOS | 86,400 | 600 | 10 min |
| hostinger.com | Hostinger | 1,800 | 1,800 | 30 min |
| bluehost.com | Cloudflare | 1,800 | 1,800 | 30 min |
| dnsimple.com | DNSimple | 3,600 | 300 | 5 min |
| name.com | Cloudflare | 1,800 | 1,800 | 30 min |
| dynadot.com | Cloudflare | 1,800 | 1,800 | 30 min |
| netlify.com | NS1 | 3,600 | 300 | 5 min |
| vercel.com | Vercel | 3,600 | 14,400 | 1 h |
| digitalocean.com | Cloudflare | 1,800 | 1,800 | 30 min |
| linode.com | Akamai | 86,400 | 86,400 | 1 day |
| vultr.com | Vultr | 300 | 3,600 | 5 min |
| dnsmadeeasy.com | DNS Made Easy | 86,400 | 180 | 3 min |
| he.net | Hurricane Electric | 86,400 | 86,400 | 1 day |
| cloudns.net | ClouDNS | 172,800 | 172,800 | 2 days |
| ns1.com | NS1 | 3,600 | 3,600 | 1 h |
| ultradns.com | UltraDNS | 86,400 | 60 | 1 min |
| imdb.com | Amazon | 900 | 900 | 15 min |
| twitch.tv | Amazon Route 53 | 900 | 60 | 1 min |
| slack.com | Amazon Route 53 | 900 | 300 | 5 min |
| stripe.com | Amazon Route 53 | 900 | 3,600 | 15 min |
| shopify.com | Cloudflare (Foundation DNS) | 300 | 300 | 5 min |
| notion.so | Cloudflare | 1,800 | 1,800 | 30 min |
| figma.com | Amazon Route 53 | 900 | 86,400 | 15 min |
| airbnb.com | NS1 | 3,600 | 3,600 | 1 h |
| basecamp.com | Cloudflare | 60 | 60 | 1 min |
| hey.com | Cloudflare | 60 | 60 | 1 min |
| 37signals.com | Cloudflare | 60 | 60 | 1 min |
| dc.mrneon.online | Glauca HexDNS | 3,600 | 3,600 | 1 h |
Resolvers cap long negative TTLs
A zone that asks for a two-day negative TTL does not always get it. The two most widely deployed open-source resolvers put a ceiling on how long they keep a negative answer. ISC:
The default max-ncache-ttl is 10800 seconds (3 hours).
NLnet Labs documents cache-max-negative-ttl with "Default: 3600", one hour. On resolvers running either default, a missing record in any of the zones above reappears within three hours at most. Public resolver services and ISPs may configure their own ceilings, and they do not publish them all.
What this means in practice
- Do not look a record up before it exists. A single query for the name, from you, a monitoring tool or an impatient verification step, plants the negative answer. Create the record first, then check.
- Check the authoritative nameservers, not a resolver. IETF requires the SOA in every negative answer ("Name servers authoritative for a zone MUST include the SOA record of the zone in the authority section of the response"), so the source always knows the truth without a cache in the way. The DNS propagation checker reads the authoritative answer and three public resolvers side by side.
- Make sure you edited the right place. If the authoritative answer is wrong, no amount of waiting helps. The usual cause is a record added at the registrar while the zone is served somewhere else. The DNS provider detector shows which host actually answers, and registrar vs DNS host explains the difference.
- For a planned change, lower the TTL first. Drop the record's TTL to a few minutes, wait one full old TTL, then make the change.
If you are building a custom-domain feature
When your customers add a record for your product, the negative TTL is the delay they feel. A verify button that queries a public resolver before the customer has saved the record can make the next several minutes, or hours on some hosts, look like failure. DoDomain checks each record at the domain's authoritative nameservers, so a record counts as live as soon as the customer's DNS host serves it, and it keeps re-checking connected domains afterwards. The TXT record verification entry covers the ownership step, and how to let customers use their own domain covers the whole feature.
Sources
All external pages retrieved 2026-09-23. Quotes are verbatim. The TTL tables are DoDomain's own measurements from 2026-09-23.
- IETF, RFC 2308: Negative Caching of DNS Queries (DNS NCACHE). How long a resolver may cache a 'no such name' or 'no such record' answer, and where that number comes from.
- ISC, BIND 9 Configuration Reference. BIND's default ceiling on how long it keeps a negative answer.
- NLnet Labs, unbound.conf(5). Unbound's default ceiling on how long it keeps a negative answer.