How can I check if my DNS records have propagated?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
You've just added your SPF record, or updated your DMARC policy, and now you're wondering whether it's actually live. That's what DNS propagation checking is all about.
When you change a DNS record, that change doesn't appear everywhere instantly. DNS resolvers around the world cache records for a period of time defined by something called TTL (time-to-live). Until that cache expires, some resolvers will still return the old value. So "did my record propagate?" really means "have enough resolvers around the world picked up the new version?"
The fastest way to check: use an online propagation tool. These query dozens of resolvers from different countries and show you which ones have the new record and which are still holding the old one.
- whatsmydns.net shows a world map of results across global locations
- dnschecker.org gives you a similar multi-resolver view with pass/fail indicators
Type in your domain, select the record type (TXT for SPF, DKIM, or DMARC), and you'll see which parts of the world have caught up.
If you're comfortable with the command line, you can query specific resolvers directly using dig. This is useful when you want to know what a particular DNS provider is returning right now.
dig @8.8.8.8 TXT yourdomain.comqueries Google's public DNSdig @1.1.1.1 TXT yourdomain.comqueries Cloudflare's public DNSdig @9.9.9.9 TXT yourdomain.comqueries Quad9
If you get different results from different resolvers, propagation is still in progress. That's normal. It's not a sign something broke.
To check the authoritative source directly (the DNS server that holds the actual record, before any caching), run this:
dig @ns1.yourprovider.com TXT yourdomain.com
Replace ns1.yourprovider.com with your actual nameserver. If the authoritative server shows the correct record, your update is saved correctly. Other resolvers will catch up once their TTL expires.
How long does propagation take? Usually between a few minutes and 48 hours, depending on what TTL was set on the old record. Most records propagate much faster than the 48-hour worst case people quote. If it's been more than a day and some resolvers still show the old value, it's worth double-checking that the record was saved correctly at the source.
But you can also check your SPF record and DMARC record specifically with our free tools if you want a quick syntax check on top of confirming they're live.
And if something still looks off after 48 hours, drop us a message on the SOS hotline. It's free and we're happy to take a look.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.