DNS

DNS Resolver Comparison Tool

Run the same DNS query against Cloudflare, Google, Quad9, OpenDNS, and custom resolvers — then see whether they agree.

Multi-resolver compare

Run the same query against several public resolvers and diff the answers.

Defaults: Cloudflare, Google, Quad9, OpenDNS. Add comma-separated public IPs.

Results

Sample Live example: codynet.com A across four public resolvers. Run your own compare above to replace it.

codynet.comA38 msAll resolvers agree
ResolverStatusLatencyRecords
Cloudflare
1.1.1.1
OK27 ms
  • 20.118.138.147
Google
8.8.8.8
OK27 ms
  • 20.118.138.147
Quad9
9.9.9.9
OK19 ms
  • 20.118.138.147
OpenDNS
208.67.222.222
OK26 ms
  • 20.118.138.147

Practical guide

How to compare DNS resolvers

Use this DNS resolver comparison tool to query several public resolvers at once and spot disagreement. It is the fastest way to confirm whether a record change has propagated, whether a resolver is caching a stale answer, or whether a problem is local to your network or global.

What this tool checks

The comparison sends the same DNS query — same name, same record type — to several public resolvers in parallel and lays their answers next to each other. Instead of trusting a single resolver, you see what Cloudflare, Google, Quad9, OpenDNS, and any custom resolver each return for the record, so you can tell at a glance whether the internet agrees on the answer.

When to use it

Reach for the comparison right after you change a record and want to watch it propagate, when a site works for some users but not others, or when you suspect a resolver is handing back a stale or filtered answer. Comparing a public resolver against your ISP or internal resolver quickly separates a local caching problem from a genuine zone problem. For the caching mechanics behind uneven propagation, see DNS TTL explained.

How to read the result

When every resolver returns the same value, the record is consistent and propagation is complete. When answers differ, the resolvers are at different points in their cache cycle — the ones still showing the old value will update once their cached copy expires. An empty answer on one resolver but data on another usually means that resolver has not yet fetched the record, not that the record is missing.

Common errors and what they mean

One resolver returns SERVFAIL, the rest answer. A transient upstream failure or a DNSSEC validation issue isolated to that resolver. All resolvers return SERVFAIL. The authoritative servers are unreachable or the zone's DNSSEC signing is broken — fix it at the source. All resolvers return NXDOMAIN. The name genuinely does not exist; check for a typo or a missing record. To tell these failure modes apart, read NXDOMAIN vs SERVFAIL.

Why resolvers disagree during propagation

Each resolver caches a record for the length of its TTL, and every resolver started its countdown at a different moment, so after a change they expire and refetch at different times. That staggering is exactly why a fresh change looks inconsistent across resolvers for a while. Lowering the TTL a day before a planned change shrinks the window in which resolvers disagree.

Reading the comparison at a glance

These are the patterns you will see across resolvers and what each one usually means.

PatternLikely causeWhat to do
All resolvers agreeRecord is consistent and fully propagatedNothing — you are done
Some old value, some newChange is mid-propagation; caches expiring at different timesWait out the previous TTL, then recheck
One resolver SERVFAILTransient upstream or DNSSEC issue on that resolverRecheck shortly; usually self-clears
All resolvers SERVFAILAuthoritative servers down or DNSSEC brokenFix at the zone / authoritative server
All resolvers NXDOMAINName genuinely does not existCheck for a typo or a missing record
Stable but different IPsGeo-aware authoritative routingExpected — not a propagation problem

Field notes

The most useful comparison is your own ISP resolver against a public one. When a site is down only for you, the public resolvers almost always agree with each other and disagree with your ISP — which points the finger at local caching or filtering, not the domain. Before a planned cutover, drop the TTL a day ahead so the window where these columns disagree stays short.

Example: comparing A records mid-propagation

Example input
example.com A — Cloudflare vs Google vs Quad9
Example result
Cloudflare 1.1.1.1 → 203.0.113.10
Google 8.8.8.8   → 203.0.113.10
Quad9 9.9.9.9    → 198.51.100.42

Quad9 still serves the old IP while Cloudflare and Google show the new one — the change has propagated to two of the three resolvers and Quad9 will catch up when its cache expires.

Related tools

Related guides

FAQ

What does the DNS resolver comparison tool do?
It runs the same DNS query against several public resolvers at once — Cloudflare 1.1.1.1, Google 8.8.8.8, Quad9, OpenDNS, and any custom resolver you add — and shows their answers side-by-side. That lets you see whether the resolvers agree on a record or whether a change has propagated unevenly across the internet.
Why do different DNS resolvers return different answers?
Each resolver maintains its own cache with its own TTL countdown, so after you change a record some resolvers still serve the old value until their cache expires. Resolvers can also sit in different geographic locations and receive different answers from geo-aware authoritative servers, or apply their own filtering (for example malware or content blocking). Disagreement usually means propagation is in progress, not that something is broken.
How do I know when a DNS change has fully propagated?
Run the comparison repeatedly after making a change. While propagation is in progress, some resolvers return the new value and others return the old one. When every resolver in the comparison returns the same new value, the change has rolled out to those resolvers. Full global propagation is bounded by the record's previous TTL, so lower the TTL before a planned change.
Which DNS resolvers can I compare?
The tool includes the major public resolvers — Cloudflare (1.1.1.1), Google (8.8.8.8), Quad9 (9.9.9.9), and OpenDNS — and lets you add a custom resolver by IP address. Comparing a public resolver against your own ISP or internal resolver is a fast way to confirm whether a problem is local to your network or global.
What does it mean when only one resolver returns SERVFAIL?
If a single resolver returns SERVFAIL while the others answer normally, that resolver likely hit a transient upstream failure or a DNSSEC validation problem that the others did not. If every resolver returns SERVFAIL, the issue is at the authoritative servers or with the zone's DNSSEC signing — not with any one resolver.
Is the resolver comparison tool free?
Yes. The comparison runs live through public resolvers, requires no signup, and stores no query history on the server. Enter a domain and record type and you get every resolver's answer immediately.
Why do two resolvers show different IPs for the same site?
Two common reasons. First, propagation: after a record changes, each resolver keeps serving its cached copy until that copy's TTL expires, so they update at different times. Second, geo-routing: some authoritative servers return a different address depending on where the query comes from, and resolvers sit in different locations. Persistent disagreement that never converges usually points to geo-routing rather than caching.

Last reviewed: 2026-06-25.