SPF fix

How to Add an SPF Record in Cloudflare

You’re editing DNS in Cloudflare — add one TXT at root with your provider’s SPF string; Cloudflare doesn’t send mail for you.

Why SPF “vanishes” in Cloudflare

Mail breaks when you add a second v=spf1 or put the TXT on the wrong name. Receivers only see what’s published at apex — the UI label is on you.

What the row should look like

Type: TXT Name: @ Value: v=spf1 include:_spf.google.com ~all TTL: Auto

Swap the value for your real SPF string. One v=spf1 per hostname — merge, don’t duplicate.

Add the TXT without doubling SPF

Step 1 Cloudflare → your domain → DNSRecords
Step 2 Add record → Type: TXT
Step 3 Name: @ (apex). Value: full v=spf1 … ~all
Step 4 Use TTL: Auto. For mail-related records, keep orange-cloud off if your UI distinguishes proxy (often N/A for TXT)
Step 5 Save and verify with DNS Preflight

Run DNS Preflight to confirm SPF syntax and lookup count

Open DNS Preflight →

FAQ

Cloudflare vs Cloudflare Email Routing — do I still need SPF?

Yes — Routing isn’t your outbound ESP. You still publish SPF for whoever actually sends (Google, Microsoft, etc.).

Proxy vs DNS-only for SPF?

TXT isn’t “proxied” like web — ignore orange cloud for this. Get @ right and keep one merged v=spf1.

What TTL should I use?

Auto is fine day to day. Drop TTL when you’re iterating so mistakes clear faster.

Multiple TXT records warning?

Yes for DKIM and site verification — no for a second SPF. Only one v=spf1 per hostname.

How do I verify?

Run DNS Preflight. It parses SPF and counts lookups live.