← blogOctober 30, 202611 min read

How to Check DNS Records Worldwide: Verify Any Domain

TL;DR. Check DNS records worldwide by querying the same record type from at least four public resolvers in different regions and comparing the answers side by side, then querying the authoritative nameserver directly to see the zone with no cache in the path. If the authoritative answer is right and a resolver still serves the old value, it is caching, not a broken record. Re-check once the old TTL has expired.

Quick Summary

To check DNS records worldwide, query the same record type from at least four public resolvers in different regions and compare the answers side by side. Query the authoritative nameserver directly to confirm the source of truth, then re-check after the TTL expires.

  • A local lookup shows you one resolver's cached view.
  • A CNAME cannot sit on the root domain alongside MX and TXT records, which is where a lot of custom-domain setups quietly break.
  • Querying the authoritative nameserver shows the source of truth with no cache in between.
  • Propagation time is the old record's TTL plus the time resolvers take to refresh after it expires.
  • Lower the TTL to 300 seconds a day before a planned change, then raise it back afterwards.

Why Checking DNS Records Worldwide Beats a Single Local Lookup

A DNS lookup from your laptop tells you what one resolver knows right now. Your laptop is not the audience.

Nearly every "DNS is broken" complaint I have had to untangle turns out to be one of two things: a record that was never published the way the provider asked for, or a record that was published fine and is still sitting cached somewhere. Those two problems look identical from a single terminal window, and they need completely different responses. The rest of this is about telling them apart.

DNS propagation is the process by which an updated record spreads from an authoritative nameserver out to recursive resolvers. It happens gradually, resolver by resolver, as each cached copy expires on its own schedule.

Why bother querying from more than one place:

  • Resolvers cache. A resolver will keep serving an answer until its TTL runs out, regardless of what the authoritative server says in the meantime.
  • Some networks route DNS queries to different endpoints, so the answer genuinely varies by region.
  • Mail providers run their own lookups for MX, SPF, DKIM, and DMARC, and theirs are the lookups that decide whether your mail is delivered.

If you are pointing a hobby site at a new host, honestly, none of this is worth the ceremony. Change the A record, refresh in an hour, move on. It is email that makes the extra two minutes pay for themselves, because a stale MX answer in somebody else's resolver does not show up as a broken page. It shows up as mail that never arrives.

The DNS Record Types You Need to Verify

Six record types cover almost everything worth checking, and each one fails in its own distinctive way. (A record, in case the terminology is new, is just one line in a zone file mapping a name to a value: an address, a mail server, a block of text.)

RecordWhat it answersCommon mistake
AWhich IPv4 address does this hostname use?Stale IP after a server move
AAAAWhich IPv6 address does this hostname use?Published with no IPv6 service behind it
CNAMEWhich other hostname does this alias point to?Pointing the root domain at a CNAME
MXWhich servers receive mail for this domain?Wrong priority order
TXTWhat verification and policy data applies?Multiple SPF records instead of one
SOAWhich nameserver is authoritative, and what are the timers?Serial number never incremented

A, AAAA, and CNAME: Where a Hostname Points

A records hold an IPv4 address. AAAA records hold an IPv6 address. A CNAME points one hostname at another hostname instead of at an address.

The CNAME is where most setups break. A CNAME cannot coexist with other records at the same name, which means it cannot sit on the root domain next to your MX and TXT entries. Use A and AAAA at the root. Save CNAMEs for subdomains like www that carry nothing else.

The nastiest version of this is a CNAME left behind after a migration. It keeps serving the old target long after someone published a shiny new A record, and the two answers disagree across resolvers in a way that looks, from the outside, exactly like slow propagation.

MX, TXT, and SOA: Mail Routing and Domain Metadata

MX records list the mail servers for a domain, each with a priority number, lowest tried first. RFC 974 is where that ordering was originally specified. Priorities in the wrong order rarely lose mail outright; they just route it the long way round, which is harder to notice and harder to diagnose later.

TXT records carry SPF, DKIM public keys, and DMARC policy, each at its own name. Publish exactly one SPF record per domain. Two SPF records produce a permanent error rather than a merged policy, and this trips people up constantly when a second sending tool gets added months after the first.

SOA records hold the zone's primary nameserver, its serial number, and the timers secondary nameservers use to stay in sync, plus how long resolvers should remember that a name does not exist. How long a resolver keeps an actual answer is set by the TTL on each record, not by the SOA. For the full DKIM publishing sequence, see how to configure DKIM for custom domains.

How to Use a Global DNS Checker Step by Step

Global DNS checkers are web tools that query your records from a spread of resolvers at once and lay the answers out side by side. Using one properly takes about two minutes.

  1. Pick the record type before anything else. Most checkers default to A, which will tell you nothing about your mail records.
  2. Enter the exact hostname. example.com and mail.example.com are two different lookups, and plenty of confusion starts right here.
  3. Select at least four resolver locations, spread across regions rather than four in the same country.
  4. Run the query and read the response column: resolver, location, answer, response time.
  5. Compare the answers, not the timings. Response time is a measure of network distance.
  6. Re-run once the TTL has expired. The second check is the one that tells you whether the change actually spread.
  7. Screenshot the result with a timestamp. It ends arguments with hosts and mail providers faster than any amount of explaining.

The free checkers I have used query a fixed list of public resolvers, which is a real limitation and one they tend not to advertise. They cannot see inside a corporate resolver or an ISP cache, and they do not sample anything like the whole internet. A clean board means your records are visible from those particular nodes. That is good evidence. It is not proof.

How to Check MX Records Worldwide and Read the Results

To check MX records worldwide, query the MX type from several resolvers and confirm every location returns the same hostnames in the same priority order. Mail routing is the record type where a partial mismatch turns into actual lost delivery rather than a cosmetic inconsistency.

What the output can tell you:

  • Hostnames match everywhere, so routing is consistent.
  • Priorities differ between locations. An old set is still cached and live somewhere. Wait out the TTL rather than republishing.
  • One location returns nothing at all, which often means that resolver cached the absence of the record from before you published it.

A mistake I see repeatedly is checking MX on the root domain when the provider's instructions put mail on a subdomain. Go back to the setup page, confirm which name they asked you to publish, and query that one.

Mailbox providers do their own lookups the moment a message arrives at their edge, from their own resolvers, with their own caches, so a clean answer in your terminal says nothing about theirs.

A Command-Line Workflow for Checking Records Worldwide

The reproducible version of all this is to query named public resolvers directly, which skips your local cache and behaves identically on every machine. Put your own domain in place of example.com in every command below. The last command also needs your domain's nameserver, so look that up first:

# Find your authoritative nameservers (use one in the last command)
dig NS example.com +short

# A record via Google public DNS
dig @8.8.8.8 example.com A +short

# MX record via Cloudflare public DNS
dig @1.1.1.1 example.com MX +short

# TXT record via Quad9
dig @9.9.9.9 example.com TXT +short

# Ask the authoritative nameserver directly
dig @ns-718.awsdns-25.net example.com SOA +short

The nameserver in that last line is only an example of what a Route 53 one looks like. Use one of the hostnames your dig NS lookup returned. A guessed name like ns1.yourdomain.com usually fails with couldn't get address, because most domains have no nameserver by that name. On Windows, nslookup -type=NS example.com lists them.

Run the same query against three or four of them and compare. On Windows, nslookup example.com 8.8.8.8 does the equivalent job.

The last command is the one people skip, and it is the one that answers the question. Querying the authoritative nameserver shows you the zone itself with no cache in the path. If the authoritative answer is right and a public resolver is still handing out the old value, you have a caching situation, and there is nothing further to fix. To confirm an answer really came from the source, check for the aa flag, as covered in how to query authoritative DNS servers.

Two more that earn their keep:

  • dig example.com +trace walks the delegation down from the root and shows you exactly where the chain breaks.
  • dig example.com A +noall +answer strips the output down to something you can pipe into a script or paste into a ticket.

For a hands-on way to confirm records have actually spread, learn how to verify DNS propagation with lookup checks against multiple resolvers.

How Long DNS Propagation Time Really Takes

Propagation time is the old record's TTL plus however long resolvers take to refresh once it has expired. A 300-second TTL can be visible worldwide within minutes. A 24-hour TTL can take the full day, and hammering the lookup does not make it go faster.

Which means propagation is not really a waiting period at all. It is a cache expiry schedule, and you set most of it yourself before you touch anything.

A few things that follow from that:

  • Lower the TTL ahead of a planned change. Drop it to 300 seconds a day before, make the change, raise it back once you are happy.
  • Expect stragglers. I have seen answers outlive their stated TTL more than once, and I assume some resolvers clamp short values to a floor of their own.
  • Negative caching runs on a separate timer. A name that did not exist when someone looked it up gets remembered as not existing.
  • The TTL that governs a cached answer is the one that was live when the resolver fetched it. Shortening it today does nothing for a copy already sitting in memory.

If a change is hours old and one region is still stubbornly wrong, suspect a second authoritative nameserver serving an old copy of the zone. That is a delegation or sync problem wearing a propagation costume.

When Global Results Disagree: A Decision Tree

Inconsistent answers usually come down to one of four causes, each with its own fix. Work through them in this order, because answering the later questions before the earlier ones wastes time.

  1. Is the authoritative answer correct? Query the nameserver directly. If the zone is wrong, fix the zone and ignore everything else until you have.
  2. Do all the authoritative nameservers agree with each other? If one is stale, the zone did not sync. Republish or force a transfer.
  3. Is the TTL window still open? If the change is younger than the old TTL, there is nothing to do but wait and re-check.
  4. Is it a single resolver disagreeing after the TTL has passed? It is holding a stale or negative entry and will clear itself.

Pass all four and still see variation, and you are probably looking at geographic routing rather than a record problem. Large networks hand out different addresses by design.

This is also the point where two separate problems get tangled together. SPF, DKIM, and DMARC establish who sent a message; they say nothing whatsoever about whether the recipient wants it, so a domain with flawless records can still land in spam and leave you staring at perfectly green DNS checks. The guide to email authentication and inbox placement covers how to separate the two.

Verifying Your Sending Domain Before Your First Campaign

A sending domain is ready when every record your platform gave you resolves correctly from more than one resolver. In SEMAOS that is six records: an ownership TXT record, three DKIM CNAMEs, and an MX and an SPF record on the mail subdomain. SEMAOS's verify step checks the ownership and DKIM records, not MX or SPF, so a verified domain does not prove those two are right. Check them yourself, before the first send. Doing it afterwards, from the bounce log, is a worse experience.

The sequence that avoids surprises:

  • Query the ownership TXT record at _semaos.yourdomain.com from at least four resolvers
  • Confirm all three DKIM CNAMEs resolve to the values shown
  • Check MX and SPF on the mail subdomain
  • Publish a DMARC TXT record at _dmarc and confirm it resolves
  • Re-check everything after the TTL window closes

For the full walkthrough, see how to set up your sending domain. For the publishing order, follow the DMARC setup steps so the policy record goes live at the right point in the sequence. Once the TTL window has closed, the free deliverability scan reads your root domain's DMARC and SPF records in one pass, along with MX and the DKIM keys your mailbox provider publishes. It reports what those records contain, not whether every resolver has caught up with them, so it doesn't replace the checks above.

So: query from more than one place, compare against the authoritative server, and assume caching before you assume you broke something. The TTL advice is the part everyone nods along to and nobody actually does, myself included, right up until the morning a cutover takes a full day instead of five minutes.

FAQ

How do I check DNS records from multiple locations?

Use a global DNS checker or run dig against named public resolvers such as 8.8.8.8, 1.1.1.1 and 9.9.9.9. Pick the record type first, enter the exact hostname, select at least four resolver locations spread across regions, and compare the answers rather than the response times.

How long does DNS propagation actually take?

It is the old record's TTL plus however long resolvers take to refresh after it expires. A 300-second TTL can be visible worldwide within minutes; a 24-hour TTL can take the full day. Shortening the TTL today does not affect copies already cached.

Why do different resolvers return different DNS answers?

Usually one of four causes: the zone itself is wrong, authoritative nameservers disagree because the zone did not sync, the old TTL window is still open, or a single resolver holds a stale or negative entry. Work through them in that order; if all four pass, you are likely seeing geographic routing.

How do I verify a sending domain before my first campaign?

Query the ownership TXT record from at least four resolvers, confirm the three DKIM CNAMEs resolve to the values shown, and check MX and SPF on the mail subdomain yourself, since SEMAOS's verify step checks only the ownership and DKIM records. Publish and confirm a DMARC TXT record at _dmarc, then re-check everything after the TTL window closes.