SPF record merger: combine two SPF records into one
In short: Paste your SPF records or enter a domain and get one merged record with duplicates removed, one ending, the DNS lookup count and 255-character strings ready to publish. Limit: It writes the merged record but can't tell whether every service you use is in it; a sender missing from your records stays missing.
An SPF record merger combines two or more SPF records into the one record a domain is allowed to publish. Paste the records or enter your domain: every ip4, ip6, a, mx and include is kept once, a single all goes at the end, the DNS lookups are counted against the limit of 10, and you copy one record.
By SimpleVerifier Team · Last updated
How do I merge two SPF records into one?
- Paste each SPF record on its own line, or switch to Read a domain and enter it to load every v=spf1 TXT record it publishes.
- Optionally add a sender you are setting up, such as Google Workspace or Amazon SES, and choose how the record should end.
- Press Merge into one record. Duplicates are removed, a redirect becomes an include, and the strictest all is kept unless you chose another.
- Check the DNS lookup count, copy the record, publish it as the only v=spf1 TXT record on the domain and delete the old ones.
Example
- You enter
- Two SPF records on
acme.example:v=spf1 include:_spf.google.com ~allandv=spf1 include:sendgrid.net ip4:192.0.2.10 -all. - You get
- One record,
v=spf1 ip4:192.0.2.10 include:_spf.google.com include:sendgrid.net -all, with a note that the records ended differently and the strictest ending (-all) was kept, plus the DNS lookup count with each include followed. - Limits
- Merging runs in your browser; the domain read and the lookup count share a limit of 10 requests a minute, following up to 15 includes.
Can a domain have two SPF records?
No. RFC 7208 section 3.2 says a domain must not publish more than one record starting with v=spf1, and section 4.5 tells receivers to return permerror when they find two. A permerror is not a partial pass: SPF fails for every message from the domain, including mail from servers either record lists, and DMARC can't use SPF to pass.
It usually happens when a second service is added. A mailbox provider's guide says to publish v=spf1 include:_spf.google.com ~all, a newsletter or support tool says to publish its own record, and both go in as separate TXT records. The fix is one record that lists every sender, which is what this tool writes.
How do I combine two SPF records?
Keep one v=spf1 at the start, put every mechanism from both records after it once, and end with a single all. v=spf1 include:_spf.google.com ~all and v=spf1 include:sendgrid.net -all become v=spf1 include:_spf.google.com include:sendgrid.net -all. The tool orders ip4 and ip6 first because they cost no DNS lookups, then a, mx and the includes.
When the records end differently, the merged record keeps the strictest (-all, then ~all, then ?all) and says so. If a sender you still use isn't in either record, choose ~all until it is added. A redirect= can't sit next to an all, so it is turned into an include of the same domain: that keeps its servers authorised, and the merged all decides for everything else.
Does merging SPF records go over the 10 lookup limit?
It can. Each include, a, mx, ptr, exists and redirect costs one DNS lookup, and every include can pull in more, with a limit of 10 for the whole evaluation (RFC 7208 section 4.6.4). After merging, the tool follows each include the way a receiver does and shows the total and what each include costs.
Over 10, SPF still fails with permerror. Remove services that no longer send as the domain, move bulk or cold email to a subdomain with its own record, or see the SPF flattener. The full include tree for a published record is in the SPF lookup counter.
What if the merged SPF record is longer than 255 characters?
Then it is published as one TXT record made of several quoted strings, each up to 255 characters. Receivers join the strings with no space between them (RFC 7208 section 3.3), so the tool breaks the record just after a space and gives you the zone value with the quotes. Some DNS dashboards accept the long value and split it themselves; if yours rejects it, paste the quoted strings.
Is this safer than editing the record by hand?
| This tool | Editing by hand | |
|---|---|---|
| Duplicate mechanisms | Removed, and counted in the notes | Easy to leave in |
| Two different endings | One kept, the strictest, with the reason | Often both left in, which is invalid |
| redirect next to all | Turned into an include, with a note | Silently ignored by receivers |
| DNS lookups after merging | Counted, nested includes followed | Not visible until mail fails |
| Records over 255 characters | Split into quoted strings | Rejected by some DNS hosts |
Who uses this tool, and for what?
- Founders
- Added Google Workspace and then a newsletter tool, and now there are two SPF records? Paste both and publish the one merged record.
- Cold emailers
- Combine the mailbox provider's include with your sending tool's before a domain starts warm-up, and check the lookup count stays under 10.
- Agencies
- Read a client domain, see every v=spf1 record it publishes, and hand over one merged record with the reason for each change.
- IT admins
- Fold an old record's ip4 ranges and a new provider's include together during a migration, with the ending you choose.
What can’t this tool tell you?
- It writes the merged record but can't tell whether every service you use is in it; a sender missing from your records stays missing.
- Lookups behind each include are counted from live DNS when you merge; vendors change their records, so the count can change later.
- Macros and exists terms are kept as written and counted as one lookup each; their targets can't be followed without a real message.
- Up to 15 includes are followed for the count, and the read and the count share a limit of 10 requests a minute.
Common questions
- What happens if I have two SPF records?
- Receivers return permerror and treat the domain as failing SPF for every message, not just mail from one of the senders. Merge them into one record and delete the other.
- How do I add a second email service to my SPF record?
- Add its include to your existing record, before the all, instead of publishing a new record. Paste your current record here, pick the service or paste its record, and copy the merged result.
- Should the merged record end with -all or ~all?
- The tool keeps the strictest ending your records had. -all asks receivers to reject unlisted servers; ~all marks them as suspicious. Use ~all while you are still confirming every service that sends as the domain, then move to -all.
- Can I combine a redirect with other mechanisms?
- A record that has an all ignores redirect, so merging a redirect record with another one would lose it. The tool turns the redirect into an include of the same domain and notes the change.
- Is this SPF merger free?
- Yes, it's a free tool with no account. Merging happens in your browser; the domain read and the lookup count use public DNS, 10 lookups a minute per connection.
- Does the tool publish the record for me?
- No. It writes the record; you publish it at your DNS host as one TXT record on the domain and remove the old SPF records. DNS changes can take up to the record's TTL to be seen everywhere.
Sources
You audited one domain. Cold outreach means thousands.
This tool checks a domain you type in. It will not tell you which addresses at that domain are real.
- Bulk mailbox verification with real SMTP checks
- The email finder — name plus company to a verified address
- Website enrichment for emails, owner names and socials
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.