SPF record checker
Validate your SPF record against RFC 7208, see every include with its lookup cost, and test whether a server may send for your domain.
5 free checks per day · then from $0.04 per check — pricing
What the SPF Checker checks
- Exactly one v=spf1 record
- 10 DNS-lookup limit across all includes
- 2 void-lookup limit
- Syntax of every mechanism and modifier
- Policy: +all, ?all, ~all, -all
- Deprecated ptr, macros, loops, duplicates
- Optional: does a given IP pass?
How it works
- 1
Enter your domain (and optionally a sending IP)
- 2
See the record, the include tree and lookup count
- 3
Fix errors — the result tells you how
Frequently asked questions
What is the SPF 10-lookup limit?
RFC 7208 allows at most 10 mechanisms that need DNS lookups (include, a, mx, ptr, exists, redirect) while evaluating SPF — including everything inside your includes. Above 10, receivers return "permerror" and SPF fails for every message.
~all or -all?
Both are fine. With an enforced DMARC policy, ~all (soft fail) is the common recommendation because DMARC then decides. -all is stricter and rejects unlisted servers at SPF level already.
Can I have two SPF records?
No. With more than one v=spf1 TXT record, SPF always fails with permerror. Merge all mechanisms into a single record.
What is a void lookup?
A DNS lookup that returns no records (for example an include to a domain without SPF). More than two void lookups also cause a permerror.