Deliverability

How to Set Up Google Workspace SPF, DKIM, and DMARC Without Breaking Your Deliverability

The exact records, the right order, and the seven mistakes that silently kill inbox placement.

By Alex Berman - - 12 min read

Why Most Google Workspace Auth Setups Are Half-Finished

Every guide I've reviewed walks you through adding three DNS records and calls it done. Setup is complete only when all three records are verified, sequenced correctly, and tested under real sending conditions. Setting up Google Workspace SPF, DKIM, and DMARC incorrectly is worse than setting them up partially - because everything looks fine on the surface while your emails route silently to spam.

This guide covers the exact records, the correct sequence, and the timing rules Google mandates. The seven mistakes that show up over and over in real sending operations get their own treatment. If you follow these steps in order, your authentication will hold. Skip one, and you will spend days troubleshooting a deliverability problem that has a 10-minute fix.

What SPF, DKIM, and DMARC Do

These three protocols work as a unit. Think of them as three separate ID checks your email passes through before it hits an inbox.

SPF (Sender Policy Framework) answers one question: did this email come from a server your domain authorized? It works by checking the sending IP address against a list you publish in DNS. If Google Workspace servers are not on that list, the receiving server flags the message.

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every outgoing email. The receiving server uses a public key published in your DNS to verify the signature. If the email was altered in transit, the signature fails. If the signing domain does not match your From address, alignment fails. That distinction matters more than most people realize.

DMARC (Domain-based Message Authentication, Reporting, and Conformance) sits on top of SPF and DKIM and tells receiving servers what to do when a message fails both checks. Do nothing, send it to spam, or reject it entirely. DMARC also sends you aggregate reports showing every source that claims to send email from your domain - which is how you find out about misconfigured third-party tools before they tank your reputation.

None of these three protocols works in isolation. SPF alone can be spoofed. DKIM alone does not tell the receiver what to do with failures. DMARC without SPF or DKIM has nothing to verify. The only setup that protects your domain and your deliverability is all three, configured correctly, in the right order.

Step 1 - Set Up SPF for Google Workspace

SPF is a DNS TXT record on your domain. If you send email exclusively through Google Workspace, the record is this:

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

That single include covers all of Google's sending infrastructure. Google's include uses 4 of your 10 allowed DNS lookups - which leaves room for other tools but not unlimited room.

If you also send through other platforms like HubSpot, Apollo, Instantly, or SendGrid, add each one before the terminating ~all tag:

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

Two rules that trip up my setups every time.

One SPF record per domain. No exceptions. If you already have an SPF record and you add a second one instead of editing the existing one, both records fail. It is not additive. Two SPF records on the same domain produce a permerror - a hard authentication failure. Check for an existing TXT record starting with v=spf1 before you do anything.

Hit 11 lookups and your entire SPF record is ignored. Every include tag triggers additional DNS lookups. Hit 11 or more and your entire SPF record is ignored - even if every include is technically valid. Each marketing tool or email platform you add costs lookups. If you run HubSpot, Apollo, Mailchimp, SendGrid, and Google Workspace, you may already be close to the ceiling. Use an SPF lookup counter tool to verify before you publish.

Find Your Next Customers

Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.

Try ScraperCity Free

After you publish the record, allow up to 48 hours for SPF to start working. DNS propagation is not instant.

Step 2 - Set Up DKIM for Google Workspace

DKIM is the one step that requires you to work inside the Google Admin Console, not just your DNS provider.

Here is the sequence. Go to Apps, then Google Workspace, then Gmail, then Authenticate Email in the Google Admin Console. Select your domain and click Generate New Record. Choose a 2048-bit key - this is stronger than 1024-bit and is the current recommended minimum. Copy the TXT record name and value Google gives you. Go to your DNS provider and add it as a TXT record at the host google._domainkey.yourdomain.com. Wait up to 1 hour for DNS propagation. Then return to the Google Admin Console and click Start Authentication.

That last step is where a lot of setups stall. Publishing the DNS record alone does nothing. You must go back to the Admin Console and click Start Authentication after the record propagates. If you skip this step, DKIM signing never activates and your emails go out unsigned.

The other silent failure worth knowing: DKIM alignment. Your DKIM signing domain must match your From address domain. If you use a sequencing tool that signs with its own domain instead of yours, your emails will pass the DKIM check but fail DMARC alignment. This is the single most common reason teams see DKIM pass in email headers but still fail DMARC. Check which domain is doing the signing - yours or the tool's.

Step 3 - Set Up DMARC in the Right Order

DMARC is set entirely in DNS. You do not need to touch the Google Admin Console for this step. Add a TXT record at _dmarc.yourdomain.com.

The critical timing rule: DKIM and SPF must both be authenticating messages for at least 48 hours before you turn on DMARC. Google is explicit about this. Enable DMARC before that window closes and messages from your domain will have delivery issues.

Start with a monitoring-only policy:

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

The p=none policy does not block or quarantine anything. It only collects reports. Run it for 2 to 4 weeks. During that time, the aggregate reports sent to your RUA address will show you every source sending email from your domain - including sources you forgot about, like old CRM integrations, transactional email services, or tools a previous employee set up.

Once your reports show all legitimate senders passing authentication, switch to quarantine with a partial rollout:

v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@yourdomain.com

The pct=25 tag applies the quarantine policy to 25% of failing mail. Ramp it up to 50, then 75, then 100 over a few weeks while watching reports for any legitimate senders that start failing. When you hit 100% with no failures from legitimate senders, move to full enforcement:

v=DMARC1; p=reject; rua=mailto:postmaster@yourdomain.com; pct=100; adkim=s; aspf=s

The adkim=s and aspf=s tags set strict alignment - the From domain must exactly match the DKIM signing domain and the SPF envelope domain. Strict is more secure. For cold email operations using multiple sending domains, relaxed alignment using r instead of s gives more flexibility with subdomains.

One Google-specific note: Gmail does not support the ruf forensic reports tag. You can include it, but Gmail ignores it. Do not rely on forensic reports if your primary concern is Google inbox placement.

The Seven Mistakes That Break Google Workspace Authentication

These are the failure modes from real operator setups and practitioners running hundreds of domains.

Mistake 1 - Two SPF records on the same domain. Happens when a new tool tells you to just add this TXT record and you have one already. Fatal. Merge them into one record, not two.

Want 1-on-1 Marketing Guidance?

Work directly with operators who have built and sold multiple businesses.

Learn About Galadon Gold

Mistake 2 - SPF lookup overflow. Add HubSpot, Mailchimp, SendGrid, and Instantly on top of Google and you are at the limit before you realize it. Every include counts. Flatten your record using an SPF flattening service if you need more than four or five includes.

Mistake 3 - Skipping the 48-hour wait before enabling DMARC. This is not a soft recommendation. Google's official documentation states clearly that skipping this step causes delivery issues. Set a calendar reminder and wait the full window.

Mistake 4 - Starting DMARC at p=reject. Tempting if you want maximum security from day one. But until you have confirmed every legitimate sender is passing authentication, p=reject will block your own mail. Start at p=none. Always.

Mistake 5 - DKIM published but not activated. You added the DNS record. That alone does nothing. You must return to Google Admin Console and click Start Authentication. This step is skipped constantly and produces zero error messages to tell you something is wrong.

Mistake 6 - Third-party senders not included in SPF or DKIM. If Instantly, Apollo, or any CRM sends email on your domain's behalf and they are not in your SPF record - and not configured with their own DKIM aligned to your domain - those sends will fail authentication. Check every tool that touches your domain's outbound mail.

Mistake 7 - Sending cold email from your primary domain. Authentication setup is only one layer. Sending cold outreach from your main business domain risks reputation damage that affects your entire company's email. Operators running cold email at any real volume use secondary sending domains - variations of the main domain - and set up complete authentication on each one separately. Each domain needs its own SPF record, its own DKIM key generated in the Admin Console, and its own DMARC record.

What the Infrastructure Looks Like at Scale

Authentication is the foundation. Here is what the deliverability picture looks like for Google Workspace cold senders who get the infrastructure right.

The practitioner consensus on sending volume is consistent: 15 emails per inbox per day is the safe ceiling for Google Workspace. The 500 per day Google technically permits is not the target. One operator who documented over 1 million emails sent kept it at 15 per inbox per day and saw domains stay alive for 9 to 10 months. Those who pushed 30 to 50 per inbox burned through domains faster and rotated more often. Above 15 per day, Google Workspace accounts can trigger invisible internal rate limits - emails still show as sent inside your sequencing platform but route silently to spam.

The sweet spot for mailboxes per domain is 2 to 3. Warmup takes 14 to 21 days minimum. Plain text outperforms HTML for cold email. Tracking pixels quietly hurt deliverability. Bounce rate needs to stay under 2% - ideally under 1.4%.

One agency documented what happened when they paired proper authentication with clean list verification. Bounce rate dropped from 35% to under 4%. Pipeline went from $100,000 to $300,000 per week. The auth setup did not do that alone - but it was the necessary foundation. You cannot build volume on a broken base.

Instantly's cold email benchmark puts the average reply rate at 3.43% across billions of sends. That number requires full authentication compliance, spam rates under 0.3%, and bounce rates under 2% as the baseline. Anyone claiming 10 to 15% averages across full campaigns is picking their best sequences. The 3.43% is the realistic cross-campaign number when infrastructure is right.

One practitioner running that kind of volume noted something worth repeating: by the time they were running 1,200 inboxes across 310 different domains, every single domain had SPF, DKIM, and DMARC properly set up before one real email went out. Since Google tightened bulk sender requirements, you cannot skip this and expect a campaign to survive. Emails just die in silence and you never know why.

Find Your Next Customers

Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.

Try ScraperCity Free

If you need to build targeted lead lists to feed those sending domains, Try ScraperCity free - it lets you search millions of B2B contacts by title, industry, location, and company size, with built-in email verification so your bounce rate stays in check from the start.

The Enforcement Gap I See Every Week

According to the EasyDMARC DMARC Adoption and Enforcement Report, which analyzed 1.8 million of the world's top domains, valid DMARC records now cover 937,931 domains - but over 525,000 of those remain at p=none. That is the monitoring-only policy that provides zero protection against spoofing and sends no enforcement signal to receiving servers.

Red Sift's analysis of 73.3 million domains found that just 2.5% enforce p=reject. The vast majority of domains with DMARC are still in monitoring mode - collecting data they may never act on.

From a deliverability standpoint, p=none is appropriate during your setup window. But staying there long-term means you are giving Google no signal that you take your domain seriously. Google's Postmaster Tools now shows binary compliance status. Non-compliant senders saw inbox placement declines after Gmail moved to active SMTP-level rejection of non-compliant email.

Microsoft followed with the same requirements for Outlook.com, Hotmail, and Live.com. The rejection code for non-compliance is 550; 5.7.515. The 5,000 per day threshold for required DMARC applies to sends reaching personal Gmail addresses - not Google Workspace business inboxes. Reputation matters regardless of volume, and Google's filters evaluate your domain on every send.

SMTP Error Codes You Need to Know

When authentication breaks, your sequencing tool will show bounces or errors. These are the codes that tell you exactly what failed.

Error 4.7.27 is an SPF failure. The 4xx code means temporary - the receiving server will retry. Check your SPF record for lookup overflow or missing includes.

Error 4.7.30 is a DKIM failure. Also temporary. Check that DKIM is activated in the Admin Console and that the signing domain matches your From address.

Error 5.7.26 is an alignment rejection. The 5xx code means permanent - that email is not getting delivered. The From domain does not match the authenticated domain. This is the alignment failure that shows up when your sending tool signs with its own domain instead of yours.

Error 550; 5.7.515 is Microsoft's auth rejection. Missing SPF, DKIM, or DMARC on a domain sending to Outlook.com, Hotmail, or Live.com inboxes.

How to Verify Everything Is Working

After setup, send a test email to a Gmail address and open the original message headers. In Gmail, click the three-dot menu on the message and choose Show Original. Look for these three lines near the top of the authentication results section.

You want to see spf=pass, dkim=pass, and dmarc=pass. If you see dkim=pass but dmarc=fail, the signing domain does not match your From address. That is the alignment problem. Fix it by configuring your sending tool to sign with your domain's DKIM key, not the tool's own key.

Google Postmaster Tools shows domain reputation and authentication status for your sending domains. Add every sending domain you operate. The data takes a few days to populate after you start sending, but it is the most reliable ongoing signal for whether your setup is holding up at scale.

Check your DMARC aggregate reports every week for the first month. They arrive as XML files. Use any free DMARC report parser to turn them into readable tables. The reports show which IPs are sending email from your domain, which ones are passing, and which are failing. This is how you catch misconfigured tools before they hurt your reputation.

The Full Setup Sequence in Order

Follow this order and you will not run into the timing problems that I see break setup after setup.

First, publish your SPF record in DNS. Second, generate the DKIM key in Google Admin Console. Third, publish the DKIM TXT record in DNS. Fourth, wait 1 hour, then click Start Authentication in Google Admin Console. Fifth, wait 48 hours. Sixth, publish DMARC at p=none with an RUA address. Seventh, monitor for 2 to 4 weeks. Eighth, move to p=quarantine with pct=25. Ninth, ramp pct to 100 over 4 to 8 weeks. Tenth, move to p=reject once reports show consistent alignment across all senders.

Do this for every domain you send from. Not just your primary domain. Every secondary domain used for cold outreach needs the full stack - separate SPF record, separate DKIM key generated in the Admin Console, separate DMARC record. There are no shortcuts at any real sending volume.

Your DNS Records Reference

Copy these directly and replace yourdomain.com with your actual domain.

SPF for Google Workspace only:

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

SPF with additional tools:

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

DKIM record host: google._domainkey.yourdomain.com

DKIM record value: Generated in Google Admin Console. Starts with v=DKIM1; k=rsa; p= followed by a long key string.

DMARC monitoring record:

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

DMARC enforcement record:

v=DMARC1; p=reject; rua=mailto:postmaster@yourdomain.com; pct=100; adkim=s; aspf=s

Find Your Next Customers

Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.

Try ScraperCity Free

Frequently Asked Questions

What is the correct SPF record for Google Workspace?

If you send email only through Google Workspace, use: v=spf1 include:_spf.google.com ~all. If you also use other tools like HubSpot or SendGrid, add each one before the ~all tag. Never create two SPF records on the same domain - merge everything into one record or both will fail.

Do I need to set up DMARC inside the Google Admin Console?

No. DMARC is set entirely in your DNS provider, not in the Google Admin Console. Add a TXT record at _dmarc.yourdomain.com. The Google Admin Console is only needed for DKIM setup - specifically to generate the key and to activate signing after you publish the DNS record.

Why does my DKIM pass but DMARC still fail?

This is an alignment failure. DMARC requires the DKIM signing domain to match your From address domain. If a sending tool signs with its own domain instead of yours, DKIM passes its own check but fails DMARC alignment. Configure your sending tool to use your domain's DKIM key, not the tool's built-in key.

How long should I wait before moving from p=none to p=reject?

Run p=none for at least 2 to 4 weeks while reading your aggregate DMARC reports. Then move to p=quarantine with pct=25 and ramp up over another 4 to 8 weeks. Only move to p=reject when reports consistently show all legitimate senders passing authentication. The full process typically takes 2 to 4 months for organizations using multiple sending tools.

Does the Google bulk sender requirement apply to B2B cold email?

The 5,000 per day threshold for required DMARC applies specifically to sends reaching personal Gmail.com addresses, not Google Workspace business inboxes. But domain reputation still matters regardless of volume. Authentication protects deliverability for all senders, and Google's filters evaluate your domain on every send whether you hit the threshold or not.

How many emails per day can I safely send per Google Workspace inbox?

Google technically permits up to 500 per day, but practitioners running cold email at scale keep it at 15 per inbox per day. Above that threshold, accounts can trigger invisible internal rate limits where emails show as sent in your sequencing tool but route silently to spam. At 15 per day, domains reliably stay healthy for 9 to 10 months before rotation.

What happens if I have more than 10 DNS lookups in my SPF record?

Your entire SPF record returns a permerror and is ignored. This is not a soft fail - it is a hard authentication failure. Each include tag costs at least one lookup. Google's include:_spf.google.com alone uses 4 lookups. If you use multiple email tools, count your lookups and use SPF flattening if you are approaching the limit.

Want 1-on-1 Marketing Guidance?

Work directly with operators who have built and sold multiple businesses.

Learn About Galadon Gold