Answer · SPF · with original 2026 data

“No SPF record found” — what breaks, what does not, and the record to publish

A checker told you your domain publishes no SPF record. This page covers what SPF actually controls, the record to publish, the one limit that silently breaks SPF records that look correct, and — the part most pages skip — why SPF on its own does not stop anyone from sending email in your name.

15.7% and 5.2%

of the domains in our two 2026 samples publish no SPF record — 13 of 83 independently sampled small-business domains and 27 of 522 agency-built sites. It is much rarer than the DMARC gap, which is why a missing SPF record usually means nobody has looked at this domain’s email settings at all.

Free, no signup: what a stranger can already read about your domain

This reads your domain's live SPF and DMARC records together, which is the pair that matters - SPF alone cannot answer the question you came here with.

Type a domain and get four checks in about ten seconds: whether anyone can send email in your name (SPF, DKIM and DMARC), how long your HTTPS certificate has left, when your domain registration expires, and whether the site answers over HTTPS rather than plain http. No email address, no account, nothing installed. It runs the same code our paid monthly report runs.

Open the free check on its own page → · We measured 604 domains: 72-83% had at least one finding

What SPF is

SPF is one TXT record at the root of your domain listing the mail servers permitted to send on its behalf. A receiving server reads it and compares the list against the server the message actually arrived from.

No SPF record

yourcompany.com does not publish SPF, so there is no list of servers allowed to send as you. This also weighs against your own mail reaching the inbox.

The sentence above is the wording our own free checker returns for this finding, reproduced here from the running code rather than retyped.

Note the second sentence, because it is the half people miss. A missing SPF record is not only a security gap — it is a deliverability problem for your own mail. Spam filters weigh authentication, and a domain with no SPF record at all is a domain with one fewer reason to be trusted. If your invoices have been landing in customers’ junk folders, this is one of the first things to rule out.

The record to publish

Start from what actually sends mail as you. Almost every business has more than it thinks: the mailbox provider, the website contact form, an invoicing tool, a booking system, a newsletter platform, and sometimes the accountant.

Name:   @            (the root of the domain)
Type:   TXT
Value:  v=spf1 include:_spf.google.com include:servers.mcsv.net ~all

Replace the include: entries with the ones your own providers publish — every serious provider documents theirs. Then the ending, which is the part that decides what the record does:

EndingMeaningUse it when
-allAnything not on the list is unauthorised. Refuse it.You are confident the list is complete.
~allSoft fail. Not authorised, but do not refuse outright.Sensible default while you are still finding senders.
?allNeutral. Explicitly declines to say anything.Effectively never. It undoes the record.
+allEveryone is authorised.Never. This is worse than having no record.

In our agency sample, 12 of 522 domains (2.3%) publish an SPF record that refuses nobody — a record that exists, passes a “do you have SPF” check, and authorises the internet.

The limit that breaks correct-looking records

An SPF record may trigger at most ten DNS lookups when it is evaluated. Every include:, a, mx, ptr and redirect counts, and each include: counts everything inside it too. Exceed ten and the result is permerror: receivers are entitled to treat the whole record as invalid, so a record you can read and that looks entirely reasonable authenticates nothing.

This is the most common way a business that has done the work still fails. Four or five include: entries is enough to reach the limit, because a single provider include can spend three or four lookups by itself. Our free check counts them for you and tells you the number. If you are over, the fix is to replace the largest include with the specific ip4: ranges it resolves to, or to consolidate providers.

nslookup -type=TXT yourcompany.com
dig +short TXT yourcompany.com

One SPF record per domain. Two v=spf1 records on the same name is a permerror for the same reason — if you are adding a provider, merge its include: into the record you have rather than publishing a second one.

Why SPF alone does not stop somebody sending as you

This is the part worth reading twice, because a great deal of advice implies otherwise.

SPF authenticates the envelope sender — the address the sending server declares in the SMTP conversation. That address is not the one your recipient sees. The From: line displayed in a mail client is a separate header, and a forger is free to put your domain there while using an envelope sender on a domain they control and whose SPF they pass perfectly.

So a message can pass SPF, be entirely legitimate by SPF’s own reckoning, and still show your company in the From line. The check that closes that gap is DMARC, which requires the authenticated domain to match the visible one and tells receivers what to do when it does not.

The practical order is therefore: publish SPF, then publish DMARC, then move DMARC off p=none. SPF without DMARC leaves the forged-From case wide open, and it is the case that costs money.

Both samples are point-in-time and neither is random. Method and limitations in full are in the study.

We sell a monthly monitor that watches these records. That is a real interest and you should weigh it. The record is above; publishing it costs nothing.

Fix it yourself. Then find out when it breaks again.

Everything on this page is the whole fix, free, with nothing held back. What a DNS change cannot do is tell you when somebody edits it back, when a certificate runs out, or when a registration lapses — all three carry dates and none of them announce themselves. A3E’s perimeter monitor re-runs all four checks every month and emails you only when something moves: CA$99/month per site, cancel any time. A single report with no monitoring is CA$29.

Check a domain free See the monitor

Questions

What does no SPF record found mean?

Your domain publishes no list of servers permitted to send email as it. Receiving servers have nothing to compare an incoming message against, and your own mail loses one of the signals spam filters use to trust it.

What is the ten-lookup limit?

An SPF record may trigger at most ten DNS lookups when evaluated. Every include, a, mx, ptr and redirect counts, including everything inside each include. Exceeding it produces a permerror and receivers may treat the whole record as invalid.

Should my SPF record end in -all or ~all?

Use ~all while you are still discovering which systems send as you, and -all once you are confident the list is complete. Never use +all, which authorises every server on the internet, and avoid ?all, which explicitly declines to say anything.

Does SPF stop someone sending email as my domain?

Not on its own. SPF authenticates the envelope sender, not the From address your recipient sees. A forger can pass SPF on a domain they control while displaying yours. DMARC is the check that requires the two to match.

Can I have two SPF records?

No. Two v=spf1 records on the same name is a permerror. Merge the new provider's include into the single existing record instead.

The other five in this set

No DMARC record found: what it means and the record to publish

DMARC record published but invalid: why receivers discard it

DMARC p=none: what it does, and how to move off it safely

Gmail 550-5.7.26: what it means and the records that fix it

SPF permerror — too many DNS lookups, and how to get back under ten

The measurement behind every number on this page: 604 domains, method and limitations

Every figure on this page is generated from the stored raw measurement files behind our 604-domain study (522 agency-built sites measured 2026-08-20, 83 independent domains measured 2026-08-01), and the quoted finding wording is read out of the running checker at build time. An automated control re-asserts both against this live page on every operating cycle; if either changed and this page did not, it fails. Generated 2026-09-05T23:34:13Z.

← Back to all articles