What you need
The name and record type you changed, the new value you expect, and ideally the TTL of the old record. You can read the TTL in your DNS provider's control panel before you edit. Changes to nameservers are made at the registrar instead and follow the same caching logic, with longer TTLs.
Reading the result
Say you moved www.example.com from 192.0.2.10 to 203.0.113.20, and the old A record had a TTL of 3600 seconds. Ten minutes after the change the checker shows:
| Resolver | Records |
|---|---|
| Google (8.8.8.8) | 203.0.113.20 |
| Cloudflare (1.1.1.1) | 203.0.113.20 |
| Quad9 (9.9.9.9) | 192.0.2.10 |
| OpenDNS (208.67.222.222) | 203.0.113.20 |
The badge reads INCONSISTENT. Nothing is wrong: Quad9 answered a query for this name shortly before the change and may keep that answer for up to 3600 seconds. Within an hour of the change every resolver will have asked again and received the new address.
"Propagation" is really cache expiry. Your DNS provider updates its own servers within seconds; the rest of the internet catches up as cached copies time out. That gives a simple planning rule:
| Old TTL | Lower it to 300 s at least this long before the change | Worst-case wait after the change |
|---|---|---|
| 3600 s | 1 hour | 5 minutes |
| 86400 s | 24 hours | 5 minutes |
Raise the TTL again once the new value is confirmed everywhere.
Common pitfalls
- Reading PROPAGATED as "my change is live". The badge only means the resolvers agree. If all four still return the old value, they agree on that. Check that the records are the new ones.
- Overlooking error rows. A resolver that times out or answers
NXDOMAINis left out of the comparison, so the badge can say PROPAGATED while one row shows an error. - Expecting identical answers for big sites. CDNs and load-balanced services deliberately return different addresses depending on where the resolver is. INCONSISTENT is normal there.
- Checking a name that has no address yet. The checker only accepts names that already resolve to an IP address, so a TXT-only name such as
_dmarc.example.comis refused. Check the parent domain, or use the Email Deliverability Checker for SPF and DMARC. - Looking up a name before creating it. Resolvers also cache "this name does not exist" for a while. If you queried a new subdomain too early, wait before concluding the record is broken.
Going further
How resolvers, root servers, TLD servers and authoritative servers pass a query along, and where each cache sits, is covered in How DNS Works.