The OriginalHostChecker

DNS Propagation Checker

Enter a domain to see what four major public DNS resolvers return for its A record right now, how long each may keep that answer, and whether they agree. Free, no signup.

Try

What this DNS propagation checker shows

“DNS propagation” is the name people give to the wait before a DNS change shows up everywhere. Nothing is pushed out to the world during that wait. The servers that answer DNS questions for other people, called resolvers, remember each answer for a number of seconds that the record itself sets, its TTL (time to live). Your DNS provider’s own servers give the new answer as soon as the change has been published to all of them, but a resolver that already holds the old answer keeps handing it out until its copy runs out. Every resolver’s copy runs out at a different moment, so for a while some give the old answer and some give the new one.

This checker asks four public resolvers the same question at the same time (Google at 8.8.8.8, Cloudflare at 1.1.1.1, OpenDNS at 208.67.222.222, and Quad9 at 9.9.9.9), then lays the answers side by side with the time each may still keep its answer. It looks up the A record, the IPv4 address a name points to. Every question comes from HostChecker’s one server, so this is not a test from many places around the world. Each of these services runs servers in many locations behind a single address and answers from the location nearest the asker, which here is always the same one. What you see also depends on whether you enter a domain name or an IP address.

For a domain name

Enter a domain and the checker looks up its A record on each resolver. The first tile says how many of the four agree, and the table shows what each one answered. Here is an example of a name whose address was changed a few minutes ago, with what each part tells you:

Example What a check of example.com could show shortly after its address changed. Not a live result.
Resolvers agree
3 of 4
give the most common answer. Green and “All match” when all four do, amber otherwise.
Resolvers checked
4

A record answers

ResolverAnswer
Google
8.8.8.8
203.0.113.20
TTL 300 s
Cloudflare
1.1.1.1
203.0.113.20
TTL 212 s
OpenDNS
208.67.222.222
203.0.113.10
TTL 74 s
Quad9
9.9.9.9
203.0.113.20
TTL 130 s

TTL is how many more seconds that resolver may serve this answer before it asks again. Differences are often normal (CDNs and large sites route different resolvers to different servers), and after a change a resolver showing the old value switches when its TTL runs out.

Reading the table:

Under “Show complete raw command output” is dig’s own reply from each resolver. Here is what one looks like for a name that is an alias:

Example What the raw output for www.example.com could show. Not a live result.

Raw output (the first of four commands)

$ dig +noall +answer +comments @8.8.8.8 www.example.com A
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41873
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; ANSWER SECTION:
www.example.com. 1800 IN CNAME example.com.
example.com. 300 IN A 203.0.113.20

The word after status: is the response code (NOERROR for a normal answer, NXDOMAIN when the name does not exist, SERVFAIL when the resolver failed). The numbers after ANSWER and AUTHORITY count the records in those sections. A line starting EDE, when a resolver adds one, is an extended error code that gives a reason, such as “DNSSEC Bogus”. In the answer section, the number after the name is that resolver’s remaining TTL. Here the alias has 1800 seconds left and the address 300, so the TTL line would show 300, the lowest in the answer.

For an IP address

An A record is what a name points to, so there is nothing to propagate for an IP address on its own. For an IP address the checker asks the same four resolvers for its reverse DNS (PTR) record instead, the name registered for the address, and compares those. The card looks the same, with the table titled “Reverse DNS (PTR) answers”. Here is an example:

Example What a check of 203.0.113.10 could show. Not a live result.
Resolvers agree
All match
same answer everywhere
Resolvers checked
4

Reverse DNS (PTR) answers

ResolverAnswer
Google
8.8.8.8
server10.example-hosting.net.
TTL 3600 s
Cloudflare
1.1.1.1
server10.example-hosting.net.
TTL 2874 s
OpenDNS
208.67.222.222
server10.example-hosting.net.
TTL 3600 s
Quad9
9.9.9.9
server10.example-hosting.net.
TTL 1180 s

TTL is how many more seconds that resolver may serve this answer before it asks again.

The owner of the address block sets the reverse name, which is usually a hosting company or an internet provider, so a change to it is made with them and not at your domain registrar. Addresses on private networks, such as 10.x.x.x or 192.168.x.x, have no public reverse name: resolvers answer that none exists, and the card then says “No PTR record found”. IPv6 addresses are not accepted.

Either way, this check has limits that matter. It looks up only the A record (or the PTR for an IP address), so it does not show AAAA (IPv6), MX, TXT, NS, or other record types, and it cannot tell you that an email or verification change has spread (the FAQ shows how to check those with dig). It asks four public resolvers, not your internet provider’s resolver, your router, your computer, or your browser, each of which keeps its own cache and may still hold the old answer. It does not ask your domain’s own name servers, so it cannot tell you whether the change was saved correctly. It does not validate DNSSEC; it only sees the SERVFAIL that a resolver returns when validation fails. And each resolver is asked once, which is one sample from a service with many caches behind one address.

How to read the result

Example What a check of a name that does not exist could show. Not a live result.
Resolvers agree
All match
but nothing was found
Resolvers checked
4

A record answers

ResolverAnswer
Google
8.8.8.8
Name does not exist (NXDOMAIN)
Cloudflare
1.1.1.1
Name does not exist (NXDOMAIN)
OpenDNS
208.67.222.222
Name does not exist (NXDOMAIN)
Quad9
9.9.9.9
Name does not exist (NXDOMAIN)

NXDOMAIN means the name does not exist as far as that resolver can tell. Resolvers also remember that for a while.

“All match” in amber is not a pass. It means every resolver gave the same outcome, and here that outcome is “nothing found”. The tile is green only when all four agree and found an address.

How long does DNS propagation take?

When you change a record: up to the old TTL

A resolver may keep an answer for as long as the TTL says (RFC 1035 defines it as the time the record may be cached before the source should be asked again). A resolver that fetched the old record a moment before you made the change can therefore keep it for the record’s whole TTL. With a TTL of 300 that is five minutes, and with 86400 it is a day. Resolvers that fetch afterward get the new value at once. The TTL is a ceiling and not a promise, since a resolver may drop an answer sooner, and some resolvers can be set to cap very long TTLs or to raise very short ones. So the dependable rule is that nearly everything has the new value after the old TTL has passed, and the TTL line shows you the countdown for each of the four.

When a record did not exist before: the negative TTL

Resolvers also remember that a name or record does not exist (RFC 2308 calls this negative caching). If someone looked the name up before you created it, that “no” is kept for a time taken from the zone’s SOA record, the lower of the SOA’s own TTL and its minimum field. RFC 2308 says values from one to three hours work well and values over a day are problematic, and the choice is up to the zone’s owner. DNS Lookup shows a domain’s SOA record: its own TTL is in the raw output, and its last number is the minimum field.

When you change name servers: until the delegation expires

Moving a domain to a different DNS provider is two changes. The registrar tells the domain’s registry which name servers to list, and the registry publishes that list in its own zone (a generic TLD’s registry must show a change on its servers within an hour in at least 95% of ICANN’s checks; country-code registries set their own rules). After that, resolvers keep using the name servers they already know until the cached list expires, and the registry decides its TTL. For .com it is measured in days, and you can see the figure by running dig +norec example.com NS @a.gtld-servers.net and reading the number beside each name server. That is why a name server change can take a day or two to settle for everyone while a record change takes minutes. This checker does not look at name servers, but the A record it shows is served by whichever provider each resolver currently uses, so a name server move shows up as resolvers disagreeing for a while.

What helps

Common DNS propagation situations

I just changed an A record

Expect a mix of old and new answers until the old TTL has run out. Run the check now and again a few minutes later: the resolvers still on the old address should drop out one by one as their countdowns end. When all four match the new address, check the site with Host Check. If one resolver is still on the old address long after its TTL has expired, check the record at your DNS provider and make sure the domain really uses that provider (compare the Name servers in WHOIS with it).

I changed my name servers

Resolvers can keep asking the old name servers until the cached list expires, so keep the old provider answering with the same records until the change has settled. Compare the Name servers in WHOIS, which come from the registry, with the provider you meant to move to. If the domain uses DNSSEC, deal with the DS record at the registrar as part of the move: a DS record that describes the old provider’s keys makes validating resolvers return SERVFAIL for the whole domain. Your DNS provider’s documentation covers the order of steps.

I changed an MX, TXT, or other record

This checker only reads A records, so it cannot show those. Ask the same resolvers yourself with dig, for example dig @8.8.8.8 example.com MX, dig @1.1.1.1 example.com TXT, dig @9.9.9.9 example.com NS, or on Windows nslookup -type=MX example.com 8.8.8.8. The answer shows its remaining TTL. DNS Lookup shows eight record types at once, but through one resolver only.

The resolvers disagree and I changed nothing

That is often normal. Large sites and CDNs give different answers to different askers, and a name can have several addresses that resolvers hand out in rotation. Google’s resolver passes part of the asker’s network address to the name servers so they can answer by location (EDNS Client Subnet), while Cloudflare’s 1.1.1.1 does not send it, and neither does Quad9’s standard address. Four resolvers can therefore legitimately get different addresses even when asked from one place at the same moment. For a site on a single fixed address, they should all match.

A new record does not show yet

If anyone looked up the name before the record existed, resolvers remember “does not exist” for the negative TTL described above. A resolver that never saw the name asks fresh and finds the record at once, so a mix of NXDOMAIN, “No A record”, and addresses is expected for a little while. Flushing your own computer’s cache also clears its remembered “no”.

All four match but my site still shows the old one

The four public resolvers are not the only caches. Your browser, your computer, your router, and your internet provider’s resolver can all still hold the old answer, and so can a CDN or proxy in front of the site. A hosts file entry on your computer overrides DNS completely. Try another network or device, restart the browser, and flush the local DNS cache. Host Check shows which address HostChecker’s server reaches and what the site answers there.

SERVFAIL on every resolver

The resolvers could not get a usable answer from the domain’s name servers. Check that the registrar lists name servers that really hold a zone for the domain, that those servers are up, and, if DNSSEC is on, that the DS record at the registrar matches the keys your DNS provider signs with. The raw output often carries a line starting EDE that names the reason.

Frequently asked questions

What is DNS propagation?

It is the time it takes for a DNS change to reach the resolvers people actually use. Nothing is sent out to them: each resolver keeps an answer until its TTL (time to live) runs out, then asks again and learns the new value. “Propagation” is those caches expiring at different moments.

How long does DNS propagation take?

For a record change, up to the old record’s TTL: five minutes for a TTL of 300, a day for 86400. For a name server change, until the registry’s cached name server list expires, which is commonly a day or two. You will often see “up to 48 hours” quoted. That is the long end for name server changes, not a rule that applies to every change, and the TTL line in the result shows the real countdown for each resolver.

Does this check from servers around the world?

No. Every question comes from HostChecker’s one server. It asks four public resolvers, and each of those runs servers in many places behind one address, but it answers from the one nearest HostChecker. So you are seeing four resolvers from one vantage point, not a map of the world. Some “propagation checkers” show many locations; this one does not, and it does not claim to.

Which DNS resolvers does it ask?

Google Public DNS (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS (208.67.222.222), and Quad9 (9.9.9.9). These are the addresses the operators publish. Quad9’s standard address blocks known-malicious domains, which can make it differ from the others for such a name. Your internet provider’s resolver is not one of them.

Why do the resolvers show different answers?

Either a change is still working its way out of their caches, or the differences are legitimate. Large sites and CDNs answer by location or rotate several addresses, and resolvers differ in whether they pass the asker’s location along. A difference is a reason to look at the TTL, not proof of a fault. Matching sets in a different order are not counted as a difference.

Why does the TTL change between checks?

TTL here is the time left in that resolver’s cache. It counts down, and it resets to the record’s full value when the resolver fetches the record again. Each public resolver has many caches behind its one address, so two checks seconds apart can reach different caches and show different numbers.

Can I check MX, TXT, CNAME, or NS records?

Not with this tool. It checks the A record only, and follows an alias (CNAME) to the address at its end. To ask a specific resolver for another type, use dig, for example dig @8.8.8.8 example.com MX, or nslookup -type=MX example.com 8.8.8.8 on Windows. DNS Lookup shows eight record types, but from one resolver.

Does it check IPv6 (AAAA) records?

No. Only the A record, which is IPv4, is looked up, and IPv6 addresses cannot be entered. A name with only an IPv6 address shows “No A record”.

Can I enter an IP address?

Yes, an IPv4 address. A name is what has an A record to propagate, so for an IP address the checker compares the reverse DNS (PTR) record on the four resolvers instead. Addresses on private networks have no public reverse name.

How do I know when my name server change is done?

Check that WHOIS lists the new name servers, which shows the registry has them. Then ask the new provider’s name server directly with dig to confirm it has the records you expect. After that, resolvers move over as their cached name server list expires, so the A record answers here should settle within a day or two at most. Keep the old provider serving the same records until then.

Can I speed up DNS propagation?

Only partly. Lowering the TTL before a planned change is the effective step, since it shortens how long caches hold the old value. After a change, Google and Cloudflare each offer a page to clear a name from their public resolver’s cache. Nothing clears your internet provider’s resolver or other people’s computers, so the old answer fades as TTLs expire.

Does it check DNSSEC?

No. It does not validate signatures itself. The four resolvers do validate DNSSEC, and when validation fails they answer SERVFAIL, which is what you see in the table. The raw output often includes an extended error line (EDE) saying why.

Is the DNS propagation checker free?

Yes. There is no signup, no account, and no limit on how many names you check, apart from a per-visitor rate limit that keeps the service fast for everyone.

All free tools