New Monthly plans from $39/mo. No contracts, cancel anytime. See pricing →

SPF and DMARC Statistics 2026: What 173 Million Mail Domains Publish

52.6% of the domains that can receive mail publish no SPF at all, and 71.0% publish no DMARC. Of the ones that do publish DMARC, 45.8% set a policy that enforces nothing. We read the DNS of every domain on the internet, 2.8 billion records, and this is what mail authentication looks like when you count all of it rather than the few thousand domains a vendor sells to.

Published 12 September 2026 · Updated 13 September 2026 · 26 min read
Melanie Cohen
Melanie writes about web infrastructure measurement at StackScan, working from the crawl that reads the DNS and the web of every domain on the internet.
Key findings
  1. 52.6% of the domains that can receive mail publish no SPF record: 91,155,504 of the internet's 173,136,975 domains with an MX record.
  2. 71.0% publish no DMARC, 122,890,494 domains. Only 12.5% of mail domains have a DMARC policy that does anything at all.
  3. 45.8% of every published DMARC record is p=none, 30,281,845 domains. It asks for reports and tells receivers to deliver the message anyway.
  4. The commonest DMARC record on the internet is v=DMARC1; p=none;, published by 11,543,817 domains and enforcing nothing. The second commonest is one GoDaddy string copied 11,329,644 times, and 10,158,033 of GoDaddy's 13,786,006 DMARC domains have no MX record at all.
  5. 57.7% of domains publishing DMARC ask for no reports, 38,148,614 of them. They set a policy and cannot see whether it works.
  6. The entire specialist DMARC tooling industry is addressed by 4.7% of the domains that publish DMARC, 3,129,895 of them.
  7. 679,765 domains publish more than one SPF record, which RFC 7208 says is a permanent error, so SPF does nothing at all on them. A further 355,492 publish a DMARC record on the domain itself rather than under _dmarc, where no receiver will ever look for it.
  8. Microsoft 365 customers publish SPF on 60.0% of their domains and Google Workspace customers on 41.8%. GoDaddy mail customers publish SPF on 6.7%.
  9. Websites with no mail are the easiest domains to forge. Of the 62 million websites without an MX record, 88.2% publish neither SPF nor DMARC and 8.7% enforce DMARC, against 12.5% of mail domains. A receiver checking a message forged from one of these names finds no record at all and delivers it. Where one does publish, it is a registrar's template, and 73.7% of those enforce.
  10. Publishing SPF does not make a domain safer. Domains with no SPF at all enforce DMARC on 12.3%, and domains whose SPF ends in a soft fail enforce on 8.5%, which is lower. Only the domains ending SPF in a hard fail behave differently, at 21.0%.
173,136,975domains can receive mail, the population of this report
91,155,504publish no SPF, 52.6% of them
122,890,494publish no DMARC, 71.0%
21,685,399have a DMARC policy that enforces, 12.5%

52.6% of the domains that can receive mail publish no SPF

From every domain in the DNS to the ones that authenticate
Every share in this report is of the 173.1 million domains that publish an MX record
From every domain in the DNS to the ones that authenticate 206,770,685 domains publish a mail record of some kind 173,136,975 publish an MX record They can receive mail, so they can be impersonated. Every share below is of these. The rest publish SPF or DMARC and no MX 10,158,033 of them carry GoDaddy's parking template. None can receive mail. How far the 173,136,975 mail domains get SPF 47.4% DMARC 29.0% Enforcing 12.5% 91,155,504 of them publish no SPF, and 122,890,494 publish no DMARC. What "a mail domain" means A domain that publishes an MX record can receive mail, so somebody can forge a message from it and expect a reply. A domain without one is outside every share in this report.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-mail-funnel"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-mail-funnel.webp" alt="From every domain in the DNS to the ones that authenticate" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-mail-funnel">StackScan mail analysis</a></p>
How far a mail domain gets
Share of the 173.1 million domains with an MX record
How far a mail domain getsPublishes an MX record, so it can receive mail100.0% (173,136,975)Publishes SPF47.4% (81,981,471)Publishes DMARC29.0% (50,246,481)DMARC that actually enforces12.5% (21,685,399)
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-funnel"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-funnel.webp" alt="How far a mail domain gets" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-funnel">StackScan mail analysis</a></p>

We read the DNS of every domain on the internet, 2,847,611,085 records. 206,770,685 domains publish at least one MX, SPF or DMARC record, and 173,136,975 of them publish an MX record, which means they can receive mail and can therefore be impersonated. That is the population of this report and every share below is a share of it.

81,981,471 of them publish SPF, 47.4%. 50,246,481 publish DMARC, 29.0%. And 21,685,399, 12.5%, publish a DMARC policy that asks a receiver to do anything about a forgery.

Both standards are older than most of the domains using them. SPF was published in 2006 and DMARC in 2015, and neither costs anything to deploy beyond the time it takes to write one DNS record.

Seven mail domains in eight are still unprotected against somebody sending mail in their name, twenty years after the fix was specified.

Websites with no mail are the easiest to forge: 88.2% publish neither SPF nor DMARC

Three kinds of domain, and how each one authenticates
A domain is a website when its web server answered our crawl, and mail when it publishes an MX record. Shares are of every domain of that kind, so a website with no mail record of any sort counts as publishing nothing.
What the domain isDomainsPublish SPFPublish DMARCDMARC enforces
A website and mail89,684,07349.0%36.6%12.4%
Mail, no website83,452,90245.6%20.9%12.6%
A website, no mail61,965,6722.8%10.4%8.7%
Names with neither a website nor an MX record have no countable base and are left out.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-segments"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-segments.webp" alt="Three kinds of domain, and how each one authenticates" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-segments">StackScan mail analysis</a></p>

The headline number blends three different kinds of domain, and they behave nothing alike. A domain is a website here when its web server answered our crawl, and a mail domain when it publishes an MX record.

The going concern, 89,684,073 domains with both a website and mail, is the population that actually needs this: 49.0% publish SPF and 12.4% enforce DMARC. Domains with mail and no website publish DMARC far less often, 20.9% against 36.6%, publish SPF a little less, 45.6% against 49.0%, and enforce at the same rate, 12.6%.

Websites with no mail are the easiest to forge because nothing on the name says it never sends mail. Of the 61,965,672 websites without an MX record, 54,672,880 publish neither SPF nor DMARC, 88.2%, and 8.7% enforce DMARC, against 12.5% of mail domains. A receiver checking a message forged from one of these names looks up the records, finds nothing, and delivers it. Closing that costs two DNS records: an SPF record of v=spf1 -all, which says no server may send for the name, and a DMARC policy of p=reject, which tells the receiver to refuse anything that fails.

The 7.3 million that do publish are a different story: 73.7% of them enforce DMARC, six times the rate among websites with mail. That is not diligence, it is a registrar. Parking services publish exactly those two records across their whole book automatically. The best authentication records on the internet sit on names with nothing to protect, because a machine wrote them, and the going concerns are configured by people.

56.4% of live websites publish neither record

Domains that publish neither SPF nor DMARC, by where they sit in the ranking
A live website is one whose web server answered our crawl; a mail domain is one that publishes an MX record; the last pair of columns is the mail domains that serve no website
Where the domain sits in the rankingLive websitesNeither recordDomains with mail configuredNeither recordMail, no websiteNeither record
Top 10,0007,08818.2%7,27911.8%1,23924.8%
Top 100,00066,03626.4%65,45515.7%11,81326.7%
Top million684,32736.5%612,90119.9%104,09029.8%
Ranked, beyond a million2,286,65948.1%1,857,34026.3%365,73536.1%
Unranked148,605,63556.7%170,594,00039.1%82,970,02544.0%
The two populations overlap. A domain can be both, and 89.7 million are.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-nopolicy"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-nopolicy.webp" alt="Domains that publish neither SPF nor DMARC, by where they sit in the ranking" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-nopolicy">StackScan mail analysis</a></p>

The three kinds of domain above split on what a domain is for. This one splits on how visible it is, and asks the simpler question behind the whole report: of the domains that publish nothing at all, no SPF and no DMARC, where do they sit?

85,567,141 live websites publish neither record, 56.4% of the 151,649,745 whose web server answered. Among domains with mail configured the figure is 38.9%, 67,331,703 of 173,136,975.

The gradient runs one way and it is steep. 18.2% of top ten thousand websites publish nothing, against 56.7% of the unranked. A site nobody visits is about 3.1 times more likely to be wide open than one everybody does.

A live website is worse than a mail domain in every band, because most websites never had mail set up on the name and publish nothing at all, which leaves the name open to forgery just the same. Mail domains without a website are the next worst, 43.9% of the 83,452,902 of them publishing neither record, the shape you would expect from a name a company uses for staff addresses and nothing else: nobody browses to it, nobody audits it, and it publishes an MX record because somebody set up mailboxes years ago. 170,594,000 unranked domains carry mail configuration, and 39.1% of them have neither record.

The domains most worth forging are the best protected, and there are very few of them. Everything below the first million is where a forged invoice actually gets sent from.

45.8% of published DMARC does nothing

What each policy actually does to a forged message
The SPF ending and the DMARC policy are the two settings that decide whether authentication does anything
What each policy actually does to a forged message A forged message arrives claiming to be from your domain The SPF record's last mechanism decides what SPF says ~all, soft fail 48.4% Deliver it, mark it as suspicious -all, hard fail 46.1% Refuse it ?all or nothing 3.1% No opinion either way The DMARC policy decides what the receiver does about it p=none 45.8% Deliver it. Send a report. p=quarantine 27.2% Put it in the spam folder p=reject 26.9% Refuse it at the door The two dashed boxes are the settings that change nothing, and together they are most of the internet.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-mail-policy"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-mail-policy.webp" alt="What each policy actually does to a forged message" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-mail-policy">StackScan mail analysis</a></p>
What the published DMARC policies say
Domains publishing a DMARC record, and what each policy asks a receiver to do
PolicyDomainsShare of DMARCWhat happens to a failing message
p=none30,281,84545.8%Nothing. It is delivered.
p=quarantine18,007,38727.2%It goes to spam
p=reject17,776,61926.9%It is refused
No p tag at all36,5460.1%Nothing. The record is incomplete.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-dmarc"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-dmarc.webp" alt="What the published DMARC policies say" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-dmarc">StackScan mail analysis</a></p>

DMARC has three settings and only two of them do anything. p=none asks receivers to send reports and deliver the message regardless. p=quarantine sends a failing message to spam. p=reject refuses it.

30,281,845 domains publish p=none, 45.8% of every DMARC record on the internet. It is the correct place to start, because it lets an operator see which of their own systems would break before they turn enforcement on. It is not a place to stay, and the published adoption figures never separate the two.

This is why "DMARC adoption" and "DMARC protection" are different numbers, and only the first one is ever quoted. 29.0% of mail domains publish DMARC and 12.5% are protected by it.

Publishing SPF does not make a domain any safer

Whether publishing SPF makes a domain any more likely to enforce DMARC
Mail domains grouped by what they publish for SPF, and what they then do about DMARC
What the domain publishes for SPFMail domainsPublish DMARCDMARC enforces
SPF ending in -all, a hard fail29,451,65831.8%21.0%
No SPF at all91,155,50426.1%12.3%
SPF ending in ~all, a soft fail47,186,38434.1%8.5%
SPF ending in something else5,343,42917.8%5.7%
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-spfdmarc"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-spfdmarc.webp" alt="Whether publishing SPF makes a domain any more likely to enforce DMARC" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-spfdmarc">StackScan mail analysis</a></p>
Signets and sticks of sealing wax laid out in a shop window
Sealing a letter proved who sent it, and the tools sat in any stationer's window. SPF and DMARC are the same idea and cost nothing, and seven mail domains in eight have not picked them up. Photo: Paul2, CC BY-SA 4.0, via Wikimedia Commons.

Half the internet's mail domains publish SPF and one in eight enforces anything, and the obvious question is how both can be true. The answer is that the two standards are independent and only one of them tells a receiver what to do.

SPF says which servers may send. It does not say what to do about a message from anywhere else, and on its own a receiver is free to deliver the forgery anyway. DMARC is the part that turns a failure into an action. A domain can publish a careful SPF record for a decade and nothing at the other end ever changes.

The numbers are blunter than that. Domains with no SPF at all enforce DMARC on 12.3%, and domains that publish SPF ending in ~all enforce on 8.5%, which is less. Publishing a soft fail and then leaving DMARC alone is the commonest configuration on the internet and it protects nothing: the domain has told the world which servers are legitimate, and told receivers to deliver mail from everywhere else regardless.

Only the hard fail group behaves differently, at 21.0% enforcing. Whoever is willing to write -all is the same person willing to set p=reject, which is the real finding: it is not a technical dependency, it is whether anyone owns the problem.

SPF adoption is the most quoted number in mail security and it is close to meaningless on its own.

The two commonest DMARC records on the internet were each written once

The single commonest DMARC record on the internet is v=DMARC1; p=none;, published by 11,543,817 domains. The commonest thing anybody publishes is the setting that does nothing.

The second commonest is one identical string on 11,329,644 domains: v=DMARC1; p=quarantine; adkim=r; aspf=r; followed by a rua address at onsecureserver.net, which is GoDaddy. A further 2,192,747 publish the same string at p=reject. In total 13,786,006 domains send their DMARC reports to GoDaddy.

The detail that matters is where those domains are. 10,158,033 of them have no MX record at all, so GoDaddy switched on an enforcing policy for millions of parked domains. That is the right thing to do, and it also means any chart showing DMARC enforcement rising is substantially a chart of parked domains changing hands.

Among domains that actually receive mail, GoDaddy's template is 15.6% of all enforcing policies.

The same lesson keeps arriving in a different file. Measure a configuration at internet scale and what you are mostly measuring is what a handful of large platforms decided on their customers' behalf.

57.7% of DMARC policies report to nobody

Where DMARC reports actually go
Share of the domains that publish a DMARC record
Where DMARC reports actually goNowhere. The record has no rua tag57.7% (38,148,614)An address the host or sending platform supplied23.8% (15,705,264)A mailbox on the domain itself8.9% (5,878,716)A specialist DMARC vendor4.7% (3,129,895)A mailbox on some other domain4.5% (2,972,330)A personal mailbox at Gmail or Outlook0.4% (267,578)
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-rua"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-rua.webp" alt="Where DMARC reports actually go" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-rua">StackScan mail analysis</a></p>

A DMARC record's rua tag names the mailbox that receives the daily aggregate reports. Without it an operator publishes a policy and never learns whether it is working, or whether it is quietly rejecting their own invoices.

38,148,614 domains publishing DMARC, 57.7%, have no rua tag. A further 5,878,716 send the reports to a mailbox on their own domain and 267,578 to a personal Gmail or Outlook address, where compressed XML attachments arrive daily and nobody opens them.

The services DMARC reports are sent to
Domains where we detect the service, which is the figure each row's own page carries
The services DMARC reports are sent toGoDaddy DMARC14,497,976Cloudflare DMARC1,003,880Brevo DMARC889,100Proofpoint DMARC677,070Valimail602,903dmarcian247,751DMARC Report220,148DMARC Analyzer196,304OnDMARC181,027Agari138,504Postmark DMARC135,177GlockApps115,612DMARC Advisor104,247Northwest Registered Agent DMARC94,959Mailgun DMARC93,587easydmarc88,715
These are our own detection counts, the same figure each service's technology page carries, so a row and the page it links to agree. The share of DMARC publishers above is measured separately, from the reporting address in the record itself.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-vendors"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-vendors.webp" alt="The services DMARC reports are sent to" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-vendors">StackScan mail analysis</a></p>

3,129,895 domains, 4.7%, send their reports to a specialist DMARC vendor. That figure is the real size of the DMARC tooling market: dmarcian, Valimail, DMARC Analyzer, Postmark, OnDMARC, GlockApps and the rest of the category serve three million domains between them.

The chart below counts the same services a different way, the way their own pages on this site count them, which is every domain where we detect the service rather than only the domains whose reporting address names it. A service listed as somebody's second reporting address is in the chart and not in the share above, so the chart runs higher.

A policy nobody monitors is a policy nobody will ever tighten, which is most of the reason the p=none figure has barely moved.

679,765 domains have SPF that does nothing

How SPF records end, which is the only part that matters
Domains publishing SPF, by the last mechanism in the record
The last mechanism in the recordDomainsShare of SPFWhat it tells a receiver
~all, soft fail48,765,07248.4%Accept it anyway and mark it
-all, hard fail46,429,98946.1%Refuse anything else
?all, neutral3,081,9603.1%No opinion
No all mechanism2,478,3082.5%No opinion
+all, pass everything29,2340.0%Anyone on the internet may send as this domain
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-spf"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-spf.webp" alt="How SPF records end, which is the only part that matters" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-spf">StackScan mail analysis</a></p>
48,765,072end their SPF with ~all, a soft fail
46,429,989end it with -all, a hard fail
679,765publish two SPF records, which breaks SPF entirely
18,803,092publish SPF and cannot receive mail at all

Only the last mechanism in an SPF record matters. -all tells a receiver to refuse anything from an unlisted server, ~all tells it to accept the message anyway and mark it, and ?all says nothing at all. The split is almost even: 48.4% end in ~all and 46.1% in -all.

Soft fail is the cautious setting, and on nearly half the internet it is permanent. An operator who cannot be certain they have listed every sender leaves it at ~all, and nothing ever forces the question.

Three failures are worth counting separately. 679,765 domains publish more than one SPF record, which RFC 7208 says is a permanent error: a receiver does not pick one, it gives up, and SPF does nothing at all on those domains. 29,234 publish +all, which explicitly authorises every server on the internet to send as them. And 110,713 publish a record longer than a single DNS string can hold.

An SPF record that is broken and an SPF record that is absent protect a domain equally well, and the broken ones come with the belief that the job is done.

545,620 domains published DMARC where nothing will look for it

Domains that published DMARC at the wrong name, by where they sit in the ranking
Of the domains that published a DMARC record at all, the share that put it on the domain itself instead of under _dmarc
Where the domain sits in the rankingDomains that published DMARCPublished it at the wrong nameShare
Top 10,0006,382100.16%
Top 100,00049,5202000.40%
Top million402,9842,2250.55%
Ranked, beyond a million998,9286,8250.68%
Unranked65,000,075346,2320.53%
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-misplaced"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-misplaced.webp" alt="Domains that published DMARC at the wrong name, by where they sit in the ranking" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-misplaced">StackScan mail analysis</a></p>

A DMARC record does not live on the domain. It lives on a subdomain called _dmarc, so a receiver checking example.com looks up _dmarc.example.com and nowhere else. A v=DMARC1 string published on example.com itself is a TXT record that no mail server on earth will ever read.

545,620 domains have done exactly that. 355,492 of them have no record at _dmarc either, so the policy they believe they published does not exist as far as any receiver is concerned. The other 190,128 have a working record too and the stray one is merely litter.

The mistake thins out towards the top of the web. 0.16% of top ten thousand domains that published DMARC put it in the wrong place, against 0.68% of the ranked long tail: ten domains against 6,825.

Then the bottom row breaks the pattern. The unranked, 65,000,075 domains that no ranking has heard of, get it wrong 0.53% of the time, better than the ranked tail above them. Whatever that column is measuring, it is not care.

Which DNS provider the misplaced record was published through
Domains publishing DMARC on each provider's nameservers, and the share that published it at the wrong name
DNS providerDomains publishing DMARCPublished it at the wrong nameShare
Wix214,6428,0423.75%
OVH323,7896,0891.88%
UltraDNS115,3408400.73%
Azure DNS177,8991,1990.67%
NS1305,4162,0160.66%
Nameservers we cannot attribute43,403,340265,7400.61%
Cloudflare6,120,84436,4440.60%
AWS Route 53752,2183,4180.45%
Squarespace218,2229220.42%
Namecheap1,174,0554,3550.37%
GoDaddy11,203,32721,2270.19%
WordPress373,9476470.17%
Google2,038,0513,1510.15%
Every wrong record is counted; the domains publishing DMARC behind each provider are measured on a one in a hundred sample, because joining 122 million provider records to 66 million publishers in a single pass does not fit in memory. The smallest provider named here is worth about 1,100 sampled domains. Each row counts only the domains on that provider that published a DMARC record at all, so it is a slice of the provider's own page, not its total.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-panels"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-panels.webp" alt="Which DNS provider the misplaced record was published through" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-panels">StackScan mail analysis</a></p>

It is measuring which DNS provider the record was typed into, and the spread is wider than anything rank produces. Domains on Google's nameservers publish it at the wrong name 0.15% of the time and domains on GoDaddy's 0.19%. Wix is at 3.75%, twenty-five times Google's rate for the same record, and OVH at 1.88%.

That is the whole of the anomaly. 17.2% of unranked DMARC publishers sit on GoDaddy's nameservers and 8.8% on Cloudflare's. In the ranked tail those proportions invert, 7.7% and 23.8%, and Cloudflare's domains get this wrong 0.60% of the time against GoDaddy's 0.19%. The ranked long tail is not less careful than the unranked one. It is on different nameservers.

It is the cheapest failure in this report. A correct record moved one label to the left, and 355,492 owners are running with a policy that exists only in their own DNS panel.

GoDaddy mail customers publish SPF on 6.7% of their domains

Mail providers, and how well their customers authenticate
Domains whose MX record points at the provider, and what those domains publish
Mail providerWebsites on its pageMail domains measuredPublish SPFPublish DMARCDMARC enforces
Everybody else103,094,56148.4%31.6%14.2%
Google Workspace21,104,69920,684,91741.8%29.9%12.8%
Microsoft 36512,382,63714,113,68060.0%37.6%20.3%
GoDaddy15,283,9569,377,6096.7%9.7%8.7%
IONOS8,321,7247,939,62058.9%2.9%0.8%
Namecheap9,239,5807,893,71055.2%1.3%0.2%
Hostinger4,143,4123,927,90054.6%83.4%1.2%
Cloudflare1,902,2282,028,66650.0%27.7%9.0%
Zoho2,214,1261,939,60053.2%33.3%11.4%
Yandex1,006,449982,16868.6%9.1%3.3%
Tencent QQ717,110815,52134.9%15.1%1.9%
Mimecast175,658189,37555.6%56.4%35.7%
Proofpoint1,134,258149,64856.4%65.3%47.0%
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-providers"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-providers.webp" alt="Mail providers, and how well their customers authenticate" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-providers">StackScan mail analysis</a></p>

Where a domain's mail is hosted predicts its authentication better than anything else in this report.

The table carries two counts because they answer different questions. The first is the figure on the provider's own page on this site, which is every website where we detect the service. The second is the domains whose MX record points at it, which is the population the three shares are taken from. A provider's customers can run a website that names the service without routing their mail through it, and a parked domain can route mail with no website to detect, so the two never match. GoDaddy is the widest gap in the table for exactly that reason: a great many of its mail routes hang off domains with no site to detect anything on.

Microsoft 365 customers publish SPF on 60.0% of their domains and enforce DMARC on 20.3%, the best of the large providers. Google Workspace customers publish SPF on 41.8%, noticeably worse, on 20,684,917 domains.

GoDaddy is the outlier and not in a good way. Its mail customers publish SPF on 6.7% of domains and DMARC on 9.7%, the lowest of any provider here, while the same company publishes DMARC records on 13.8 million parked domains. The automation was pointed at the domains with nothing to lose.

Two more shapes. IONOS and Namecheap customers publish SPF at 58.9% and 55.2% and DMARC at almost nothing, so the registrar set up SPF and stopped. Hostinger is the mirror image: 83.4% publish DMARC and 1.2% enforce it, which is a default p=none shipped at scale.

The security filters do best because their customers bought them for this: Proofpoint at 47.0% enforcing and Mimecast at 35.7%.

A domain's mail provider decides its authentication, and most providers have decided not to.

Enforcement rises with company size, SPF does not

Authentication against the size of the company behind the domain
Mail domains matched to a company record, by staff count
Company sizeMail domains matchedPublish SPFPublish DMARCDMARC enforces
1 employee402,12848.5%48.4%14.4%
2-102,439,55350.5%46.7%14.4%
11-501,272,39053.2%49.9%17.0%
51-200355,91255.2%56.0%23.0%
201-500101,91055.6%56.8%25.8%
501-1,00037,30455.4%59.4%29.1%
1,001-5,00026,34555.8%62.2%33.3%
5,001-10,0005,48854.0%62.4%34.0%
10,001+8,23853.1%58.9%30.5%
Company size comes from the company records we hold, which cover a minority of domains, so the second column gives the base each share is taken from.
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-headcount"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-headcount.webp" alt="Authentication against the size of the company behind the domain" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-headcount">StackScan mail analysis</a></p>

14.4% of two to ten person companies publish an enforcing DMARC policy. At five thousand to ten thousand staff it is 34.0%, more than twice as many.

SPF does not move. It sits between 48.5% and 55.8% across every band, which is the signature of a setting somebody else configured once rather than a decision anybody revisits. It is also, as the section above shows, the setting that predicts the least.

The gradient is not size, it is whether anyone owns the problem. SPF arrives with the hosting. DMARC enforcement needs a person who can say which systems send mail, accept that some of them will break, and answer for it when they do.

A ccTLD's numbers measure its registrars, not its awareness

Mail authentication inside the commonest TLDs
Mail domains on each top level domain, ordered by the share whose DMARC enforces
TLDMail domainsPublish SPFPublish DMARCDMARC enforces
.ch1,783,57857.1%40.7%30.0%
.nl2,561,51250.9%55.9%28.6%
.pl1,330,15156.3%52.9%27.4%
.de12,523,50244.1%33.7%24.1%
.eu1,572,33346.3%33.2%18.4%
.info2,488,66943.8%31.7%17.0%
.br1,795,84357.6%47.4%16.8%
.es841,41554.3%32.2%13.5%
.fr2,011,40050.9%29.5%11.8%
.com83,679,31847.1%28.0%11.0%
.shop1,122,74247.2%42.1%10.9%
.au1,372,43850.9%33.1%10.9%
.se854,29440.9%23.5%10.0%
.net6,191,94642.9%23.8%9.9%
.org6,551,87344.0%25.8%9.6%
.online1,264,60146.4%27.9%9.5%
.ca1,169,45044.6%26.9%8.2%
.jp1,119,99855.4%37.1%7.0%
.it1,781,66152.8%49.6%4.5%
.ru3,069,82955.2%12.8%4.3%
Embed this figure
<a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-tld"><img src="https://content.stackscan.com/charts/spf-dmarc-statistics-tld.webp" alt="Mail authentication inside the commonest TLDs" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/spf-dmarc-statistics#fig-tld">StackScan mail analysis</a></p>

Enforcement ranges from 30.0% on .ch down to 4.3% on .ru, and the temptation is to read that as some countries caring more than others. The table says otherwise if you read two columns instead of one.

49.6% of .it mail domains publish DMARC, a higher share than 33.7% on .de. Then 4.5% of them enforce it, against 24.1% on .de. Italy has not had a national conversation about mail security and decided to stop halfway. A hosting company with a large Italian book switched DMARC on at p=none and never moved it, and that one default is most of the column. Japan is the same shape, 37.1% publishing and 7.0% enforcing.

Nothing here measures whether the people in a country understand SPF and DMARC. It measures which registrars and hosts have the largest share of that market and what those companies ship when nobody asks. A ccTLD is a proxy for a set of defaults, and reading it as a proxy for competence gets the causation backwards.

Which is the practical conclusion of the whole report. Every large movement in these numbers, GoDaddy's 13.8 million policies, Hostinger's 83.4% publishing against 1.2% enforcing, Italy's gap, came from one company changing one default. Documentation has not moved mail authentication in twenty years and defaults move it in a quarter.

Frequently asked questions

What percentage of domains have SPF?

47.4% of the domains that can receive mail, 81,981,471 of the internet's 173,136,975 domains with an MX record. Across every domain in the DNS the figure is lower, because most domains cannot receive mail at all.

What percentage of domains have DMARC?

29.0% publish a DMARC record, and only 12.5% publish one that enforces. The gap is p=none, which is 45.8% of every DMARC record on the internet.

Is p=none worth publishing?

As a first step, yes: it is how an operator learns which of their own systems fail authentication before turning enforcement on. As a destination it protects nothing, and 57.7% of DMARC publishers do not even collect the reports that make the first step useful.

What does ~all mean in SPF?

Soft fail. It tells a receiver to accept a message from an unlisted server and mark it as suspicious. -all tells the receiver to refuse it. 48.4% of SPF records end in ~all.

Can two SPF records be published on one domain?

No. RFC 7208 makes it a permanent error, and a receiver that finds two stops evaluating SPF entirely. 679,765 domains do it anyway.

Which mail provider's customers authenticate best?

Of the large providers, Microsoft 365: 60.0% SPF and 20.3% enforcing DMARC. Of all providers, the security filters, because their customers bought them for exactly this.

If I publish SPF, am I protected?

No. SPF says which servers may send for your domain and stops there; DMARC is what tells a receiver to act on a failure. Domains publishing SPF with a soft fail enforce DMARC on 8.5%, lower than the 12.3% of domains publishing no SPF at all.

Do I need DKIM as well?

Yes, and this report does not measure it. A DKIM record lives at a selector the publisher chooses, so it cannot be found without already knowing the name, and any DKIM adoption figure is really a figure about which selectors the measurer guessed.

Why do parked domains publish better records than real ones?

Because a registrar configured them in bulk and a business configured its own by hand. Among websites with no mail that publish any record at all, 73.7% enforce DMARC, against 12.4% of websites with mail. Most no-mail websites publish nothing, though, so across all 62 million of them only 8.7% enforce.

Methodology and sources

Population. We read the DNS of every domain on the internet, 2,847,611,085 records. 206,770,685 domains published at least one MX, SPF or DMARC record; 173,136,975 publish an MX record and can receive mail, and that is the denominator for every share in this report. A domain that cannot receive mail cannot be impersonated the way these standards exist to prevent.

Website or not. A domain counts as a website when its web server answered our crawl, 151,649,745 domains. That is what separates a going concern from a parked name. The CMS report counts websites from a separate technology crawl and arrives at a higher total, and each report's shares are taken over its own count. A website with no MX, SPF or DMARC record at all still counts as a website, and as one that publishes nothing; the shares for no-mail websites and for websites that publish neither record are taken over every website, not only those with some mail record.

What counts as SPF and DMARC. An SPF record is a TXT record beginning v=spf1 on the domain itself. A DMARC record is a TXT record beginning v=DMARC1 at _dmarc under it. The policy is the p tag, and enforcement means p=quarantine or p=reject. SPF's policy is the last all mechanism, which is the only part a receiver acts on.

DKIM is not measured and no figure is published for it. A DKIM key lives at selector._domainkey, and a selector is whatever the publisher chose, so finding one means guessing names. Any DKIM adoption number is a statement about the guesser's list.

The SPF lookup limit is not measured either. SPF permits ten DNS lookups and a record that exceeds them fails, but the limit is usually blown by nested includes rather than by the record in front of you. Counting it honestly means resolving every include chain, which is a separate job.

Company size comes from matching a domain to the company records we hold, which covers a minority of domains. Every share names the base it is taken from.

Figures may be reproduced with attribution to StackScan and a link to this page.