Google Workspace SPF, DKIM, DMARC: 2026 Setup Guide

Most Google Workspace domains fail DMARC because of one missing record or a stray include. Here is the exact setup order, the DNS values, and the mistakes that quietly kill your cold email.

Aug 28, 2026 10 min read 2,274 words
Google Workspace SPF, DKIM, DMARC: 2026 Setup Guide

TL;DR

  • Google Workspace does not authenticate your mail correctly out of the box. SPF must be added by hand, DKIM must be generated and switched on per domain, and DMARC does not exist until you publish it.
  • Order matters: SPF first, DKIM second, DMARC at p=none third, then tighten to quarantine and reject over 4-8 weeks of report reading.
  • The single most common failure is the SPF 10-DNS-lookup limit — chaining include: records for Workspace plus a sending tool plus a CRM silently returns permerror, and every message fails SPF.
  • Since Google and Yahoo's 2024 bulk-sender rules, DMARC is table stakes for anyone sending more than 5,000 messages a day to consumer inboxes — and increasingly for B2B senders too.
  • Authentication gets you delivered; it does not get you read. Clean, verified recipient data does the rest of the work.

What do SPF, DKIM, and DMARC actually do?#

Think of sending email like posting a letter. SPF is the list of post offices allowed to stamp mail for your street. DKIM is the wax seal that proves the envelope was not opened in transit. DMARC is the standing instruction you leave at the receiving mailroom: "if the stamp and the seal don't both check out, here's what to do with it, and mail me a report either way."

Technically:

  1. SPF (Sender Policy Framework) — a TXT record listing the IP ranges and services allowed to send on behalf of your domain. The receiver checks the connecting server against it. Google Workspace's include is _spf.google.com.
  2. DKIM (DomainKeys Identified Mail) — a cryptographic signature added to each outgoing message header. The receiver fetches your public key from DNS (google._domainkey.yourdomain.com by default) and verifies the signature. Google Workspace generates the key for you, but it is off until you enable it in the Admin console.
  3. DMARC (Domain-based Message Authentication, Reporting & Conformance) — a policy record at _dmarc.yourdomain.com that tells receivers what to do when SPF and DKIM fail, and where to send aggregate reports.
  4. Alignment — the part most guides skip. DMARC does not just need SPF or DKIM to pass; it needs the passing domain to match the From: domain you show the recipient. A message can pass raw SPF and still fail DMARC because the envelope sender belongs to your sending tool, not to you.

That fourth point is where the majority of "but I set it all up" tickets come from. Passing is not the same as aligning.

One does not simply add an SPF record and expect DMARC to pass
One does not simply add an SPF record and expect DMARC to pass

Diagram: What do SPF, DKIM, and DMARC actually do
Diagram: What do SPF, DKIM, and DMARC actually do

What are the exact DNS records for Google Workspace?#

Here is the working baseline. Replace yourdomain.com and add records at your DNS host (Cloudflare, Route 53, GoDaddy — the interface differs, the values do not).

Record Host / Name Type Value Notes
SPF @ (root) TXT v=spf1 include:_spf.google.com ~all Exactly one SPF record per domain. Merge, never duplicate.
DKIM google._domainkey TXT 2048-bit key generated in Admin console Generate under Apps → Google Workspace → Gmail → Authenticate email
DMARC _dmarc TXT v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1 Start at none. Never start at reject.
MX @ MX smtp.google.com (priority 1) Google's simplified single-MX setup replaced the old five-record block
BIMI (optional) default._bimi TXT v=BIMI1; l=https://yourdomain.com/logo.svg; a=... Requires p=quarantine or p=reject first, plus a VMC for Gmail display

Two Workspace-specific details that trip people up:

  • DKIM key length. Google's console still offers 1024-bit for hosts that cap TXT record length. Choose 2048 unless your DNS provider physically refuses it. If your host rejects the long string, split it into quoted chunks — most providers concatenate automatically.
  • Propagation before activation. Add the DKIM TXT record, wait for propagation (usually minutes, occasionally up to 48 hours), then click "Start authentication" in the console. Clicking early throws an error and people assume the key is broken.

You can sanity-check the published SPF record with a free SPF checker before you touch anything else. If the lookup returns nothing, nothing downstream will work.

Diagram: What are the exact DNS records for Google Workspace
Diagram: What are the exact DNS records for Google Workspace

Why does SPF break when you add a second sending tool?#

Because SPF has a hard limit of 10 DNS lookups, and every include: costs at least one — often more, since includes nest.

A realistic stack:

v=spf1 include:_spf.google.com include:spf.mandrillapp.com include:sendgrid.net include:_spf.salesforce.com include:mail.zendesk.com ~all

That looks reasonable. It is not. _spf.google.com alone expands into three further includes. Add SendGrid and Salesforce and you are past 10, at which point conforming receivers return permerror and treat SPF as failed — for every message, including the legitimate Workspace ones. Nothing in the Admin console warns you.

Three ways out:

  • Audit and prune. Most domains carry includes for tools cancelled two years ago. Remove anything you cannot name a current sender for.
  • Use subdomains. Send marketing from mail.yourdomain.com and transactional from notify.yourdomain.com, each with its own SPF record and its own lookup budget. This also isolates reputation damage.
  • Flatten carefully. SPF flattening tools resolve includes into raw IPs. It works, but vendor IPs change without notice and a stale flattened record fails silently. If you flatten, automate the refresh.

Google's own Workspace admin documentation covers the include syntax; it does not cover multi-vendor lookup budgeting, which is where teams get hurt.

How do you read DMARC reports without drowning?#

Aggregate reports (rua) arrive as gzipped XML, one per receiving provider per day. Sending them to a human's inbox is how DMARC rollouts die in week two.

What you are actually looking for in the XML:

  • <source_ip> you don't recognise. Either a forgotten legitimate sender, or someone spoofing you.
  • spf result pass with dkim result fail, repeatedly, from one source. That vendor is not signing with your domain. Fix DKIM there before tightening policy.
  • Alignment mismatches — the <identifier><header_from> value differs from the authenticated domain. This is the classic "passes SPF, fails DMARC" case.
  • Volume by source. If 4% of your mail comes from an IP you cannot identify, do not move to reject yet.

Free parsers exist, and most ESPs now bundle a DMARC dashboard. The important discipline is boring: review weekly, resolve one unknown source per review, and only then tighten. A rushed p=reject on a domain that still has an unmapped invoicing system will bounce your invoices.

What does a sensible rollout timeline look like?#

Phase Duration DMARC policy What you're doing Exit criteria
1. Foundation Day 1 none (not yet published) Publish SPF, enable DKIM in Admin console, verify both SPF returns 1 record, DKIM shows "Authenticating email"
2. Observe Weeks 1-3 p=none; pct=100 Collect rua reports, inventory every sending source Zero unidentified sources over 7 consecutive days
3. Tighten Weeks 4-6 p=quarantine; pct=25pct=100 Ramp percentage, watch for legitimate mail landing in spam No internal complaints for 14 days at pct=100
4. Enforce Week 7+ p=reject Full enforcement, optional sp=reject for subdomains Reports stable, spoofing attempts rejected
5. Maintain Ongoing p=reject Re-audit SPF on every new tool purchase Quarterly review

Two rules that keep this uneventful. First, change one thing at a time — if you flip DKIM and DMARC together and delivery drops, you have no idea which caused it. Second, never let a marketing launch and a policy tightening land in the same week.

Expanding brain meme showing progression from no SPF to full DMARC reject
Expanding brain meme showing progression from no SPF to full DMARC reject

Diagram: What does a sensible rollout timeline look like
Diagram: What does a sensible rollout timeline look like

Does authentication alone fix deliverability?#

No — and this is the most expensive misconception in cold outreach.

Authentication is a gate check, not a quality signal. Passing SPF, DKIM, and DMARC means Gmail will accept your message for evaluation. What happens next depends on engagement, complaint rate, and bounce rate. Google's postmaster guidance is explicit that spam complaint rates should stay under 0.3%, and Gmail weighs recipient behaviour far more heavily than DNS records.

The three signals that actually move you from Promotions to Primary:

  • Bounce rate below 2%. Every hard bounce is a signal you bought or scraped a list. Running addresses through an email verifier before a send is the cheapest deliverability investment available — cheaper than any warmup tool and far cheaper than burning a domain.
  • Reply rate. Replies are the strongest positive engagement signal. They come from relevance, not from DNS.
  • Consistent volume. A domain that sends 40 messages a day for six months and then blasts 3,000 looks compromised, regardless of authentication.

This is why teams with perfect DMARC still land in spam. Their records are fine; their sender reputation is not. If you are sending to addresses guessed from a pattern generator rather than confirmed ones, no amount of DNS work saves you. Sourcing accurate contacts up front — via domain search or a verified email finder — keeps bounce rates where they need to be for the authentication work to pay off.

What are the most common Google Workspace mistakes?#

Ranked by how often they appear in real audits:

  1. Two SPF records. Someone added a second TXT record for a new tool instead of merging includes. Two SPF records is an automatic permerror under RFC 7208. There is exactly one legal SPF record per domain.
  2. DKIM generated but never activated. The key sits in DNS, the Admin console still says "Not authenticating." A generated key does nothing until you press start.
  3. p=reject published on day one. Usually after reading a security checklist. Legitimate mail from an unmapped system disappears, and nobody connects the two events for a week.
  4. -all before the inventory is complete. Hard fail on SPF with an incomplete include list has the same effect as premature reject, minus the reports that would tell you.
  5. Subdomain left unprotected. No sp= tag and no DMARC record on mail.yourdomain.com means attackers spoof the subdomain instead. Set sp=reject once the parent is enforcing.
  6. rua pointed at a mailbox nobody reads. Reports arrive, get filtered, and the rollout stalls at p=none forever. Use a shared alias with a parser, not a personal inbox.

Number six is the quiet one. A domain parked at p=none for two years gets none of the anti-spoofing benefit and passes exactly zero of the checks that Gmail's bulk-sender requirements care about.

How does this compare to other email platforms?#

Worth knowing if you run mixed infrastructure or are weighing a migration.

Aspect Google Workspace Microsoft 365 Self-hosted / SMTP relay
SPF include _spf.google.com spf.protection.outlook.com Your own IPs, no include needed
DKIM default Generated, off by default Off by default, per-domain enable Manual key generation (OpenDKIM)
DKIM key length 1024 or 2048-bit 1024 or 2048-bit Your choice
DMARC tooling None built in Basic reporting in Defender None
Selector naming google (customisable) selector1 / selector2 Arbitrary
Setup time 30-60 min 45-90 min Half a day plus
Typical failure mode Forgotten activation click Key rotation confusion IP reputation from scratch

Google Workspace is the shortest path to correct authentication of the three — provided you complete the activation step. Microsoft 365's two-selector CNAME model is more robust to key rotation but confuses admins more often. Self-hosting gives total control and hands you a cold IP reputation problem, which takes months to solve.

Diagram: How does this compare to other email platforms
Diagram: How does this compare to other email platforms

What should you do the week after enforcement?#

Once p=reject is live and stable, the DNS work is done. The remaining deliverability levers are all about who you send to and how often.

Practical next steps:

  • Set a quarterly SPF audit. Every new SaaS tool that sends mail on your behalf is a lookup you did not budget for. Check the count before you add the include.
  • Rotate DKIM keys annually. Google supports generating a new key while the old one is live; publish, wait, switch, remove.
  • Monitor blocklists. A clean DMARC posture does not protect you from a shared-IP listing. A periodic blacklist checker run costs nothing.
  • Fix the list before the DNS. If your bounce rate is above 3%, that is your deliverability problem, not your SPF record. Verify first, then send.
  • Warm gradually after any change. Domain or IP change resets the clock. Ramp volume over 3-4 weeks rather than resuming at full send.

For the broader picture of how authentication, reputation, and list quality interact, the email deliverability fundamentals are worth a read alongside G2's vendor comparisons at g2.com if you are shopping for monitoring tooling.

Where should you start?#

Publish SPF today, enable DKIM in the Admin console this afternoon, and put a p=none DMARC record live before you leave. Then spend three weeks reading reports before you touch the policy tag. That sequence takes about an hour of active work and eliminates the two failure modes — premature enforcement and unknown senders — that cause almost every self-inflicted outage.

Then fix the other half of the equation. Authentication earns you the right to be evaluated; accurate recipient data is what keeps bounce rates low enough that the evaluation goes your way. The Tomba Email Finder returns verified, source-attributed business addresses with confidence scores, so the list you send to matches the care you just put into your DNS. The free tier covers 25 searches a month if you want to test bounce rates against your current list; paid plans start at $49/mo — full Tomba pricing is public. Get the records right, then get the addresses right, and deliverability stops being a mystery.

Start your free trial

Ready to find emails that actually work?

Join 150,000+ professionals who stopped guessing and started sending. Free credits on signup — no credit card required.

Get the Tomba newsletter

Practical outbound tactics and product updates — once every two weeks.

Share
0 clapsEnjoyed it? Give a clap.
AU

About the author

Tomba Editorial Team

Was this helpful?

Start finding verified emails today

Join 150,000+ professionals who trust Tomba for accurate contact data. No credit card required.