Back to Tools
📧 Free Tool

SPF Record Checker

Look up a domain's SPF record, count the DNS lookups, and see whether the policy will actually protect you.

Use the sending domain, not a mailbox address.

What this SPF checker actually looks at

SPF is a DNS TXT record that answers one question: is this server allowed to send mail claiming to be you? It is not inbox placement. It is not DKIM. It is the allow-list. If it is missing or broken, the rest of authentication is standing on a missing floorboard.

The checker queries live DNS for the domain you type, finds TXT records that start with v=spf1, and then reads the terms. One record is required. Two records is a permerror, which receivers treat as a fail. Fun.

The terms that matter

include: pulls in another domain’s SPF, which is how Google, Microsoft, Klaviyo, and most ESPs get authorised. ip4: and ip6: list addresses directly and do not count toward the lookup cap. a and mx authorise whatever is in those records, and they do count. The trailing all is the policy for everyone else.

The 10 lookup cap

RFC 7208 stops evaluating after ten DNS-querying mechanisms. Go over that and SPF returns permerror even if every sender is legitimate. This tool counts the top-level lookups. It does not yet flatten nested includes, so a record that looks fine here can still blow the cap once Google’s own includes are followed. If you are stacking four ESPs, assume you are closer to the edge than the number suggests.

Common ways people break it

Publishing two SPF records instead of merging them. Leaving +all in place because a random generator used it. Forgetting the ESP include after a platform migration. Using ptr, which is deprecated and slow. Copying a record from a different domain and wondering why Klaviyo mail starts failing.

If you want the full walkthrough of how SPF sits next to DKIM and DMARC, we already wrote it: SPF, DKIM, and DMARC. This page is the live lookup. That post is the why.

SPF Checker FAQ

What is an SPF record?

SPF (Sender Policy Framework) is a DNS TXT record that lists which servers are allowed to send email for your domain. Receiving servers check it against the sending IP. If the IP is not listed, the message can fail authentication and is more likely to land in spam, or be rejected once DMARC is enforcing.

How do I check my SPF record?

Enter the sending domain above. The checker looks up the apex TXT records, finds the one starting with v=spf1, parses the mechanisms, counts DNS lookups, and reports the all policy. Use the domain people see in the From address, not a tracking subdomain unless that is actually what you send from.

What does ~all vs -all mean?

~all is a soft fail: unauthorised mail is marked suspicious but usually still delivered. -all is a hard fail: receivers may reject it. Start with ~all while you are still finding senders, then move to -all once SPF and DKIM are aligned and DMARC reports look clean.

Why is the 10 DNS lookup limit a problem?

RFC 7208 caps SPF evaluation at 10 DNS-querying terms (include, a, mx, ptr, exists, redirect). Go over that and the result is permerror, which is treated as a fail. ip4 and ip6 do not count. Flattening or dropping unused includes is how you get back under the cap. This checker counts top-level lookups only and does not expand nested includes yet.

Can I have more than one SPF record?

No. One v=spf1 TXT record per domain. Two records is a permerror. If Google, Klaviyo, and a transactional provider all need to send, they go in the same record as separate include or ip4 terms.

Does a pass here mean my email will hit the inbox?

No. SPF is one authentication check. Inbox placement also depends on DKIM, DMARC, list quality, complaints, and sending reputation. A missing or broken SPF record is still one of the fastest ways to fail the rest of that stack.

Want the rest of the setup checked?

SPF is the easy one. A free audit covers authentication, list quality, and the sending habits that actually move inbox placement.

Get Your Free Audit →