01 / Guides
Emails going to spam: how to fix it, the short answer
First check whether your domain is authenticated. Send an email to a Gmail address, open it there, click the three dots and choose Show original. At the top you will see three lines: SPF, DKIM and DMARC. If all say PASS, the problem is somewhere else. If any says FAIL or NONE, or a line is missing, you have found the cause.
The fix is then three lines of text in your domain's DNS settings, wherever the domain is registered: GoDaddy, Namecheap, IONOS, Hostinger, Cloudflare and so on. You usually do not need any coding skills, as long as you know exactly what goes in. That is what this guide covers. If mailboxes or a website are moving to a new host at the same time, our overview of server setup for small businesses shows how the pieces fit together.
02 / Guides
Why are my emails going to spam? The usual causes
- No SPF, DKIM or DMARC record: the receiving server cannot check that the email really comes from you
- Two SPF records: adding a second record after a provider change, instead of editing the first, breaks both
- Your website contact form sends as someone else: it sends mail from the web server with the visitor's address as sender, which fails every check
- A new tool nobody added: your newsletter tool, invoicing software or shop sends with your address but is not in SPF and does not sign with DKIM
- Poor IP reputation: on cheap shared hosting you share the server with strangers who send spam. A blocklist lookup shows it
- Complaints and bulk sending: lots of marketing mail without an unsubscribe link, or frequent spam reports, costs you trust with Gmail and Outlook
- Content: one big image and no text, link shorteners, attachments with macros. Rarely the main cause, but it adds up
03 / Guides
Step 1: check what the recipient sees
- 01
Send a test to Gmail
Send a normal email from your mailbox to a personal Gmail address. If your contact form is affected too, submit a form enquiry to that address as well.
- 02
Show original
Open the email in Gmail, click the three dots at the top right and choose Show original. You see SPF, DKIM and DMARC, each with PASS or FAIL and the domain that was checked.
- 03
Read the header in Outlook
Open the message in Outlook, then File, Properties, Internet headers. Look for Authentication-Results: it shows spf=, dkim= and dmarc= with the result.
- 04
Look up your DNS records
A DNS lookup tool such as the Check MX tool in the Google Admin Toolbox or MXToolbox shows which SPF, DKIM and DMARC records your domain publishes.
- 05
Check blocklists
Check your mail server's IP address and your domain against common blocklists such as Spamhaus. A listing explains sudden trouble despite correct records.
04 / Guides
Step 2: create and check your SPF record
SPF (Sender Policy Framework) is a TXT record on your domain that lists the servers allowed to send email in your name. Every service that sends with your address must be in it. Each provider documents the include value to add in its help pages.
Important: a domain may have only one SPF record. New services go into the existing record. An SPF record may also trigger no more than 10 DNS lookups when it is checked. Every include, a and mx counts, and so do nested includes. Add five services and you can easily go over the limit, at which point SPF fails.
05 / Guides
Example SPF records
Replace yourcompany.com with your domain. In the Name or Host field, many DNS panels use @ for the domain itself.
| Case | Type and name | Value |
|---|---|---|
| Google Workspace | TXT, @ | v=spf1 include:_spf.google.com ~all |
| Microsoft 365 | TXT, @ | v=spf1 include:spf.protection.outlook.com -all |
| Google Workspace plus a newsletter tool | TXT, @ | v=spf1 include:_spf.google.com include:VALUE-FROM-THE-TOOL ~all |
| A domain that never sends email | TXT, @ | v=spf1 -all |
About the ending: ~all (soft fail) means other servers are suspicious, -all (fail) means other servers are not allowed. Both are fine once DMARC is in place. Never use +all, which allows every server in the world to send as you.
07 / Guides
Step 3: set up DKIM
DKIM (DomainKeys Identified Mail) signs every outgoing message with a private key. You publish the matching public key in DNS under a name like selector._domainkey.yourcompany.com. The key is always generated by your email provider; you only copy it into your DNS settings.
Google Workspace: in the Admin console go to Apps, Google Workspace, Gmail, Authenticate email, and generate a 2048-bit key. Google suggests the selector google. Add the TXT record it shows under google._domainkey, then click Start authentication in the Admin console.
Microsoft 365: in the Microsoft Defender portal go to Email & collaboration, Policies & rules, Threat policies, Email authentication settings, open the DKIM tab and select your domain. Microsoft shows two CNAME records for selector1._domainkey and selector2._domainkey. Add both, wait a few minutes, then enable DKIM.
Hosting providers: with most hosts DKIM is switched on in the email or domain settings of your account. If the domain is managed by the same company, it often adds the record itself; if not, you copy it across by hand. Newsletter tools have their own DKIM records on top.
08 / Guides
Step 4: set up DMARC for your domain
DMARC ties SPF and DKIM to the From address the recipient actually sees. A message passes DMARC when SPF or DKIM passes and the checked domain matches the domain in the From line. That match is called alignment, and it is exactly where contact forms and tools fail when they sign with their own domain instead of yours.
The DMARC record is a TXT record named _dmarc. Always start with the policy p=none. It does not change delivery, but it sends you daily reports showing which servers send in your name and whether they pass. Once every legitimate sender passes, usually after two to four weeks, move to quarantine and later to reject.
09 / Guides
Example DMARC records
| Stage | Type and name | Value |
|---|---|---|
| Start: monitor only | TXT, _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourcompany.com |
| Send suspicious mail to spam | TXT, _dmarc | v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@yourcompany.com |
| Full protection | TXT, _dmarc | v=DMARC1; p=reject; rua=mailto:dmarc@yourcompany.com |
Reports arrive as XML files in zipped attachments, often several a day. Create a separate address for them and use a DMARC reporting service that turns them into something readable. Many have a free tier for small domains.
11 / Guides
The Google and Yahoo sender rules since 2024 (and Microsoft since 2025)
In February 2024 Google and Yahoo introduced binding rules for senders. Google counts you as a bulk sender once you send close to 5,000 or more messages to personal Gmail accounts in one day, and that status is permanent. Since 5 May 2025 Microsoft has required the same from senders of more than 5,000 messages a day to Outlook.com, Hotmail and Live.com.
| Requirement | All senders | Bulk senders |
|---|---|---|
| SPF or DKIM | Required (at least one) | Both required |
| DMARC record | Recommended | Required, p=none is enough |
| From domain aligned with SPF or DKIM | Recommended | Required |
| Valid reverse DNS (PTR) for the sending IP | Required | Required |
| Encrypted connection (TLS) | Required | Required |
| Spam complaint rate in Google Postmaster Tools | below 0.3 %, aim for below 0.1 % | below 0.3 %, aim for below 0.1 % |
| One-click unsubscribe (List-Unsubscribe) in marketing email | Not required | Required, honour requests within 2 days |
12 / Guides
Special case: your website contact form
Many WordPress sites send form emails through the web server's PHP mail function, and many forms put the visitor's address in the From field. To Gmail that looks like a forged message: the web server is not in the SPF record of the visitor's domain, and DMARC fails. The enquiry lands in spam or disappears.
The fix: the sender is always an address on your own domain, such as forms@yourcompany.com, and the visitor's address goes into Reply-To. Mail goes out over SMTP with a login at your email provider, in WordPress for example with a plugin such as WP Mail SMTP or FluentSMTP. From then on the message passes SPF, DKIM and DMARC like any email from your mailbox. It is worth checking if your website gets few enquiries, alongside the basics in our SEO guide for small businesses: sometimes the enquiries come in and quietly land in spam. We write our own sites by hand, without WordPress, and when we build one as part of our web design work, the form sends this way from day one.
13 / Guides
If only your own inbox sends mail to junk
Many searches for emails going to spam are really about the searcher's own inbox: Outlook or Gmail filters out mail they want. In that case, mark the message as Not junk or Not spam and add the sender to your safe senders list, and check your own filter rules. Your DNS records play no part in that; they only affect mail you send.
FAQ
Common questions
01Why are my emails suddenly going to spam when they used to arrive?
Usually something changed: a new service sends with your address, the SPF record was duplicated during a provider change, your server's IP landed on a blocklist, or the receivers tightened their rules, as Google and Yahoo did in 2024 and Microsoft in 2025.
02How long do SPF, DKIM and DMARC take to work?
New DNS records are often visible within minutes, though depending on the TTL it can take up to 24 or 48 hours. Your domain's reputation then recovers over days to weeks, depending on how much mail was rejected before.
03Does a small business really need DMARC?
Yes. DMARC is mandatory for bulk senders at Gmail and Yahoo, and small senders get more reliable delivery with it too. A strict DMARC policy also stops fraudsters sending fake invoices or phishing from your domain.
04Can I have more than one SPF record?
No. If two TXT records start with v=spf1, SPF fails for the whole domain. Add new services to the one existing record with include, and watch the limit of 10 DNS lookups.
05What is the difference between ~all and -all?
~all (soft fail) marks mail from unlisted servers as suspicious, -all (fail) declares it not allowed. With DMARC in place, the DMARC policy decides what happens. Both are common; +all is always wrong.
06Will SPF, DKIM and DMARC stop all my emails going to spam?
They are the precondition, not a guarantee. You also need a clean sending IP, few spam complaints, an unsubscribe link in newsletters, and content that does not look like unsolicited advertising.