Suped

Why is Google Postmaster Tools showing SPF misalignment despite passing DMARC for subdomain, and how to fix DMARC for root domain?

Published 18 Jul 2025
Updated 6 Oct 2026
13 min read
Summarize with
Google Postmaster Tools SPF misalignment and DMARC root domain fix
Updated on 6 Oct 2026: We clarified SPF alignment fixes, root-domain DNS checks, and Google Postmaster Tools reporting.
Google Postmaster Tools can show SPF misalignment while DMARC still passes because DMARC does not require SPF and DKIM to both match the visible From domain. DMARC passes when either SPF passes with an aligned envelope domain or DKIM passes with an aligned signing domain. A common cause is SPF authenticating a vendor bounce domain while DKIM authenticates the sending subdomain used in the visible From address. Confirm those domains in a received message rather than assuming this is the cause.
The root-domain fix is separate because Google's Compliance status dashboard reports status for the primary domain and includes traffic sent by its subdomains. If the subdomain has working DMARC but the organizational domain does not, publish a valid TXT DMARC record at _dmarc for the root domain. Make sure the TXT lookup returns a valid DMARC policy rather than only an unrelated wildcard or web-hosting CNAME. Confirm the result with message headers and aggregate reports. Suped's DMARC monitoring turns those reports into source-level authentication results and fix steps.
  1. Direct answer: SPF can pass authentication and still be misaligned for DMARC when the Return-Path domain belongs to the sending platform.
  2. Deliverability risk: If DKIM passes with domain alignment, SPF misalignment alone does not fail DMARC. Check any separate SPF authentication failure because Gmail bulk senders need both SPF and DKIM.
  3. Root-domain risk: A missing or broken root DMARC record creates a compliance gap and should be fixed by the DNS owner.
  4. Vendor ask: Ask the sending platform to confirm the Return-Path, DKIM signing domain, visible From domain, and whether a custom bounce domain is available for SPF alignment.

Why SPF can be misaligned while DMARC passes

The key point is that SPF and DMARC evaluate different identifiers. SPF checks whether the sending IP is allowed by the envelope sender domain, also called MAIL FROM or Return-Path. DMARC checks whether an authenticated SPF or DKIM domain meets the alignment rules for the visible From domain that recipients see. Those domains are often different when a marketing platform sends mail on your behalf.
A third-party sending setup, for example, can send a message with a visible From address at a branded subdomain while the Return-Path points at an ExactTarget bounce domain. SPF can pass for the bounce domain, but that SPF result does not count toward DMARC for the branded From domain. If DKIM signs with the branded subdomain and passes, DMARC still passes.
SPF view
  1. Checked domain: SPF checks the envelope sender, not the visible From address.
  2. Common result: The vendor bounce domain passes SPF when its SPF policy authorizes the sending IP.
  3. DMARC effect: That SPF result does not help DMARC when the domains lack alignment.
DMARC view
  1. Checked domain: DMARC compares authenticated domains with the visible From domain.
  2. Passing path: A DKIM pass with domain alignment is enough for DMARC success.
  3. Bad sign: DMARC fails when neither SPF nor DKIM produces an aligned authenticated domain.
In Gmail, open the message menu and select "Show original". Compare smtp.mailfrom, header.d, header.from, and the final DMARC result in the Authentication-Results header added by Gmail. Under relaxed alignment, the authenticated domain and visible From domain must share an organizational domain. Strict alignment requires an exact domain match. Forwarding can break SPF authentication or change the envelope sender; DKIM can still pass if the signed content is unchanged.
Example authentication result
Authentication-Results: mx.google.com; spf=pass smtp.mailfrom=bounce.s7.exacttarget.com; dkim=pass header.d=email.example.com; dmarc=pass header.from=email.example.com

How to fix SPF alignment with a custom Return-Path

To make SPF contribute to DMARC, configure a custom Return-Path, also called a custom MAIL FROM or bounce domain, in the sending platform. Adding a vendor include to the root SPF record does not change the MAIL FROM domain or repair a vendor-domain mismatch.
  1. Choose the domain: Use a dedicated bounce subdomain under the same organizational domain as the visible From address when relaxed SPF alignment is appropriate.
  2. Configure the sender: Enable the custom MAIL FROM in the platform and publish its required DNS records. Follow its instructions for MX and SPF records or a CNAME.
  3. Check SPF: SPF is evaluated for the MAIL FROM domain and is not inherited from the root. Publish only one SPF policy at the evaluated name and stay within the ten-term DNS lookup limit, including nested includes.
  4. Retest: Send a new message after DNS changes take effect. Confirm spf=pass and that smtp.mailfrom now meets the applicable DMARC alignment rules.
For a visible From domain of email.example.com, a Return-Path at bounce.email.example.com meets relaxed aspf=r alignment but fails strict aspf=s alignment. Strict SPF alignment needs the exact From domain. If the sender cannot provide a suitable custom Return-Path, keep DKIM passing with domain alignment; DMARC still has a passing path. The SPF specification defines SPF record selection and lookup limits.

Why Google reports the root-domain warning

Google Postmaster Tools' Compliance status dashboard applies to primary domains, not separate subdomain views. It uses mail sent by subdomains when calculating the primary-domain status. A sending subdomain can therefore pass message-level DMARC while the dashboard still shows that the primary domain has no valid DMARC record or DNS returns another record at that name.
Postmaster data is aggregated and not real time. Google says dashboard data typically updates within 24 hours, but it can take longer; allow up to seven days for Compliance status changes. The dashboards use different datasets. These timing and scope details are documented in Google's dashboard documentation.
In Authentication, check which view is selected. "View by From header domain" evaluates traffic for the visible From domain. "View by DKIM and SPF domains" groups results by authentication domain and does not show a DMARC success rate. Compare the same view and date range when diagnosing a mismatch. Data covers personal Gmail accounts; low sending volume can leave a dashboard blank.

Signal

Meaning

Action

Lower SPF rate
Domain mismatch, forwarding, or SPF/DNS failures
Check the selected view and message headers
DKIM pass
Signing domain authenticated
Confirm alignment
DMARC pass
One aligned path worked
Verify aggregate reports
CNAME at _dmarc
An alias, not proof that DMARC is absent
Follow the alias and verify the final TXT policy
Compact interpretation of common Google Postmaster Tools signals
A low SPF rate alongside a high DMARC rate can reflect DKIM providing the passing DMARC path. It does not prove that every sending source is configured correctly. Under Google's sender requirements, direct bulk mail needs both SPF and DKIM authentication, with at least one authenticated domain meeting DMARC alignment requirements. Publishing p=none meets the DMARC policy requirement; quarantine or reject is not required for Gmail compliance.
Google Postmaster Tools showing SPF warning with DKIM and DMARC passing
Google Postmaster Tools showing SPF warning with DKIM and DMARC passing

Fix the root domain DMARC record

For the root domain, the DNS name must be _dmarc followed by the organizational domain. If the organizational domain is example.com, the DMARC host is _dmarc.example.com. The lookup must return one valid DMARC TXT policy. Edit an existing policy rather than adding a second record beginning with v=DMARC1. An intentional CNAME to a hosted DMARC policy can work if its target returns the correct TXT record. Some DNS panels append the zone name automatically, so enter only _dmarc when the provider expects a relative host name.
Start with a monitoring policy if the root domain has not been through a full authentication review. Use p=none, send aggregate reports to a dedicated mailbox or reporting platform, then review legitimate sources before enforcement. If the reporting address uses a different domain, that destination domain must publish the required external-report authorization record. Validate the syntax with the DMARC checker after DNS publishes.
Root domain DMARC starter record
Host: _dmarc.example.com Type: TXT Value: v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com; adkim=r; aspf=r
Do not let wildcard DNS hide DMARC
If a TXT lookup for _dmarc returns a CNAME to a web host, follow the alias and check for a valid DMARC TXT policy at its target. If none is returned, create an explicit _dmarc TXT record to override a wildcard. Replace an exact CNAME only when it is the incorrect web-hosting alias. A CNAME and TXT record cannot coexist at the same owner name.
Problem lookup
;; ANSWER SECTION: _dmarc.example.com. 300 IN CNAME wp.wpenginepowered.com.
The example shows an alias to a web-hosting target, not the complete TXT lookup result. Check the target before changing DNS. With DNS CNAME resolution the lookup continues at the alias target; an intentional alias that returns a valid DMARC policy does not need replacement.

DMARC checker

Look up a domain's DMARC record and catch policy issues.

?/7tests passed

How root and subdomain DMARC policies interact

A DMARC record published directly on the visible From subdomain takes precedence for that subdomain. If no valid record exists there, receivers discover a parent policy. Publishing a root record therefore does not replace a working subdomain record. It covers the organizational domain and supplies policy for subdomains that do not have their own record. A subdomain with its own record also needs its own rua setting to request aggregate reports; the root record's reporting address does not automatically carry over.
  1. Direct subdomain record: The record at _dmarc.email.example.com controls mail with email.example.com in the visible From domain.
  2. Parent discovery: When no direct record exists, the receiver looks up the DNS tree for an applicable DMARC policy.
  3. Subdomain policy: The sp tag sets the requested policy for existing subdomains using the organizational-domain policy. Without sp, p applies unless an applicable np policy overrides it.
  4. Google compliance: The root record still matters because Compliance status reports against the primary domain.
RFC 9989 is the current DMARC protocol standard. It replaced Public Suffix List policy discovery with a DNS Tree Walk and made pct historic. It introduced t=y test mode, which requests one step less enforcement for quarantine or reject and has no effect on p=none. Google's setup documentation still describes pct; do not assume every receiver implements the new test tag. A p=none starter record needs neither tag.

What to ask Salesforce Marketing Cloud to confirm

Salesforce Marketing Cloud Engagement manages the sending-domain configuration for Sender Authentication Package (SAP) and Private Domain setups. DNS can be self-hosted or delegated to Salesforce, so confirm who publishes the DKIM, bounce-domain, and DMARC records. Delegating a sending subdomain does not give Salesforce control of the organizational domain's DMARC record.
Ask for evidence, not a general pass or fail statement. A useful response includes a recent message header and identifies the visible From domain, DKIM signing domain, Return-Path domain, DKIM result, SPF result, and DMARC result. If DKIM passes with alignment to the branded From subdomain, the DMARC path works even when SPF is not the aligned path. Salesforce documents this option in its bulk-sender authentication addendum.
  1. Header proof: Ask them to provide a full Authentication-Results header for a recent Gmail-delivered message.
  2. DKIM domain: Confirm the DKIM d= domain shares the visible From organizational domain under relaxed alignment, or matches it exactly under strict alignment.
  3. Bounce domain: Confirm the actual Return-Path and whether it uses the SAP domain or the From domain. When a Private Domain uses a different organizational domain from SAP, ask Salesforce Support about Multi-Bounce Domain support for SPF alignment.
  4. Root DNS: Tell them root-domain DMARC is owned by your DNS team unless SFMC has explicit DNS delegation.
Escalate to the sender
  1. DKIM failure: DKIM fails or its signing domain does not meet the applicable alignment rules.
  2. Wrong From: Messages use a visible From domain that was not part of the setup.
  3. Bad private domain: The platform cannot show a clean DKIM and DMARC pass in real headers.
Fix your DNS
  1. Missing root: The organizational domain has no DMARC TXT record.
  2. Wildcard catch: A wildcard directs the DMARC lookup to web hosting without a valid policy at the target.
  3. Policy staging: The root domain needs monitoring before quarantine or reject.

How to verify the fix

Verify the fix in two layers. First, check DNS and send a new message from each legitimate sending source to a personal Gmail account, then read the received headers. Second, monitor aggregate DMARC reports over several days. Postmaster Tools typically updates within 24 hours, but it can take longer; Compliance status changes can take up to seven days.
Suped's DMARC monitoring groups aggregate reports by sending source so you can check SPF and DKIM alignment results and track remaining authentication failures. Suped's Hosted DMARC lets the DNS owner publish a hosted-policy CNAME and manage later policy changes in Suped. This is an intentional DNS alias to a DMARC policy, so keep it when its target returns the correct TXT record.
Issue steps to fix dialog showing the issue overview, tailored fix steps, and verification action
Issue steps to fix dialog showing the issue overview, tailored fix steps, and verification action
After publishing the root record, confirm that reports arrive for each policy's configured reporting address and legitimate sources pass DMARC. Investigate unknown sources and forwarding before treating all failures as sender configuration errors. Recheck Google's primary-domain status after fresh traffic enters its rolling window. Fix a failing legitimate source directly instead of weakening policy for every sender.
DMARC rollout stages
Use report evidence to decide when the root-domain policy is ready for the next stage.
Monitor
p=none
Collect reports and identify every legitimate sender.
Quarantine policy
p=quarantine
Request spam-folder handling for DMARC failures after legitimate traffic passes.
Reject policy
p=reject
Request rejection for DMARC failures; receivers retain final handling decisions.

Choose alignment modes before enforcement

For a domain that is still being audited, start with relaxed SPF and DKIM alignment unless strict alignment has a documented operational reason. Relaxed alignment accepts authenticated subdomains under the same organizational domain, which is usually what marketing and transactional mail need.
Suped's DMARC record generator can build a starter record with reporting addresses and policy options. Compare it with the existing policy before handing a DNS change to IT so an established quarantine or reject policy is not reset to monitoring.
What good looks like
A healthy setup has a valid root-domain DMARC policy, SPF and DKIM authentication for every legitimate bulk-mail source, at least one passing path with domain alignment, and aggregate reports flowing into a monitored system. SPF alignment adds a second DMARC path when DKIM already provides one, but a DMARC pass does not guarantee inbox placement.

Views from the trenches

Best practices
Verify Header From, Return-Path, DKIM d=, and DMARC result in the same email message.
Publish a root-domain DMARC TXT record before escalating vendor-specific SPF warnings.
Use aggregate reports to confirm every legitimate source before tightening DMARC policy.
Common pitfalls
Counting a vendor-domain SPF pass as DMARC success without checking From-domain alignment.
Leaving _dmarc on a wildcard web-hosting alias whose target has no valid DMARC TXT policy.
Asking SFMC to fix a root DNS record that only the domain owner can publish correctly.
Expert tips
Start with p=none on the root, then use report data before moving enforcement forward.
Keep relaxed alignment unless strict alignment has a clear operational reason documented.
Track Postmaster signals against real headers because compliance status can lag seven days.

Expert view

SPF can pass authentication while failing domain matching; a passing DKIM result with domain alignment can still satisfy DMARC.
2024-04-08 - Email Geeks

Marketer view

A root domain without DMARC can explain compliance warnings even when the subdomain passes.
2024-04-08 - Email Geeks

Frequently asked questions

DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing