DMARC Subdomain Policy: How the sp= Tag Works
The short answer (what's causing it)
Without a DMARC record of their own, subdomains inherit the organisational domain's policy — or sp= if set. Attackers often spoof made-up subdomains, so sp= matters.
Step-by-step fix
- Check whether each sending subdomain has its own
_dmarcrecord. - Set
sp=rejecton the parent once subdomains are covered. - Give sending subdomains (e.g. mail.example.co.uk) their own record if they need a different policy.
- Scan to verify.
Record examples (replace example.co.uk with your domain)
_dmarc.example.co.uk. TXT "v=DMARC1; p=reject; sp=reject; rua=mailto:[email protected]"
_dmarc.news.example.co.uk. TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Examples are illustrative templates, not values for your domain. Test changes at
p=none/ staging first.
Check yours free in seconds
Run the free 20-check SuperTool on your domain: no signup, no install, public DNS only. Relevant checks: DMARC.
Scan my domain free (20-check SuperTool) → £24 Sovereign DMARC (T0 RUA), SPF, MTA-STS & PHP2Shell Remediation Pack → £5 Website Launch Special Quick-Fix Pack →One-off download via PayPal guest checkout, no subscription. Packs contain DNS/config templates and scripts you run yourself.
Frequently Asked Questions
Does sp= apply to existing subdomains with their own record?
No, their own record wins.
Default if sp is missing?
Subdomains use p=.
Related FaultyPacket guides & tools
Authorised use: only scan domains you own or are authorised to inspect. Results are point-in-time public DNS observations.