Free tool
SPF checker
Count the lookups in your SPF record. If it goes past ten, receiving servers stop evaluating it.
No signup. Nothing stored. Four seconds.
Enter a domain to walk its SPF include tree and see exactly where it crosses the ten-lookup limit.
What SPF does
SPF tells receiving servers which hosts are allowed to send mail for your domain. It only works when the record is published once, stays under the ten-lookup limit, and ends in a policy that actually rejects unauthorised mail.
Why the lookup count matters
Every include: can trigger more DNS queries. The specification allows ten lookups. Past that, receivers stop evaluating and treat the record as a permanent error. The record still exists in DNS. It just stops working.
Why the ending matters
-all refuses mail that is not authorised. ~all soft-fails it. ?all makes no decision at all. Most SPF records are technically valid but still too soft to protect anything.
Why DNS panels lie by omission
A DNS panel can show a record as valid even when the lookup chain is too deep to evaluate. It checks syntax, not the path receivers walk to verify it. This checker counts that path.
Questions
- Is this free?
- Yes. No signup, no email address, no limit worth mentioning.
- Do you store the domains people check?
- No. The query runs, the result is returned, nothing is written down.
- Why does it say my SPF record is broken when my DNS panel says it's fine?
- Your DNS panel checks syntax. It doesn't count DNS lookups. A record can be perfectly valid and still exceed the ten-lookup limit, at which point receiving servers ignore it.
- Is ~all good enough?
- Usually not. ~all soft-fails unauthorized mail instead of refusing it, which is useful while you're testing but not a finish line.
- Can I just fix this myself?
- Often, yes. What takes time is finding every system that sends mail as you and merging them into one record without crossing the lookup limit.
Need the whole record too?
SPF is one part of the picture. The full checker reads MX, DKIM, DMARC, and PTR alongside it.