SPF.Guru

What each vendor costs in SPF lookups

Every number below was measured against live DNS with the same engine behind the SPF checker, not copied from a vendor's documentation. They are re-checked weekly, because they move.

Vendor LookupsWas CheapestInclude
Mimecast 9 6 1 _netblocks.mimecast.com
Freshdesk 7 8 1 email.freshdesk.com
Mailgun 5 3 1 mailgun.org
Oracle NetSuite 5 3 1 sent-via.netsuite.com
Zoho 5 3 1 zoho.com
SendGrid 2 2 sendgrid.net
Google Workspace 1 4 _spf.google.com
Microsoft 365 1 1 spf.protection.outlook.com

Verified 2026-09-09. Was is the figure published on the older Expurgate list, kept because the movement is the point. Cheapest is the same vendor addressed by a single region.

Nearly every expensive record is expensive for one reason

A vendor operating in five regions publishes one headline include that fans out to all five. A customer sends from one of them. A receiving server walks all five anyway, on every message, because SPF has no way to know which region you are in.

Mimecast is the clearest case. Its published include contains nothing but five further includes, one per region, and costs nine of your ten lookups. The include for a single region costs one. Same authorised servers for your mail, eight lookups back.

The same shape appears in Freshdesk, Mailgun, NetSuite and Zoho. Across the vendors here that document their regional includes, narrowing each one to a single region gives back 20 lookups.

The numbers you have read elsewhere are probably wrong

Of the vendors on the older Expurgate list, re-measuring found most had changed since it was written, in both directions. Google Workspace fell from four lookups to one when it flattened its record, and nearly every guide still says four. Mimecast rose from six to nine. Mailgun, Zoho and NetSuite all grew.

Nothing announces this. A record that fitted comfortably last year can be over the limit today without anyone touching it, and the first symptom is mail from one vendor failing while everything else keeps working.

What to do with this

How these are measured

Each figure is the result of evaluating v=spf1 include:<target> -all against live DNS in audit mode, counting every DNS-resolving term including everything nested beneath it. That is the same count a receiving server applies against the limit of ten.

Audit mode keeps counting past ten rather than stopping there, which is why a record costing more than the limit can be reported honestly instead of as permerror.

A vendor missing from this list can be measured directly: put its include domain into the include tree and it will expand the same way.