SPF Lookup Counter
Add your email senders and watch your DNS lookup count update instantly. See if you're over the RFC 7208 limit of 10, preview a flattened or hosted-macro record, then run a live check on your real domain._spf.powerspf.com host only resolves for domains enrolled in PowerDMARC Hosted SPF. Activate PowerSPF for your domain →
Check your real SPF record
Enter your domain to run a live SPF check — see your actual record, its lookup count, and any errors.
Why Count Your SPF Lookups
The 10-lookup limit is the number one cause of SPF PermError. Because email providers nest their own includes, a record with only a few senders can quietly cross the limit - and you would never know until mail starts failing.
How to Use the SPF Lookup Counter
Counting your SPF lookups takes seconds. Follow these three steps.
spf.yourvendor.com.How the SPF Lookup Limit Works
RFC 7208 caps SPF evaluation at 10 DNS lookups. Here is why the limit exists, what breaking it does, and the two ways to fix it.
ip4/ip6 ranges, removing the lookups - but the IPs must be updated by hand whenever an ESP rotates them.DNS Lookup Cost by Mechanism
Not every part of an SPF record costs a lookup. These are the mechanisms and modifiers RFC 7208 counts against your limit of 10 - and the ones that are free.
| Mechanism / modifier | DNS lookups | Why |
|---|---|---|
| include: | 1 each | Recursively evaluates another domain's SPF record. Its own nested includes add more. |
| a / a: | 1 each | Resolves the domain's A / AAAA records to authorise those IPs. |
| mx / mx: | 1 each | Resolves the MX records. Resolving the MX hosts to IPs has its own separate cap of 10. |
| ptr | 1 each | Reverse-DNS check. Deprecated by RFC 7208 - slow and unreliable; avoid it. |
| exists: | 1 each | A macro lookup evaluated per message, commonly used for conditional sending rules. |
| redirect= | 1 each | Delegates the entire policy to another domain's SPF record, which is then evaluated. |
| ip4: / ip6: | 0 | A literal IP address or CIDR range. No DNS query is needed to evaluate it. |
| all | 0 | The terminating catch-all policy (-all, ~all). No DNS query. |
The takeaway: a single include: can cost far more than one lookup, because the provider's record may pull in several more includes of its own. That is why the honest way to know your total is to resolve the whole tree - which is exactly what this tool does above.
Frequently Asked Questions
What is the SPF 10-lookup limit?
include, a, mx, ptr, and exists, plus the redirect modifier - counted recursively through every include. If the total goes over 10, receivers return a PermError and SPF fails.How is this different from a normal SPF checker?
What happens if I exceed 10 DNS lookups?
Why does a single include cost more than one lookup?
include:example.com, that record may itself contain two or three more includes - each one is another lookup charged against your 10. That is why a record with only a handful of senders can quietly cross the limit.What are void lookups?
Can I publish the flattened record this tool shows?
Is my domain sent to your servers?
Stop fighting the 10-lookup limit
This counter shows you the problem. PowerSPF fixes it permanently - flattening and hosting your SPF record so it stays under the limit and updates automatically whenever your providers change their IPs.