SiteVerdict

Home › Guides › SPF, DKIM and DMARC for small businesses: set them up so your emails arrive

SPF, DKIM and DMARC for small businesses: set them up so your emails arrive

Updated 3 November 2026 · By the SiteVerdict team · 9 min read

SPF, DKIM and DMARC are three DNS records that prove your emails really come from your business. SPF lists the services allowed to send for your domain, DKIM adds a digital signature to each message, and DMARC tells receiving mail servers what to do when a message fails those checks. Gmail requires every sender to have at least SPF or DKIM, and bulk senders to Gmail, Yahoo and Outlook.com need all three. Setting them up takes about an hour and mainly involves copying values from your email provider into your domain's DNS settings.

What each record does, in plain English

RecordWhat it saysWhere it livesAnalogy
SPF (Sender Policy Framework)"These servers and services may send email for my domain."One TXT record on your domainA list of staff allowed to post letters for the company
DKIM (DomainKeys Identified Mail)"This message was signed by my domain and has not been changed."A TXT or CNAME record at selector._domainkey.yourdomainA tamper-evident seal on each envelope
DMARC (Domain-based Message Authentication, Reporting and Conformance)"If a message claiming to be from me fails SPF and DKIM, do this, and send me reports."A TXT record at _dmarc.yourdomainInstructions to the post room about suspicious letters

DMARC adds one important idea: alignment. The domain in the visible From address must match the domain that passed SPF or DKIM. Without alignment, a criminal could pass SPF for their own domain while showing your name in the From line. DMARC passes if SPF or DKIM passes in alignment.

The UK's National Cyber Security Centre (NCSC) recommends all three as part of its email security and anti-spoofing guidance.

What Gmail, Yahoo and Microsoft now require

Since February 2024, Google and Yahoo have required senders to authenticate their mail. Microsoft followed for Outlook.com in May 2025. These rules apply to mail sent to personal mailboxes (such as @gmail.com, @yahoo.com, @outlook.com and @hotmail.com), but meeting them also helps with business recipients.

RequirementGmail: all sendersGmail: over 5,000 a dayYahoo: bulk sendersOutlook.com: over 5,000 a day
SPFSPF or DKIMRequiredRequiredRequired (must pass)
DKIMSPF or DKIMRequiredRequiredRequired (must pass)
DMARCNot requiredRequired, p=none allowedRequired, at least p=none, must passRequired, at least p=none
From domain aligned with SPF or DKIMNot requiredRequiredRequired (relaxed alignment is fine)Required
One-click unsubscribe (marketing mail)NoRequired, plus visible linkRequired, honour within 2 daysFunctional unsubscribe link expected
Spam complaint rateBelow 0.3%Below 0.3%Below 0.3%Not specified as a figure
OtherTLS, valid forward and reverse DNS, RFC 5322 formatSameValid forward and reverse DNSValid From and Reply-To addresses, list hygiene

Notes on the table:

The 5,000 figure counts all mail from your domain, including newsletters and automated mail from your website, booking system or shop. A small business can pass it during a busy campaign without noticing.

Before you start: list everything that sends email as you

Make a list of every service that sends email using your domain in the From address. For a small business that is often:

Each one needs to be covered by SPF, DKIM or both. Most services have a help page called something like "authenticate your domain" with the exact records to add.

Step-by-step: Google Workspace

1. SPF

In your domain's DNS settings (at your registrar or DNS host), add or edit the TXT record on the root of your domain. If Google Workspace is your only sender:

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

If you already have an SPF record, add include:_spf.google.com to it. Do not create a second record.

2. DKIM

  1. Sign in to the Google Admin console as a super administrator.
  2. Go to Menu > Apps > Google Workspace > Gmail and click Authenticate email.
  3. Choose your domain and click Generate new record. Choose a 2048-bit key if your DNS host supports it; otherwise 1024-bit. Keep the default prefix (selector) google unless you already use it.
  4. Copy the TXT record name (google._domainkey) and value into your DNS settings.
  5. Return to Authenticate email and click Start authentication. Google says it can take up to 48 hours to start working, and the page may show "You must update the DNS records" in the meantime.

3. DMARC

Add a TXT record with the name _dmarc (so it sits at _dmarc.yourdomain). See the example records below.

Step-by-step: Microsoft 365

1. SPF

Microsoft's documentation gives this record for a domain that only sends from Microsoft 365:

v=spf1 include:spf.protection.outlook.com -all

Microsoft recommends -all (hard fail) because you will also set up DKIM and DMARC. There is no SPF setting inside Microsoft 365; you add the record at your DNS host.

2. DKIM

  1. In the Microsoft Defender portal (security.microsoft.com), go to Email & collaboration > Policies & rules > Threat policies > Email authentication settings, and open the DKIM tab. Or go straight to https://security.microsoft.com/authentication.
  2. Select your custom domain. Microsoft shows two CNAME records to create, with the host names selector1._domainkey and selector2._domainkey.
  3. Copy the exact "points to" values shown for your organisation into your DNS settings. The format has changed over time, so do not copy an example from elsewhere.
  4. Back in the portal, switch DKIM signing on for the domain.

3. DMARC

Add a TXT record at _dmarc.yourdomain, as below. Microsoft also notes that for mail it sends using only your onmicrosoft.com domain, SPF is already set up for you.

Example records

Replace example.co.uk with your domain. These are examples, not values to copy blindly. Your providers' help pages give the exact entries.

TypeName / hostValueWhen
TXT@ (example.co.uk)v=spf1 include:_spf.google.com ~allGoogle Workspace only
TXT@v=spf1 include:spf.protection.outlook.com -allMicrosoft 365 only
TXT@v=spf1 include:_spf.google.com include:[your newsletter provider's include] ~allGoogle plus one other sender
TXT@v=spf1 -allA domain you own but never send email from
TXT_dmarcv=DMARC1; p=none; rua=mailto:dmarc-reports@example.co.ukStart here: monitor only
TXT_dmarcv=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@example.co.ukAfter reports look clean
TXT_dmarcv=DMARC1; p=reject; rua=mailto:dmarc-reports@example.co.ukFull protection

What the DMARC tags mean:

A parked domain that never sends email should have v=spf1 -all and a DMARC record with p=reject, so nobody can use it to impersonate you.

How to check your setup

  1. Send a test email from each service on your list to a personal Gmail address.
  2. In Gmail, open the message, click the three dots and choose Show original. Look for SPF: PASS, DKIM: PASS and DMARC: PASS. Check that the domains shown match your From domain.
  3. Look up your records with a DNS lookup tool, or in a terminal: nslookup -type=txt example.co.uk and nslookup -type=txt _dmarc.example.co.uk.
  4. Read your DMARC reports for two to four weeks before tightening the policy. They show every server sending as your domain, including ones you forgot.
  5. Run a SiteVerdict check. SiteVerdict's email and domain health check reads your SPF, DKIM and DMARC records, flags common problems such as a missing or weak DMARC policy, and checks TLS on your mail setup.

Common mistakes

MistakeWhat happensFix
Two SPF records (two TXT records starting v=spf1)Microsoft's documentation says this causes SPF to return a permanent error, so SPF failsMerge into one record
More than 10 DNS lookups in SPFSPF fails with a permanent error. include, a, mx, exists and redirect each count, plus lookups nested inside includes. ip4, ip6 and all do notRemove services you no longer use; move bulk mail to a subdomain with its own record
Typos such as include=, a space after the colon, or a trailing full stopSPF fails to parseUse the exact syntax: include:domain
Forgetting the website contact form or booking systemThose messages fail DMARC and land in spam, or are rejected once you move to p=rejectAuthenticate each sender, or send form notifications through your main provider
Jumping straight to p=rejectLegitimate mail you did not know about is rejectedStart with p=none and read reports first
DMARC record on the wrong nameReceivers cannot find itHost must be _dmarc, not the root
Staying on p=none for everYour domain can still be spoofed; you only get reportsMove to quarantine and reject once reports are clean
Newsletter tool sends with its own domain in DKIMDKIM passes but is not aligned, so DMARC may failUse the tool's "authenticate your domain" or custom DKIM setting

Moving from p=none to p=reject safely

DMARC only protects your domain once the policy is quarantine or reject. A cautious timetable for a small business:

  1. Weeks 1 to 4: p=none. Collect aggregate reports. For every source sending as your domain, decide: is it yours? If yes, fix its SPF or DKIM so it passes in alignment. If no, it is someone spoofing you, which is exactly what DMARC will stop.
  2. Weeks 5 to 8: p=quarantine. Optionally start with pct=25 and raise it. Watch for complaints that real emails are going to spam.
  3. After that: p=reject. Keep reading reports, because new tools get added and forgotten.

Two things can cause surprises. Forwarding: when a recipient forwards your email automatically, SPF often fails because the forwarding server is not in your record. DKIM usually survives, which is why DKIM matters even if SPF passes. Subdomains: Microsoft notes that each subdomain that sends email needs its own SPF record, while subdomains inherit the parent domain's DMARC policy unless you set one for them. Sending newsletters from a subdomain such as news.example.co.uk keeps their reputation separate from your everyday email.

Why this matters for a small business

Most small businesses do not send 5,000 emails a day, but authentication still matters. Quotes, invoices and booking confirmations that land in spam cost you work. And without DMARC, anyone can send email that appears to come from your domain, including fake invoices to your own customers. Our research on UK small-business websites covers website faults; email authentication is a separate check, and SiteVerdict tests it alongside your website.

Frequently asked questions

Do small businesses need SPF, DKIM and DMARC?

Yes. Gmail requires every sender to have at least SPF or DKIM, and bulk senders need all three. Even if you send only a few emails a day, these records help your quotes and invoices reach the inbox and make it harder for criminals to send email pretending to be you.

What is the 5,000 emails a day rule?

Google and Microsoft both treat domains sending more than about 5,000 messages a day to their personal mailboxes as bulk or high-volume senders. These senders must have SPF, DKIM and DMARC (at least p=none), aligned with the From address. Gmail and Yahoo also require one-click unsubscribe for marketing mail.

Can I have two SPF records?

No. A domain must have only one SPF record. Two records starting v=spf1 cause SPF to fail with a permanent error. Merge them into one record with all the include: entries you need.

What DMARC policy should a small business start with?

Start with p=none and a reporting address, so you can see who sends email as your domain without affecting delivery. Once reports show all your real email passes SPF or DKIM in alignment, move to p=quarantine and then p=reject.

How long do DNS changes for email take?

Often minutes, but allow up to 48 hours. Google says DKIM authentication can take up to 48 hours to start working after you add the record.

What is the SPF 10-lookup limit?

SPF allows at most 10 DNS lookups when a receiver checks your record. Each include:, a, mx, exists and redirect counts, including lookups inside the services you include. Going over causes a permanent error and SPF fails.

How do I check if my SPF, DKIM and DMARC are working?

Send an email to a Gmail address, open it, choose Show original and look for SPF, DKIM and DMARC each showing PASS. You can also look up your TXT records with a DNS lookup tool, or run a SiteVerdict check, which reads your SPF, DKIM and DMARC records and flags common problems.

Sources

SiteVerdict results and these guides are general technical information, not legal advice.

'Not secure' warning on your website: what it means and how to fix it

Why browsers say 'Not secure', how to get a free SSL certificate, and how to force HTTPS on WordPress, Wix, Squarespace, Cloudflare and cPanel hosting.

UK cookie law for small businesses in 2026: PECR, the Data (Use and Access) Act and fines

What PECR requires for cookies in 2026, the new analytics exception in the Data (Use and Access) Act, the £17.5m fine cap and a practical checklist.

Is your website ready for AI search? robots.txt AI crawlers, llms.txt and structured data

Which AI crawlers to allow in robots.txt (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot), what llms.txt really is, and structured data that helps.

Which website builder has the fewest faults? WordPress vs Wix vs Squarespace vs others (our data)

WordPress vs Wix vs Squarespace vs Shopify, Webflow, GoDaddy, Duda and Weebly: fault rates from 32,933 UK and 41,368 US small-business sites, plus fixes.

Missing meta description: why 29% of small business sites have none, and how to fix it in 5 minutes

29.4% of UK small-business sites we checked have no meta description. What Google does with it, examples by trade, and how to add one in every builder.