Domain Email DoctorScan my domain
Back to guides

Email DNS Propagation: Why Your Records Still Look Wrong After Updating DNS

Learn why MX, SPF, DKIM, DMARC, and verification records can still look wrong after DNS updates, and how to tell propagation apart from real misconfiguration.

Understand email DNS propagation and caching - 18 min

You updated your DNS records. You saved the changes. Everything looks correct inside Cloudflare, Namecheap, GoDaddy, or your DNS host.

But your email provider still says the records are missing. Or your DNS checker still shows the old MX record. Or your SPF fix appears in one tool but not another.

This is usually explained by DNS caching, wrong DNS location, nameserver changes, negative caching, or provider-side verification delay. This guide explains how to troubleshoot the issue without repeatedly changing records and making things worse.

On this page

Quick answer: why do DNS records still look wrong?

If updated email DNS records still look wrong, the most common causes are:

CauseWhat it means
DNS cache has not expiredA resolver is still showing the old record until TTL expires
You edited the wrong DNS hostThe record was added somewhere, but not where live DNS is managed
Nameservers recently changedSome resolvers may still be asking the old authoritative DNS provider
Negative cachingA previous record not found result may be cached temporarily
Provider verification is delayedGoogle, Microsoft, or another provider may not have rechecked yet
Record was added under the wrong nameExample: DMARC added at @ instead of _dmarc
Record value has a typoThe record exists but does not match what the provider expects
Duplicate or conflicting records remainOld MX, duplicate SPF, or multiple DMARC records confuse checks
Local device or ISP cacheYour computer, router, or ISP resolver may still show old results
Tool checks different resolversDifferent DNS tools may temporarily show different answers

Do not keep changing DNS every few minutes. First confirm whether the record is visible at the authoritative DNS host.

What does DNS propagation actually mean?

DNS propagation is the common phrase people use when DNS changes take time to appear everywhere.

Technically, DNS does not update every server on the internet in one push. DNS works through caching.

When a resolver asks for a DNS record, it may store the answer for a period of time. That period is controlled by the record's TTL, or time to live.

If a resolver cached your old MX record before you changed it, that resolver may keep returning the old answer until the TTL expires. That is why one checker may show the new record while another checker still shows the old one.

DNS propagation explained simply

Think of DNS like people taking notes.

  1. Your authoritative DNS host has the official answer.
  2. A resolver asks for the answer.
  3. The resolver writes the answer down temporarily.
  4. Other users ask that resolver.
  5. The resolver gives the cached answer instead of asking again.
  6. When the cache expires, the resolver asks again and gets the new answer.

After a DNS update, there may temporarily be two versions of the same record.

LocationWhat it may show
Authoritative DNSNew record
Some recursive resolversNew record
Other recursive resolversOld cached record
Your computer or routerOld cached result
Email provider verification toolOld or delayed result

This is normal during a DNS transition.

The three places to check DNS

When troubleshooting email DNS propagation, separate these three layers:

LayerWhat it meansWhy it matters
DNS dashboardWhat you typed into Cloudflare, Namecheap, GoDaddy, or another DNS hostThis proves you saved something
Authoritative DNSWhat the official nameservers are publishingThis proves the live DNS host has the record
Recursive DNSWhat public resolvers and users are seeingThis shows what many systems currently receive

A record can look correct in your DNS dashboard but still not be live if you edited the wrong DNS host.

A record can be correct at authoritative DNS but still look old in recursive DNS because of caching.

Step 1: Confirm the active nameservers

Before blaming propagation, confirm where DNS is actually managed.

Nameservers tell the internet which DNS provider is authoritative for your domain.

RoleProvider
Domain registrarNamecheap
DNS hostCloudflare
Website hostVercel
Email providerGoogle Workspace

If the nameservers point to Cloudflare, then live MX, SPF, DKIM, DMARC, and verification records must be added in Cloudflare. Adding records at Namecheap will not update live DNS if Namecheap is only the registrar and Cloudflare is the active DNS host.

Signs you edited the wrong DNS host

  • You added the record, but every DNS checker still says it is missing.
  • The email provider cannot verify the record after a long wait.
  • Your DNS dashboard shows the record, but authoritative lookups do not.
  • You recently changed nameservers.
  • You have similar DNS zones in multiple places.

Find the active nameservers first. Then add the record only at the active DNS host.

If the website works but email does not, the website works but email does not guide explains the wider DNS split.

Step 2: Understand TTL

TTL stands for time to live.

In DNS, TTL tells resolvers how long they may cache a DNS answer before asking again.

example.com MX 300 smtp.google.com

In this example, 300 means 300 seconds, or 5 minutes. If a resolver receives this answer, it can cache it for up to 5 minutes.

TTL secondsHuman-readable time
601 minute
3005 minutes
60010 minutes
180030 minutes
36001 hour
144004 hours
8640024 hours

Longer TTLs reduce DNS lookup load but make changes slower to appear everywhere. Shorter TTLs make future changes appear faster, but they do not always clear old cached records immediately.

Important: lowering TTL after the change does not clear old cache

This is a common mistake.

Suppose your old MX record had a TTL of 24 hours. A resolver cached that old MX record one hour before you changed it. Then you update the MX record and lower TTL to 5 minutes.

That resolver may still keep the old cached answer until the old 24-hour TTL expires. The new shorter TTL helps future lookups, but it does not force every resolver to forget what it already cached.

Practical rule

If you plan a migration, lower TTL before the migration, not after.

  1. Lower TTL 24 to 48 hours before the migration.
  2. Wait for old long-TTL caches to expire.
  3. Change MX records.
  4. Test routing.
  5. Raise TTL later if desired.

Step 3: Check authoritative DNS first

When debugging propagation, the best question is: are the authoritative nameservers publishing the new record?

If yes, your DNS host is publishing the change. Any old results elsewhere are likely cache or provider verification delay.

If no, the record was not published correctly or was added in the wrong place.

Authoritative resultMeaning
New record appearsDNS host is publishing the update
Old record appearsThe change was not saved, or the wrong zone or host was edited
Record missingRecord was added incorrectly or the wrong DNS host was edited
Wrong name appearsRecord may have been added under the wrong host/name
Duplicate record appearsOld or conflicting records still exist

Authoritative DNS is the source of truth for whether the DNS host is currently publishing the record.

Use the email DNS checker guide if you need a broader checklist for what to inspect.

Step 4: Understand recursive resolver cache

Most users and services do not query your authoritative nameserver directly every time.

They often use recursive resolvers such as ISP DNS resolvers, public DNS resolvers, corporate DNS resolvers, router-level DNS cache, device-level DNS cache, or email provider DNS resolvers.

These resolvers may cache the old answer until TTL expires. That is why two people can check the same domain and see different results.

Example

You changed MX from old hosting mail to Google Workspace. Authoritative DNS now shows:

example.com MX 1 smtp.google.com

But one resolver still shows:

example.com MX 10 mail.oldhost.com

This can happen if the resolver cached the old record before the change.

Step 5: Know what negative caching means

DNS can cache missing records too. This is called negative caching.

  1. Your DKIM record does not exist yet.
  2. A checker looks for google._domainkey.example.com.
  3. DNS returns record not found.
  4. A resolver caches that not found answer.
  5. You add the DKIM record.
  6. The same resolver may still show not found until the negative cache expires.

This is why newly added SPF, DKIM, DMARC, or verification records can appear missing even after you save them correctly.

Record typeHow negative caching can appear
MXNo mail routing found
SPF TXTNo SPF record found
DKIM TXT/CNAMESelector still says missing
DMARC TXTNo DMARC found at _dmarc
Google verification TXTDomain still not verified
Microsoft verification TXTMS=ms... record still not found
Autodiscover CNAMEOutlook still cannot find the new target

Check authoritative DNS. If the authoritative nameserver shows the new record, wait for recursive caches to catch up.

Step 6: Check the record name carefully

Sometimes the problem is not propagation. Sometimes the record is in the wrong place.

RecordCorrect nameCommon wrong name
Root MX@ or blankwww
SPF@spf
DMARC_dmarc@
Google DKIMgoogle._domainkeygoogle._domainkey.example.com.example.com
Microsoft DKIMselector1._domainkeyselector1 only
Autodiscoverautodiscoverwww.autodiscover
Verification TXTUsually @ or provider-specificWrong subdomain

DNS dashboards differ. Some automatically append your domain name.

If Cloudflare asks for the Name field, entering _dmarc.example.com may work in some cases, but the safer Cloudflare-style value is often _dmarc. Always check the final published hostname.

Step 7: Check the record value carefully

A record can publish quickly but still fail if the value is wrong.

RecordCommon mistake
MXWrong provider value or typo
SPFDuplicate SPF records or wrong include
DKIMTruncated public key or wrong CNAME target
DMARCMissing v=DMARC1 or missing p= tag
Google verificationCopied wrong verification string
Microsoft verificationCopied wrong MS=ms... value
AutodiscoverPoints to old provider
CNAMEProxied when it should be DNS-only

If the record exists but the provider still says invalid, compare the value character-by-character with the provider's instruction.

Step 8: Understand provider-side verification delay

Sometimes public DNS is already correct, but the provider admin panel has not refreshed yet.

This can happen with Google Workspace, Microsoft 365, Zoho, Proton Mail, Mailchimp, HubSpot, SendGrid, Mailgun, Klaviyo, domain verification tools, and DKIM verification tools.

The provider may not check DNS continuously. It may check on demand, on a schedule, or after you click a verify button.

  1. Return to the provider dashboard.
  2. Click verify, check again, or retry setup.
  3. Try again after some time.
  4. Avoid changing the record unless the provider shows a specific mismatch.
  5. If the provider still fails after a long time, check for exact name/value mistakes.

Do not assume DNS is wrong just because the provider dashboard has not refreshed immediately.

How long does email DNS propagation take?

There is no single guaranteed answer.

SituationTypical behavior
New record with low TTLOften visible quickly
Changed record with old high TTLOld answer may persist until old TTL expires
Nameserver changeCan take longer than a single record update
Provider dashboard verificationMay lag behind public DNS
Negative cached missing recordNot found may persist temporarily
Google/Microsoft setup checksCan take minutes to hours, sometimes longer
Complex migrationsPlan for up to 48-72 hours for full confidence

For many Cloudflare DNS-only records using Auto TTL, changes may appear quickly. But local DNS cache, resolver cache, provider-side checking, and previous high TTLs can make the experience slower.

DNS propagation by record type

Different email DNS records fail in different ways.

RecordWhat propagation issue looks like
MXSome senders route to old provider, others to new provider
SPF TXTSome checks show old SPF or duplicate SPF
DKIM TXT/CNAMEProvider says DKIM record missing
DMARC TXTDMARC checker says no DMARC found
Verification TXTGoogle/Microsoft says domain not verified
Autodiscover CNAMEOutlook still tries old provider
Nameserver recordsSome resolvers ask old DNS host

The troubleshooting method is similar: check authoritative DNS first, then check recursive DNS, then check the provider dashboard.

MX propagation: why some mail still goes to old provider

MX propagation is stressful because it can affect real incoming email.

You changed MX from old cPanel email to Google Workspace. Some senders may still have the old MX cached:

mail.oldhost.com

Other senders may already see the new MX:

smtp.google.com

During this transition, mail can temporarily split between providers.

  1. Create all users and aliases at the new provider.
  2. Lower MX TTL ahead of time if possible.
  3. Keep old provider access during transition.
  4. Change MX during low email volume.
  5. Monitor both old and new mailboxes temporarily.
  6. Read bounce messages.
  7. Do not delete the old account too early.

For MX-specific troubleshooting, use the MX record checker guide.

SPF propagation: why SPF still shows old or duplicate records

SPF is a TXT record, usually at the root domain. A common SPF problem is adding a new SPF record instead of editing the existing one.

Wrong:

v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.protection.outlook.com -all

Correct if both providers genuinely send email:

v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all

If a checker still shows duplicate SPF after you fixed it, possible causes include old TXT cache, wrong DNS host, a duplicate still in the active zone, SPF added at both root and another host, cached recursive DNS, or a DNS provider that has not published the change yet.

Check authoritative TXT records at the root domain. There should be only one TXT record starting with v=spf1.

For SPF cleanup, use the SPF record checker guide.

DKIM propagation: why DKIM still says missing

DKIM is selector-based.

  1. Are you checking the correct selector?
  2. Was the DKIM record added at the active DNS host?
  3. Is the record TXT or CNAME as required?
  4. Did you copy the full key or target?
  5. Did DNS propagate?
  6. Did the provider generate the key?
  7. Did you enable DKIM after adding DNS?

Example Google DKIM:

google._domainkey.example.com

Cloudflare Name field may be:

google._domainkey

Example Microsoft DKIM:

selector1._domainkey.example.com
selector2._domainkey.example.com

Cloudflare Name fields may be:

selector1._domainkey
selector2._domainkey

If you check the wrong selector, the record may look missing even when DKIM exists.

For selector-specific troubleshooting, use the DKIM record checker guide.

DMARC propagation: why DMARC still says missing

DMARC must be published at:

_dmarc.example.com

For many DNS hosts, the Name field is:

_dmarc

A safe starting value is:

v=DMARC1; p=none;
  • Record added at @ instead of _dmarc
  • Record added at wrong DNS host
  • Typo in _dmarc
  • Multiple DMARC TXT records
  • DNS cache has not expired
  • Provider or tool is checking cached DNS
  • Record value has invalid syntax

Do not jump from no DMARC to p=reject because you are frustrated. Start safely with p=none if unsure, then tighten later after SPF/DKIM are working.

For policy rollout, use the DMARC record checker guide.

Verification TXT propagation: why Google or Microsoft cannot verify

Domain verification usually uses TXT or CNAME records.

Google verification values may look like:

google-site-verification=...

Microsoft verification values may look like:

MS=ms...

Use the exact value from the provider.

  1. Was the TXT record added at the active DNS host?
  2. Was it added at the correct name, usually @ unless the provider says otherwise?
  3. Was the value copied exactly?
  4. Is there an extra quote, space, or typo?
  5. Are you verifying the correct domain?
  6. Has the provider rechecked DNS?
  7. Has enough time passed?

Do not copy a verification value from another domain or another account.

Nameserver propagation vs record propagation

Changing an MX record is not the same as changing nameservers.

Record change

A record change means you edited something like MX, TXT, or CNAME inside the current DNS host.

Nameserver change

A nameserver change means you changed which DNS provider is authoritative for the domain.

Before: Namecheap nameservers
After:  Cloudflare nameservers

Nameserver changes can be more disruptive because some resolvers may still ask the old DNS host temporarily.

If you recently changed nameservers, make sure the new DNS host contains website records, MX, SPF, DKIM, DMARC, verification records, autodiscover, and any service-specific records.

If the new DNS zone is incomplete, the website may work but email may fail.

Cloudflare-specific propagation notes

If Cloudflare is your active DNS host:

  • MX records are DNS-only.
  • TXT records are DNS-only.
  • SPF, DMARC, and verification records are TXT records.
  • Google DKIM is often TXT.
  • Microsoft DKIM is usually CNAME.
  • DKIM CNAMEs should be DNS-only.
  • Website A/CNAME records may be proxied, but email records are not orange-clouded.

Cloudflare Auto TTL for DNS-only records is commonly 300 seconds, but that does not guarantee every local cache or provider dashboard updates instantly.

MistakeResult
Editing DNS at registrar instead of CloudflareLive DNS does not change
Entering full domain twiceRecord publishes at wrong hostname
Proxying DKIM/autodiscover CNAMEVerification or discovery may fail
Deleting website records while fixing emailWebsite breaks
Leaving old MX recordsMail may route to wrong provider
Adding duplicate SPFSPF fails
Adding DMARC at rootDMARC not found

For provider-specific Cloudflare setup, use the Google Workspace Cloudflare DNS guide or the Microsoft 365 Cloudflare DNS guide.

Why one DNS checker shows correct and another does not

Different tools may query different resolvers.

ToolMay query
DNS checker AGoogle Public DNS
DNS checker BCloudflare resolver
DNS checker CIts own resolver cache
Email providerInternal provider resolver
Your computerISP or router DNS
Command line toolSystem-configured resolver

If authoritative DNS is correct but recursive tools disagree, you are probably seeing cache differences.

If authoritative DNS is wrong, the record still needs fixing.

How to test DNS properly

  1. Check active nameservers.
  2. Check authoritative DNS.
  3. Check public recursive DNS.
  4. Check the provider dashboard.
  5. Test real email.

For email, the final test is actual sending and receiving.

  • Does incoming email arrive?
  • Does outgoing email arrive?
  • Does SPF pass?
  • Does DKIM pass?
  • Does DMARC pass?
  • Are emails going to inbox or spam?
  • Are bounce messages gone?

DNS records are setup signals. Real email tests confirm the flow.

Should you flush DNS cache?

Sometimes flushing local DNS cache helps your own computer see new records faster. But it does not clear caches across the internet.

  • Browser
  • Operating system
  • Router
  • ISP resolver
  • Public resolver
  • Corporate network
  • Email provider resolver

Flushing your computer's DNS cache can help your local view, but it will not force Google, Microsoft, or other mail servers to forget old cached records.

The main fix is correct DNS at authoritative nameservers, then waiting for caches and provider verification to update.

When to wait vs when to fix

SituationBest action
Authoritative DNS shows wrong recordFix DNS
Authoritative DNS shows missing recordFix DNS or wrong DNS host
Authoritative DNS is correct but recursive DNS is oldWait for cache
Google/Microsoft says missing but authoritative DNS is correctRetry verification and wait
Record is at wrong hostnameFix hostname
Record value has typoFix value
Duplicate SPF still exists authoritativelyRemove duplicate
Multiple DMARC records exist authoritativelyKeep only one valid record
MX points to wrong provider authoritativelyFix MX
Only your computer shows old resultTry another network/resolver or flush local cache

Do not wait if authoritative DNS is wrong. Waiting does not fix an incorrect record.

Practical timeline for email DNS changes

First few minutes

Cloudflare or your DNS host may show the saved record. Authoritative DNS may update quickly. Some checkers may still show old results.

15 to 60 minutes

Many recursive resolvers may show the new result if TTL was short. Provider verification may start working. Some local caches may still show old results.

Several hours

Most ordinary DNS caches should update if TTL was moderate. Email routing may become more consistent. Provider dashboards may detect records.

24 to 72 hours

This is a higher-confidence window for email migrations, old MX caches, provider setup checks, and nameserver changes.

If you still see the wrong result after this and authoritative DNS is wrong, it is not propagation. It is configuration.

How to reduce propagation problems before a migration

  1. Identify active DNS host.
  2. Export or screenshot current DNS records.
  3. Lower TTL for key records ahead of time if possible.
  4. Create users and aliases at the new provider.
  5. Verify the domain with the new provider.
  6. Add SPF/DKIM/DMARC carefully.
  7. Plan MX switch during low email volume.
  8. Keep old provider active temporarily.
  9. Monitor both old and new inboxes.
  10. Save bounce messages for troubleshooting.

The best propagation fix is preparation.

Example: moving from cPanel email to Google Workspace

Before migration:

example.com MX 10 mail.example.com

After migration:

example.com MX 1 smtp.google.com

During propagation, some senders may still send to mail.example.com. Others may send to smtp.google.com.

  1. Create Google Workspace users.
  2. Add aliases and groups.
  3. Verify domain.
  4. Lower old MX TTL before migration if possible.
  5. Change MX to Google.
  6. Keep cPanel mail accessible for a transition period.
  7. Test email from several external accounts.
  8. Remove old MX records when ready.
  9. Add SPF, DKIM, and DMARC.
  10. Monitor bounces.

Example: moving from Google Workspace to Microsoft 365

Before migration:

example.com MX 1 smtp.google.com

After migration:

example.com MX 1 example-com.mail.protection.outlook.com

The Microsoft value is domain-specific and must come from Microsoft 365 admin center.

  1. Add and verify domain in Microsoft 365.
  2. Create users and mailboxes.
  3. Add aliases, groups, or shared mailboxes.
  4. Add Microsoft SPF carefully.
  5. Prepare Microsoft DKIM CNAMEs.
  6. Add DMARC monitoring.
  7. Switch MX during low-volume period.
  8. Keep Google access temporarily.
  9. Test sending and receiving.
  10. Remove Google SPF include only if Google no longer sends mail.

Example: adding DKIM and provider says not found

You added:

google._domainkey.example.com

with a long TXT value from Google Admin. But Google still says it cannot find the record.

  • Record added at wrong DNS host.
  • Name field was entered incorrectly.
  • Public key was copied incompletely.
  • Google is checking cached DNS.
  • You clicked verify too soon.
  • The record is visible authoritatively but not to Google yet.
  1. Check active nameservers.
  2. Check authoritative DNS for google._domainkey.example.com.
  3. Confirm TXT value is complete.
  4. Wait for propagation.
  5. Return to Google Admin and retry authentication.

Do not create a second DKIM record with guessed values.

Example: adding DMARC and checker still says missing

You added:

v=DMARC1; p=none;

But the checker says no DMARC. A common cause is adding it at example.com instead of _dmarc.example.com.

FieldCorrect value
Name_dmarc
Valuev=DMARC1; p=none;

If authoritative DNS shows the record at _dmarc, the checker may be cached. If authoritative DNS does not show it, fix the DNS name.

What not to do during propagation

  • Do not repeatedly delete and re-add records every few minutes.
  • Do not change website records because email records are slow.
  • Do not create duplicate SPF records.
  • Do not add multiple DMARC records.
  • Do not guess DKIM values.
  • Do not switch between DNS providers mid-troubleshooting.
  • Do not delete old email provider access immediately after MX change.
  • Do not assume every checker uses the same resolver.
  • Do not ignore bounce messages.
  • Do not wait 72 hours if authoritative DNS is clearly wrong.
  • Do not assume propagation fixes typos.

Propagation explains delay. It does not fix incorrect DNS.

Final troubleshooting checklist

  • Confirm the active nameservers.
  • Confirm the record was added at the active DNS host.
  • Check authoritative DNS.
  • Check recursive DNS only after authoritative DNS is correct.
  • Confirm the record name/host is correct.
  • Confirm the value is exact.
  • Check for duplicate SPF records.
  • Check for multiple DMARC records.
  • Check for old MX records.
  • Check whether DKIM selector is correct.
  • Consider negative caching for newly added records.
  • Retry provider verification.
  • Test real email sending and receiving.
  • Wait for cache only after DNS is confirmed correct.

If authoritative DNS is wrong, fix it. If authoritative DNS is right but recursive tools disagree, wait.

Run an email DNS propagation check

Use Domain Email Doctor to scan your domain's public email DNS records after making changes.

The scan can help you see whether MX, SPF, DKIM, DMARC, and nameserver records are visible publicly, and whether the problem looks like propagation, wrong DNS host, wrong record name, or an actual misconfiguration.

Check the DNS result before changing more records. Most email DNS issues get worse when people keep editing without knowing whether the previous change has actually published.

Quick checklist

Next step: Run an email DNS propagation check before changing more records, so you can separate DNS cache delay from a current configuration mismatch. Domain Email Doctor reads public DNS only and keeps the first step simple: enter an email or domain.
Run an email DNS check