How to Check DNS Propagation

Use dig, nslookup and whatsmydns.net to see which resolvers already return your new DNS record, and read the TTL to know how long the old one can stay cached.

You changed a DNS record and the site still points at the old server, or a new domain does not resolve yet. These commands show what resolvers currently return and how long stale answers can linger.

Query the record from your machine

dig +short yourdomain.com

Add a record type to check something other than the A record:

dig +short yourdomain.com MX

On Windows, which does not ship dig:

nslookup yourdomain.com
nslookup -type=MX yourdomain.com

Ask a specific resolver

Your ISP's resolver can hold the old value while public resolvers have moved on. Query them directly:

dig @1.1.1.1 +short yourdomain.com
dig @8.8.8.8 +short yourdomain.com

To see the live value with no caching at all, ask the domain's own nameservers. List them, then query one:

dig +short NS yourdomain.com
dig @ns1.yourdomain.com +short yourdomain.com

Replace ns1.yourdomain.com with a name from the first command's output. If the nameserver returns the new value and everything else returns the old one, the change is correct and only caches are behind.

Check worldwide results

Open whatsmydns.net, enter the domain, choose the record type (A, CNAME, MX, TXT) and press Search. Each location shows what its resolver returns. A mix of old and new values means propagation is still in progress; all new means it is done.

Read the TTL

dig yourdomain.com

In the ANSWER SECTION, the number after the name is the TTL in seconds:

yourdomain.com.    3600    IN    A    203.0.113.10

Any resolver that cached the old record keeps it for up to that long. Run the command twice against the same resolver: if the number counts down, that resolver is serving from cache and the value expires when it reaches zero.

Before a planned change. Lower the TTL to 300 at least a day ahead. The old TTL has to expire before the new, shorter one takes effect everywhere. Make the change, confirm it, then raise the TTL again.

If only your machine is stale. Flush the local cache. macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Windows: ipconfig /flushdns. Then restart the browser, which keeps a cache of its own.

More Websites how-tos