DomainCanary Start free

Guides

SPF with multiple includes: how many one record can hold

Last updated 11 Oct 2026

You've got Google Workspace for staff mail, a marketing platform, a helpdesk and an invoicing tool, and each one has handed you an include: to add. You can add as many as you like, because SPF's limit is on DNS lookups. The whole evaluation gets ten, and each include: uses at least one. The provider that published it decides how many more.

How many includes can one record have? As many as fit inside ten DNS lookups. Four is often fine and sometimes too many, because somebody else sets the cost of each.

What an include costs

An include: costs one lookup to fetch the target's record, plus whatever the provider puts inside it. Providers nest their own includes in there, and they change them without telling you. Two records that look the same in your DNS panel can cost very different amounts:

v=spf1 ip4:198.51.100.0/24 ip4:203.0.113.7 include:_spf.google.com ~all -> 1 lookup. ip4: terms are free. v=spf1 include:a.example include:b.example include:c.example ~all -> 3, or 13. Depends on what a, b and c nest.

That's how a record that passed on Monday returns permerror on Friday with nobody having touched it. A provider added an include to their own record, your total crossed ten, and every sender in your record lost its pass at once.

The SPF checker resolves the whole chain of a published record and gives you the real count. The pre-flight does the same for a record you haven't published yet, which is the one you want when you're about to add the fourth include.

Adding an include

The new term goes inside the existing record. A second v=spf1 record breaks both, and the multiple SPF records guide covers why.

Before:

v=spf1 include:_spf.google.com ~all

After:

v=spf1 include:_spf.google.com include:sendgrid.net ~all

Keep all at the end. Receivers stop at the first match and all matches everything, so the receiver never reads an include placed after it. The record is still valid and every other sender still passes, so you'd only find out from that one sender's reports.

Ways to get under the limit

Work through these in order, starting with the one that leaves you the least upkeep.

Remove what isn't sending. Records collect includes for platforms that were trialed once and canceled, and each one still costs a lookup. Your DMARC aggregate reports show which includes covered real mail last month and which covered none.

Replace an include with the addresses behind it. A provider that sends from a small fixed range usually documents it, and ip4: terms cost nothing. The ranges are now yours to maintain, though. When the provider renumbers, your record is wrong and you'll find out from a bounce.

Move a bulk sender to its own subdomain. Send marketing from mail.example.com with its own SPF record and its own ten lookups. Your main domain keeps staff mail and gets its budget back. Mail from the subdomain aligns to the subdomain, which DMARC accepts under relaxed alignment.

Flatten the record. Resolve every include down to addresses and publish those. You'll be well under the limit, and every future change is now somebody's job, because a flattened record goes stale the day a provider renumbers. The 10-lookup limit guide compares these in more detail.

Counting your lookups

Every option above changes the record, and a record over the limit fails every sender in it, the ones you didn't touch included. Paste the new record into the pre-flight. It resolves the whole chain against live DNS, gives you the lookup count, and lists any sender that would stop passing.

The count only holds for the day you check it. Your includes belong to other people, and they change them on their own schedule. We read your DMARC reports and send you a weekly digest that lists the sources that failed. On a paid plan, we also email you the day a sender that was passing starts failing. That's how you hear about somebody else's edit before your customers do.

Count your SPF record's lookups

Every include followed, the total against the limit of ten, and the senders in the record.

Free · No signup · The result names what to change

Questions

How many include: terms can an SPF record have?

As many as fit inside the lookup budget. The count itself is free. The record gets 10 DNS lookups in total, and each include: spends one plus whatever the record it points at spends. Four includes can cost four lookups or fifteen, depending on what those providers publish.

Do includes have to be in a particular order?

No. A receiver reads mechanisms left to right and stops at the first match, so order changes which term matches, never whether the message passes. Put your busiest sender first if you like. It saves the receiver a lookup or two and changes nothing else.

Can I nest includes to get around the limit?

No. The ten lookups cover the whole evaluation, every nested record included. An include inside an include spends from the same budget, which is why a record with four visible includes can already be over.

Is a duplicate include harmful?

It wastes a lookup. The same include listed twice, or reached twice through two providers that both include a shared platform, resolves twice and counts twice.

DomainCanary is a DMARC enforcement service that protects your domain from email spoofing without blocking your own mail.