DMARC for Google Workspace: Complete Setup Guide (SPF, DKIM, Authenticate Email, Feb 2024 Bulk-Sender Requirements)

The operator deployment guide for DMARC on a Google Workspace tenant. Covers all five rollout phases — SPF with include:_spf.google.com, DKIM via Admin Console "Authenticate email" at the google._domainkey selector, DMARC at p=none with rua reporting, alignment fix-up for SaaS senders via CNAME-delegated DKIM, and advancement through p=quarantine to p=reject. Anchored against the Feb 2024 Google/Yahoo bulk-sender requirements that apply to any domain sending more than 5000 messages per day to gmail.com or yahoo.com.

This deployment guide is provided in English. Google Workspace Admin Console UI labels (Authenticate email, Apps > Google Workspace > Gmail) and DNS-record syntax (v=spf1 include:_spf.google.com -all, google._domainkey, v=DKIM1, v=DMARC1) do not translate. We keep the body in the source language so technical terms remain consistent with the Google documentation and the underlying RFCs.

TL;DR

  • Google Workspace senders need three DNS records: SPF with include:_spf.google.com, DKIM at google._domainkey.<your-domain> (generated via Admin Console "Authenticate email"), and DMARC at _dmarc.<your-domain> starting at p=none.
  • Google's Feb 2024 bulk-sender requirements demand working SPF and DKIM with at least one of them aligned with the From: header, DMARC at minimum p=none (bulk senders strongly encouraged at p=quarantine or stronger), RFC 8058 one-click List-Unsubscribe, and Google Postmaster Tools spam-complaint rate under 0.3% for any domain sending >5000 messages/day to gmail.com or yahoo.com.
  • SPF record: v=spf1 include:_spf.google.com ~all during rollout, harden to -all in production. Add additional include: for every third-party sender (SendGrid, Mailchimp, etc.) — stay under the 10-DNS-lookup limit.
  • DKIM workflow: Apps > Google Workspace > Gmail > Authenticate email. Generate a 2048-bit key, publish the TXT record at google._domainkey, wait 24-48h for DNS propagation, click "Start authentication" to enable signing.
  • DMARC rollout: v=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.com first. Ingest reports for 2-6 weeks to inventory every sender. Advance to p=quarantine only after every legitimate sender is aligned. Never skip from p=none to p=reject.
  • Aligning SaaS senders (the #1 alignment failure for Workspace admins): enable DKIM with d=your-domain.com in every SaaS provider's settings (most support CNAME-delegated subdomain selectors). SPF alignment usually requires a custom bounce-domain configuration in the SaaS provider.
  • Google Postmaster Tools (postmaster.google.com) is the receiver-side reputation + deliverability dashboard for your Workspace tenant's mail to Gmail. Set it up alongside DMARC — they answer complementary questions.
  • DMARC Analyzer ingests Google's daily aggregate reports via includes/DmarcParser.php and surfaces the per-sender / per-IP / per-day breakdown that drives the alignment fix-up phase.

1. What this guide covers

This is the operator-implementation walkthrough for deploying SPF, DKIM, and DMARC on a domain whose mail is sent by Google Workspace (formerly G Suite). It assumes you are the administrator of a Workspace tenant and have access to:

  • The Google Workspace Admin Console (admin.google.com) — used to generate the DKIM key and enable outbound signing.
  • Your domain's DNS provider (Cloudflare, Route 53, GoDaddy, etc.) — used to publish the SPF, DKIM, and DMARC TXT records.
  • A working email mailbox on the domain to receive DMARC aggregate reports (or a third-party report-ingestion service — DMARC Analyzer is one option).

The guide is structured as five sequential deployment steps (SPF → DKIM → DMARC at p=none → alignment fix-up → enforcement) that mirror the canonical DMARC rollout with Google-Workspace- specific UI paths, syntax, and gotchas.

What this guide does not cover:

  • Hosting DNS at Google Domains specifically — Google Domains was sold to Squarespace in 2023 and is no longer a Google product. Any DNS provider works.
  • Receiving inbound mail for non-Workspace domains via Workspace's split delivery — a separate Workspace feature unrelated to outbound DMARC.
  • Google's bulk-sender enforcement actions in detail — covered in section 2 and at support.google.com/mail/answer/81126.

2. Why DMARC matters now: the Feb 2024 bulk-sender requirements

In February 2024 Google (jointly with Yahoo) introduced sender requirements that apply to any domain sending more than 5000 messages per day to gmail.com or yahoo.com combined. The Feb 2024 cutover is the single largest DMARC-adoption driver in the industry to date and the proximate reason most Workspace administrators are revisiting email authentication in 2024-2025.

The five Feb 2024 requirements:

  1. SPF must be set up and pass for the sending domain (RFC 7208).
  2. DKIM must be set up and pass (RFC 6376). The domain in the visible From: header must also align with either the SPF domain or the DKIM domain — that is what DMARC identifier alignment requires; aligning both is good practice.
  3. DMARC TXT record published with at minimum p=none — and bulk senders are strongly encouraged to advance to p=quarantine or p=reject over time.
  4. RFC 8058 one-click List-Unsubscribe (List-Unsubscribe-Post header + List-Unsubscribe with both a mailto: and an https: URL) on every commercial / marketing message.
  5. Spam complaint rate < 0.3% as measured by Google Postmaster Tools (with anything >0.1% as a yellow flag).

Bulk senders that fail one or more requirements have their mail delivered to spam at Gmail and Yahoo, or rejected entirely at the SMTP boundary. The 5000-messages-per-day threshold catches every commercial mailing-list operator, most B2B SaaS senders, and any organisation running marketing automation against the consumer-mailbox segment.

Even non-bulk senders below the 5000 threshold should publish DMARC for two reasons:

  • Spoofing protection. Without DMARC, attackers can forge messages with your domain in the From: header from anywhere on the internet. Workspace's own SPF / DKIM on your outbound mail does nothing to stop a different sender at a different IP from spoofing your domain at another receiver. DMARC at enforcement is what closes that gap.
  • Threshold drift. The 5000/day cutoff is the threshold today; Google's stated direction is universal enforcement. Deploying DMARC at p=quarantine now means you are not exposed when the threshold drops.

3. Prerequisites

  • Google Workspace super-administrator role on the primary domain. DKIM generation lives under Apps > Google Workspace > Gmail > Authenticate email and requires super-admin privileges. A delegated admin with the "Gmail" delegated permission can also access this page.
  • DNS edit access for the primary domain. You will publish three TXT records (SPF at apex, DKIM at google._domainkey, DMARC at _dmarc) and potentially more if you have additional sending sources.
  • A monitored mailbox on the domain (or a third-party DMARC report ingestion service such as DMARC Analyzer). Reports arrive as gzip-compressed XML attachments — a typical setup uses a dedicated address like dmarc-reports@your-domain.com.
  • Inventory of every legitimate sender for the domain. Workspace is the obvious source, but the list usually also includes a marketing platform (Mailchimp, Klaviyo, Customer.io), a transactional relay (SendGrid, Mailgun, Amazon SES, Postmark), a CRM (Salesforce, HubSpot), helpdesk software (Zendesk, Intercom), and potentially shadow-IT senders only the reports will surface.

4. Step 1: Configure SPF with _spf.google.com

Publish a single SPF TXT record at the domain apex (the root of your zone). Google Workspace publishes its sender IPs at _spf.google.com — a nested include that resolves to the union of every Workspace-side mail source (Gmail, Calendar invitations, Apps Script, etc.). Google updates the underlying IPs without operator intervention.

Minimum record for a Workspace-only sender:

your-domain.com.   IN TXT  "v=spf1 include:_spf.google.com ~all"

Production record once SPF passes are clean (note the -all hard fail):

your-domain.com.   IN TXT  "v=spf1 include:_spf.google.com -all"

If you also send via third-party providers, add each provider's include: in the same record (RFC 7208 §3.2 mandates a single SPF record per domain — multiple records cause a permerror):

your-domain.com.   IN TXT  "v=spf1 include:_spf.google.com include:sendgrid.net include:mailgun.org -all"

Watch the 10-DNS-lookup limit (RFC 7208 §4.6.4). Every include:, a:, mx:, exists:, and redirect= counts toward the limit, and nested includes count for their full expansion. The DMARC Analyzer Domain Security Checker reports the live lookup count against any SPF record.

Verify the record with dig +short txt your-domain.com after publication, or via the Domain Security Checker.

5. Step 2: Configure DKIM via the "Authenticate email" feature

  1. Sign in to admin.google.com as a super-administrator.
  2. Navigate to Apps > Google Workspace > Gmail > Authenticate email. The shortcut URL is admin.google.com/ac/apps/gmail/authenticateemail.
  3. Select the primary domain from the domain dropdown. The "Generate new record" button appears.
  4. Click Generate new record. Accept the default 2048-bit key (the Admin Console UI also offers 1024-bit; 2048 is what RFC 8301 recommends and the only option that should be selected in production).
  5. The Admin Console displays a TXT record to publish:
    Name: google._domainkey
    Type: TXT
    Value: v=DKIM1; k=rsa; p=<long-base64-public-key>
    Copy the entire Value field — public keys for 2048-bit RSA are around 400 bytes of base64 and your DNS provider may need to split it into multiple character-quoted strings (most modern providers handle this automatically).
  6. At your DNS provider, publish the record with hostname google._domainkey (the provider may append your domain automatically; the final FQDN is google._domainkey.<your-domain>).
  7. Wait 24-48 hours for DNS propagation. Most providers complete the change in minutes to a few hours; the Admin Console's "Start authentication" button will refuse to activate until Google can resolve the public key.
  8. Return to the Admin Console "Authenticate email" page and click Start authentication. Workspace begins DKIM-signing all outbound mail under your domain immediately.
  9. Verify by sending a test message to a Gmail address you control, opening Show original in Gmail, and confirming the Authentication-Results header shows dkim=pass header.d=your-domain.com.

Key rotation: re-running Generate new record creates a second selector (typically google2._domainkey); publish both selectors during the transition window, then activate the new one and remove the old. Workspace does not currently support Ed25519 (RFC 8463) DKIM keys; RSA-2048 is the production standard.

6. Step 3: Publish DMARC at p=none

With SPF + DKIM working, publish a DMARC TXT record at _dmarc.<your-domain>:

_dmarc.your-domain.com.   IN TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.com; fo=1"

Tags explained:

  • v=DMARC1 — protocol version, always first.
  • p=none — the reporting-only phase. Receivers will NOT change disposition based on DMARC outcomes; instead they will send daily aggregate reports describing every authentication result.
  • rua=mailto:dmarc-reports@... — destination for daily aggregate (RUA) reports.
  • fo=1 — request a forensic (RUF) report on any DMARC failure (most major receivers including Google do not send forensic reports — see DMARC aggregate reports deep dive — but publishing fo=1 is the operator signal).

Confirm the record is live with dig +short txt _dmarc.your-domain.com or via DMARC Analyzer's Domain Security Checker.

Reports begin arriving within 24-48 hours. Google's reports arrive daily between 04:00 and 09:00 UTC. Other major receivers (Microsoft, Yahoo, Comcast) send on similar cadences. Forward the rua= mailbox into DMARC Analyzer (via IMAP, Graph, or manual upload through the dashboard) for parsing.

7. Step 4: Inventory legitimate senders and fix alignment

Read aggregate reports for 2-6 weeks. For each unique sending IP / sending domain combination, determine:

  • Is this a legitimate sender? Workspace itself is obvious; the marketing platform you set up two years ago may not be.
  • Is the sender aligned? Either SPF must pass AND the envelope MAIL FROM domain match your visible From: header (organisational-domain match for relaxed alignment), OR DKIM must pass AND the d= in the signature match your visible From: header.
  • If not aligned, what is the gap? Workspace mail aligns natively. SaaS senders almost always need a configuration change.

The #1 alignment failure for Google Workspace senders is the SaaS-sender case: a third-party service (SendGrid, Mailgun, Customer.io, Mailchimp) sends on your behalf with the From: header set to marketing@your-domain.com but the envelope MAIL FROM domain pointing at the SaaS provider's bounce domain (bounces.sendgrid.net, etc.). SPF evaluates the bounce domain (passes) but doesn't align with your visible From: — DMARC fails.

Fix: enable DKIM signing with d=your-domain.com in each SaaS provider's settings. Most providers let you publish a CNAME under a unique subdomain (e.g. em1234._domainkey.your-domain.com CNAME → em1234.sendgrid.net) that delegates the DKIM key to the SaaS provider while the signing domain stays under your control. After CNAME publication and SaaS activation, the next day's reports show dkim=pass aligned with your domain — DMARC passes.

Continue iterating until every legitimate sender shows in reports as DMARC-pass. Note that some senders may take a full week to surface (cron-driven monthly billing emails, one-off campaign sends).

8. Step 5: Advance from p=quarantine to p=reject

Once every legitimate sender is aligned, advance the DMARC record to p=quarantine:

_dmarc.your-domain.com.   IN TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@your-domain.com; fo=1"

Receivers begin delivering DMARC-failing mail to spam. Continue monitoring reports for unexpected failures. A common pattern: a monthly cron job sends from an unaligned legacy script the operator forgot about — the first month at p=quarantine surfaces it loudly.

After 1-3 months at p=quarantine without unexpected failures, advance to p=reject:

_dmarc.your-domain.com.   IN TXT  "v=DMARC1; p=reject; rua=mailto:dmarc-reports@your-domain.com; fo=1"

DMARC-failing mail is now bounced at the SMTP boundary. Spoofing of your domain at DMARC-honouring receivers is no longer possible. You have completed the rollout.

Never skip from p=none to p=reject. The p=quarantine intermediate phase exists specifically so failed mail goes to spam (recoverable) rather than bouncing (unrecoverable). The single most common self-inflicted email outage in DMARC rollouts is skipping this phase. See the DMARC policy rollout deep dive for the full rationale.

For granular ramping, use the pct= tag: p=quarantine; pct=5 applies the quarantine disposition to 5% of failing mail, leaving 95% at p=none. RFC 7489 §6.3 defines the semantics; note that the dmarcbis draft deprecates pct= so this is a transitional feature.

9. Google Workspace-specific gotchas

  • Email aliases vs send-as addresses. Workspace lets users configure a send-as address from a different domain (e.g. user alice@your-domain.com sends as alice@your-other-domain.com). The From: header is rewritten but the DKIM signature is anchored to the Workspace-primary domain. If your-other-domain.com has DMARC at p=reject, these messages will fail. Either align both domains' DKIM under the same key, or use a Workspace secondary-domain configuration.
  • Multiple Workspace tenants sharing a domain. Only one Workspace tenant can own DKIM for a given domain at a time — the selector google._domainkey is single-instance. If two tenants need to send for the same domain, only one of them can sign with the canonical selector; the other must rely on SPF alignment or a separate non-Workspace DKIM key.
  • Workspace Routing rules. If you have Workspace Routing configured to send certain mail through an external smart host, that smart host becomes a new sending source. The Workspace DKIM signature may break if the smart host modifies headers. Add an SPF include: for the smart host, configure DKIM on the smart host, and verify alignment in reports.
  • Gmail vacation auto-replies are sent from Workspace and carry the google DKIM signature like any normal message — but the envelope MAIL FROM is a Workspace-internal bounce domain. SPF alignment may fail for these; rely on DKIM alignment which works correctly.
  • The default google._domainkey selector is the recommended choice, not the only one — the Admin Console lets you enter a different prefix selector when you generate the key. You need a different prefix when the domain already has a DKIM key under the prefix google, for example from another tenant or a relay.

10. Common Google Workspace + DMARC mistakes

  1. Clicking "Start authentication" before DNS propagates. The Admin Console rejects activation with "Authentication unsuccessful" until Google can resolve the published google._domainkey TXT record. Wait 24-48 hours after publication.
  2. Publishing the DKIM key as a CNAME instead of a TXT. Google Workspace's DKIM record is a TXT — unlike Microsoft 365 which uses CNAME delegation. Confirm the record type at your DNS provider.
  3. Forgetting to advance past p=none. The reporting-only phase does NOT stop spoofing. Advance to enforcement after 2-6 weeks of clean reports.
  4. Generating a 1024-bit DKIM key. The Admin Console UI offers 1024 as an option; do not select it unless your DNS host cannot hold a longer record. RFC 8301 (2018) allows 1024 bits only as the minimum and recommends at least 2048.
  5. Two SPF records on the same domain. RFC 7208 §3.2 mandates a single SPF record. Merge multiple records into one with concatenated include: directives.
  6. SPF over 10 DNS lookups. Nested include: chains commonly blow the limit. Use Domain Security Checker to count lookups and flatten or remove unused providers.
  7. Skipping SaaS-sender alignment. The marketing platform that sends from noreply@your-domain.com without DKIM-signing under your domain will fail DMARC even after Workspace is clean. Configure CNAME-delegated DKIM in every SaaS provider's settings.
  8. Publishing DMARC at p=reject without alignment fix-up. The fastest path to a self-inflicted email outage. Always ingest reports at p=none for 2-6 weeks first.
  9. Ignoring Google Postmaster Tools. Postmaster Tools and DMARC reports answer complementary questions: DMARC reports describe inbound spoofing at OTHER receivers, Postmaster Tools describes Workspace's own deliverability and reputation at Gmail. Both are free; set up both.
  10. Treating DMARC as one-time work. New SaaS deployments, partner integrations, and acquired domains constantly surface new senders. Indefinite monitoring is the ongoing cost of DMARC enforcement.

11. Troubleshooting

  • "Authentication unsuccessful" error on Start authentication. Google cannot resolve your published google._domainkey TXT record. Cause: DNS hasn't propagated, the record is published at the wrong host (e.g. at the apex instead of google._domainkey), or the Value field was truncated. Wait, verify with dig +short txt google._domainkey.your-domain.com, and republish if needed.
  • "My Workspace mail goes to spam at Gmail despite DMARC pass". DMARC pass does not guarantee inbox delivery — Gmail's content-based spam filter operates downstream. Check Google Postmaster Tools for the reputation signal and spam-complaint rate. Anything >0.1% in Postmaster Tools is a warning; >0.3% triggers spam-folder delivery regardless of DMARC.
  • "DMARC reports show DKIM pass + SPF pass but DMARC fail". An alignment failure. The SPF-passing domain or DKIM-signing domain does not match the visible From: header. See DMARC alignment explained for the deep dive — the SaaS-sender CNAME delegation pattern is the canonical fix.
  • "My SPF record is failing with permerror". Almost always the 10-DNS-lookup limit. Run Domain Security Checker to see the live count.
  • "DKIM signature fails on some receivers but passes at Gmail". Usually a canonicalization mismatch or a header-modifying intermediate (mailing-list software, security gateway). Inspect the message at the downstream receiver via the Email Header Analyzer.
  • "No DMARC reports arriving". Common causes: the rua= mailbox itself fails DMARC (the records haven't propagated long enough yet, or the mailbox is on a different domain without cross-domain authorisation), the mailbox spam filter is flagging reports as bulk mail, or the report-receiver-side mail-flow is broken. See DMARC aggregate reports deep dive.
  • "How do I see my outbound DKIM signature in Workspace?" Send a test message to a Gmail address you control. Open the message, click the three-dot menu, and choose Show original. The Authentication-Results header shows dkim=pass header.d=your-domain.com when signing is working.

12. Frequently asked questions

How do I set up DMARC for Google Workspace?
Five steps. Publish SPF at the domain apex with include:_spf.google.com. Generate a 2048-bit DKIM key via Admin Console > Apps > Google Workspace > Gmail > Authenticate email and publish the resulting TXT record at google._domainkey. Publish DMARC at _dmarc starting at p=none with a rua= mailbox. Ingest reports for 2-6 weeks to align every legitimate sender. Advance through p=quarantine to p=reject.
What is the Google Workspace SPF include?
include:_spf.google.com. Minimum record: v=spf1 include:_spf.google.com ~all; production: v=spf1 include:_spf.google.com -all. Stay under the 10-DNS-lookup limit when adding third-party senders.
What DKIM selector does Google Workspace use?
google. The TXT record lives at google._domainkey.<your-domain>. A different prefix selector can be entered when the key is generated.
What are Google's Feb 2024 bulk sender requirements?
For domains sending >5000 messages/day to gmail.com or yahoo.com: working SPF + DKIM with at least one of them aligned with From:, DMARC at minimum p=none, RFC 8058 one-click List-Unsubscribe, and spam complaint rate < 0.3% in Postmaster Tools. Failure to comply causes spam-folder delivery or SMTP rejection.
How long does Google Workspace DKIM setup take to propagate?
Typically 24-48 hours, though many DNS providers complete the change in minutes to a few hours. The Admin Console "Start authentication" button refuses to activate until Google can resolve the published key.
Why is my DMARC failing despite SPF and DKIM passing on Google Workspace?
Alignment failure. SPF or DKIM passes on a domain different from your visible From: header — typically a SaaS sender using its own bounce domain. Fix by enabling DKIM with d=your-domain.com in the SaaS provider, most commonly via CNAME-delegated subdomain selectors.
Do I need DMARC if I only use Google Workspace?
Yes. Workspace's outbound authentication does not stop attackers from spoofing your domain at other receivers — DMARC at enforcement is what closes that gap. The Feb 2024 bulk-sender requirements additionally demand DMARC for any high-volume Workspace tenant.
Where do I see DMARC reports for Google Workspace mail?
Receivers (Google, Microsoft, Yahoo, and others) send daily aggregate reports to the rua= mailbox in your DMARC record. DMARC Analyzer ingests these via includes/DmarcParser.php and surfaces the per-sender breakdown. Google Postmaster Tools at postmaster.google.com is a separate sender-side dashboard for outbound reputation at Gmail.

Deploy DMARC for your Google Workspace tenant now

DMARC Analyzer parses the daily aggregate reports Google and other receivers send to your rua= mailbox, deduplicates by report_id + org_name, and surfaces the per-sender / per-IP / per-day breakdown needed to drive the alignment fix-up phase. Live DNS verification for every SPF / DKIM / DMARC record on your domain runs through includes/DnsChecker.php; the Email Header Analyzer at header_analyzer.php diagnoses individual message failures by parsing the full Authentication-Results stack via includes/EmailHeaderParser.php.

Sign up — Free plan Check my Workspace domain