A domain may publish exactly one TXT record starting with v=spf1. With two, RFC 7208 tells receivers to return permerror, so SPF fails for every message, including mail from services that are listed correctly in either record. It usually happens when a new tool's setup guide says "add this TXT record" and someone adds it instead of editing the one that's there.
How to merge them
- Copy both records somewhere safe.
- Keep one
v=spf1at the start. - Put every
include:,ip4:andip6:term from both into the one record. Drop exact duplicates. - End with a single
~allor-all. If the two endings differed, use~alluntil your DMARC reports are clean. - Edit one of the TXT records to hold the merged value, then delete the other.
Example
Before, two records:
v=spf1 include:_spf.google.com ~allv=spf1 include:sendgrid.net -all
After, one record:
v=spf1 include:_spf.google.com include:sendgrid.net ~all
Check after merging
- Count lookups across the merged record. Two records that were each under 10 can be over 10 together. See getting under 10 lookups.
- Other TXT records at the root, such as Google site verification or Microsoft
MS=codes, are fine. Only records startingv=spf1count. - An old DNS record type called "SPF" (type 99) is obsolete. If your DNS host still shows one, delete it and keep the TXT record.
Questions people ask
Can I have one SPF record per email service?
No. One per domain name. Each subdomain can have its own, but the root gets exactly one.
How long until the fix works?
As soon as caches expire, usually within an hour (the record's TTL). The checker shows what public DNS returns right now.
Related guides
- How to create an SPF record that actually passes One record, every service that sends as you, and the right ending.
- SPF too many DNS lookups: how to get under 10 Which terms count, how to count nested includes, and five ways to get under 10.
DNS only shows part of the picture. If mail is still landing in spam with every record right, the deliverability audit looks at the rest: blocklists, reputation, bounces, content and the sending setup.