Email Authentication Missing — SPF, DKIM, or DMARC Not Set

Only 18% of the top 10 million domains publish a valid DMARC record, and just 4% enforce a reject policy (Valimail, 2024). Fully authenticated senders are 2.7x more likely to reach the inbox than unauthenticated ones. Meanwhile, an estimated 3.4 billion phishing emails are sent daily, with domain spoofing as the primary vector. Without SPF, DKIM, and DMARC, anyone can send emails that appear to come from your domain.

Start here

Before You Fix It: What This Check Means

SPF, DKIM, and DMARC alignment underpins modern sender trust and spoof-resistance. In plain terms, this checks whether your domain has the main DNS records needed for sender trust and anti-spoofing. Scavo derives your registrable domain and looks up.

Why this matters in practice: operational drift here often causes hard-to-debug regressions across environments.

How to use this result: treat this as directional evidence, not final truth. This result reflects what was observable at scan time and should be verified in your own production context. First, confirm the issue in live output: verify directly in live production output with browser/network tools Then ship one controlled change: Keep SPF minimal and accurate (avoid uncontrolled include sprawl). Finally, re-scan the same URL to confirm the result improves.

TL;DR: Your domain lacks email authentication records, allowing anyone to spoof emails from your domain and reducing your deliverability.

Only 18% of the top 10 million domains publish a valid DMARC record, and just 4% enforce a reject policy (Valimail, 2024). Fully authenticated senders are 2.7x more likely to reach the inbox than unauthenticated ones. Meanwhile, an estimated 3.4 billion phishing emails are sent daily, with domain spoofing as the primary vector. Without SPF, DKIM, and DMARC, anyone can send emails that appear to come from your domain.

What Scavo checks (plain English)

Scavo derives your registrable domain and looks up:

  • SPF TXT record (v=spf1)
  • DMARC TXT record at _dmarc.<domain> (v=DMARC1)
  • sampled DKIM selectors (selector._domainkey.<domain>) via TXT/CNAME hints

Current logic:

  • Fail: both SPF and DMARC missing
  • Pass: SPF + DMARC present, DMARC policy is enforcing (quarantine or reject), and at least one sampled DKIM selector is found
  • Warning: partial posture (for example DMARC p=none, missing sampled DKIM, or one record missing)
  • Info/Warning: runtime/domain lookup constraints block reliable evaluation

Important: DKIM selector detection is sample-based. Valid custom selectors may exist even when sample list misses them.

How Scavo scores this check

Scavo assigns one result state for this check on the tested page:

  • Pass: baseline signals for this check were found.
  • Warning: partial coverage or risk signals were found and should be reviewed.
  • Fail: required signals were missing or risky behavior was confirmed.
  • Info: Scavo could not gather enough reliable evidence on this run to score pass/fail confidently.

In your scan report, this appears under What failed / What needs attention / What is working for email_trust, followed by Recommended next steps and Technical evidence (for developers) when needed.

  • Scan key: email_trust
  • Category: TECHNICAL

Why fixing this matters

Weak sender auth increases spoofing risk and can hurt deliverability of critical emails (password reset, billing, onboarding).

For SaaS teams, this can directly impact account recovery success and customer trust.

If you are not technical

  1. Ask your DNS/email admin for current SPF, DKIM, and DMARC records.
  2. Confirm DMARC policy stage (none vs enforcing).
  3. Ask whether all sending services are included in SPF/DKIM setup.
  4. Re-run Scavo after DNS propagation.

Technical handoff message

Copy and share this with your developer.

Scavo flagged Email trust (SPF, DKIM, DMARC) (email_trust). Please verify SPF and DMARC on the root domain, confirm DMARC policy intent, and ensure DKIM selector coverage (including custom selectors). Share DNS evidence and re-run Scavo.

If you are technical

  1. Keep SPF minimal and accurate (avoid uncontrolled include sprawl).
  2. Enable DKIM signing for every active sender platform.
  3. Progress DMARC from monitoring (none) to enforcement when aligned.
  4. Add custom DKIM selectors to configuration so Scavo can detect them.
  5. Monitor DMARC aggregate reports for alignment issues.

How to verify

  • Query TXT for root and _dmarc records.
  • Validate active DKIM selector endpoints used by each ESP/tool.
  • Confirm DMARC policy and alignment outcomes match intent.
  • Re-run Scavo and verify posture improvement.

What this scan cannot confirm

  • It does not guarantee mailbox placement outcomes by itself.
  • It may miss valid DKIM selectors outside sampled names.
  • It does not replace full sender reputation and abuse monitoring.

Owner checklist

  • [ ] Assign one owner for domain sender-auth posture.
  • [ ] Keep sender inventory and SPF/DKIM mapping current.
  • [ ] Review DMARC policy quarterly.
  • [ ] Re-audit after adding/changing ESP or transactional provider.

FAQ

Why is DMARC p=none a warning?

Because it monitors but does not enforce reject/quarantine actions against spoofed mail.

Can we pass with custom DKIM selectors?

Yes, but if selectors are non-standard, add them to configured sample list so detection is accurate.

Why can this fail even if some records exist?

A strong pass requires complete posture: SPF, DKIM signal, and enforcing DMARC policy.

How long until fixes appear?

Usually after DNS propagation and resolver cache expiry.

Sources


Need a clean sender-auth inventory template for all your providers? Send support your ESP stack.

More checks in this area

redirect_chain_hygiene

Redirect Chain Too Long — Multiple Hops Before the Real Page Loads

Learn how Scavo measures redirect hops, why chains slow users and crawlers down, and how to flatten protocol, host, and legacy URL redirects into cleaner routes.

Open guide
not_found_status

404 Page Returns Wrong HTTP Status Code

When a deleted or broken URL returns HTTP 200, search engines index it as a real page — polluting your index with dead content and wasting crawl budget. This is called a "soft 404" and Google specifically warns against it. Your 404 page should return a proper 404 status code while still showing a helpful message to users.

Open guide
analytics_instrumentation

Analytics Not Installed or Not Firing

Without analytics, every business decision about your website becomes a guess. You can't see which pages convert, where users drop off, which channels drive traffic, or whether changes improve performance. This is the foundation of data-driven optimization — if it's missing, you're flying blind.

Open guide