DNS Propagation Check

Check whether a DNS change has reached the major public resolvers, and see where they still disagree.

When you change a DNS record, the new value does not appear everywhere at once. Resolvers around the world keep serving the answer they cached until that cache expires, so for a period some people see the new value and others still see the old one. This tool asks ten major public resolvers the same question at the same time and shows you who has caught up.

Enter a domain, pick a record type, and compare the answers.

What this tool checks — and what it does not

It queries ten well-known public resolvers directly and compares their answers, flagging any that differ from the majority. That answers the question people usually have: has the change reached the resolvers my visitors actually use?

It is not a geographic propagation map. Our queries run from a single server in the United States, and the large public resolvers are anycast — a query to 8.8.8.8 is answered by whichever Google node is closest to us, not by one in Tokyo or São Paulo. Any tool that genuinely shows propagation by country has to run probes in each of those countries. We would rather tell you that than draw a map we cannot honestly fill in.

Why resolvers disagree

Almost always: caching. Each record carries a TTL telling resolvers how long they may reuse a cached answer. A resolver that fetched your record shortly before you changed it is entitled to keep serving the old value until that TTL expires, and it is not doing anything wrong.

So a mixed result right after a change is normal. What matters is whether it resolves over time. If some resolvers are still serving the old value well past your TTL, look for a different cause: a stale record left on one of your name servers, two name servers publishing different zone data, or a CDN or registrar-level override you had forgotten about.

How to make a change propagate quickly

Lower the TTL before you make the change, not after. Drop it to 300 seconds a day ahead, make the change once the old long TTL has expired everywhere, confirm the result here, then raise the TTL back up.

Lowering the TTL at the same time as the change does very little, because resolvers holding the old record also cached the old TTL along with it.

Reading the statuses

Each resolver is reported as one of:

  • Match — this resolver returns the same answer as the majority.
  • Differs — it returns something else, usually a cached copy of the previous record.
  • No response — the resolver did not answer within the timeout. That is often a network or filtering issue between our server and that resolver rather than a problem with your domain.
  • NXDOMAIN — the domain itself does not exist as far as that resolver is concerned.
  • ENODATA — the domain exists, but has no record of the type you asked for. Perfectly normal when checking, say, AAAA on a domain with no IPv6.

Frequently asked questions