How to Check if DNS Has Propagated
After you change a DNS record, you want to know when the new value is actually live. Because resolvers cache answers, the change appears at different times in different places. This guide shows how to check propagation yourself with command-line tools and public resolvers, and how to confirm a change has reached everyone.
What "propagated" means
A change has propagated for a given resolver once its cached copy of the old record has expired and it has fetched the new one. Different resolvers refresh at different times, so checking propagation means asking several of them and seeing whether they agree. For the why behind the delay, see what is DNS propagation.
Check with dig (macOS / Linux)
The dig command queries DNS directly. Use +short for just the answer:
Query a specific resolver by putting @resolver before the name, and compare the answers:
dig @8.8.8.8 +short example.com A
If both return your new value, those resolvers are updated. Swap A for MX, TXT, CNAME, or NS to check other records.
Check with nslookup (Windows)
Windows ships with nslookup. Add a resolver address as the second argument to query it specifically:
nslookup -type=MX example.com 8.8.8.8
Check from multiple locations
Querying from your own machine tells you about the resolvers near you. To see the global picture, use an online DNS propagation checker that runs the lookup from servers worldwide and shows each location's answer. If a few far-flung resolvers still show the old value, that is normal — they are simply waiting out the old TTL.
Remember your own machine caches too: if a result looks stale locally, flush your DNS cache and try again.
Monitor propagation automatically
Polling by hand is fine for a one-off change. For changes you actually care about, ZoneWatcher's DNS propagation monitoring watches a curated set of public resolvers and tells you when a change has been seen everywhere — and our free DNS lookup tools let you query any record type on demand.