Why your emails go to spam, and how to fix it

Why your emails go to spam, and how to fix it

If you find your emails going to spam, the cause is usually one of three things: your domain does not prove the mail is really from you (missing or broken SPF, DKIM or DMARC), the sending server or domain has a weak reputation, or recipients do not want the mail and mark it as spam. Start by checking your domain with our free SPF, DKIM and DMARC checker, fix what it reports, then look at your sending server, your content and your list.

This guide explains each cause in plain words, with the DNS records to add and a checklist at the end.

Step 1: check what receivers see

Before changing anything, find out what is actually failing.

  1. Check the domain. Enter your domain, or any email address at it, in the email authentication checker. It reads your SPF, DKIM, DMARC, MX and BIMI records live, gives a score out of 100, and lists what to fix with copy-ready DNS records. If your DKIM key is not found, add your selector (the s= value from a message's DKIM-Signature header); common selectors are tried automatically.
  2. Check a real message. Send an email to a Gmail address, open it, click the three-dot menu and choose Show original. Gmail shows SPF, DKIM and DMARC as PASS or FAIL. A FAIL here points straight at the problem.
  3. Check where it lands. Send to a few different providers (Gmail, Outlook.com, Yahoo) and note which put you in spam.

The main causes of emails going to spam

1. SPF is missing or broken

SPF (Sender Policy Framework) is a DNS TXT record listing the servers allowed to send mail for your domain. A typical record for a domain that uses one email provider looks like this:

example.com.  TXT  "v=spf1 include:_spf.yourprovider.example ~all"

Common mistakes:

  • No SPF record at all.
  • Two SPF records. A domain may have only one record starting with v=spf1. Two cause an error and SPF fails. Merge them into one.
  • More than 10 DNS lookups. RFC 7208 limits each SPF check to 10 lookups from include, a, mx, ptr, exists and redirect, and nested includes count too. Go over it and SPF fails for all your mail. Our checker counts the lookups and maps every include.
  • A sender left out. Your website's contact form, newsletter service or invoicing app sends as your domain but is not listed.
  • +all. This lets anyone send as you. Use ~all (softfail) or -all (fail).

2. DKIM is not turned on

DKIM (DomainKeys Identified Mail) adds a digital signature to every message, so the receiver can confirm it came from your domain and was not changed on the way. Your email provider generates the key; you publish the public part in DNS at selector._domainkey.yourdomain:

selector1._domainkey.example.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

Many providers do not sign with your domain until you switch DKIM on in their admin panel. Gmail asks for keys of at least 1024 bits; 2048-bit keys are the common choice today.

3. No DMARC record, or it does not align

DMARC ties SPF and DKIM to the address people see in the From line. It tells receivers what to do when a message fails (none, quarantine or reject) and where to send reports:

_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:[email protected]"

For DMARC to pass, the domain in the From address must align with the domain that passed SPF or DKIM. A classic failure: a newsletter service sends with its own domain in SPF and DKIM, while your From address is [email protected]. Set up the service's custom domain authentication so it signs as your domain.

Start with p=none, read the reports for a few weeks, fix any real sender that fails, then move to p=quarantine and later p=reject.

4. The sending server has no proper reverse DNS

If you run your own mail server or send from a VPS, the server's IP address needs a PTR record (reverse DNS) that points to a hostname, and that hostname must point back to the same IP. Google and Yahoo both require valid forward and reverse DNS for sending IPs. A missing PTR, or a generic name your ISP assigned, is a common reason for mail from self-hosted servers landing in spam.

Check it with the reverse DNS lookup, which also tests that the name resolves back to the IP. PTR records are set by whoever owns the IP address (your hosting provider or ISP), not at your domain registrar. If you send through Google Workspace, Microsoft 365 or another email service, they handle this for you.

5. Recipients mark your mail as spam

Authentication proves who you are; it does not make people want your mail. Spam complaints hurt your reputation quickly. Google and Yahoo both say to keep the spam rate below 0.3%, and Google recommends staying below 0.1%. You can see your Gmail spam rate in Google Postmaster Tools once your domain is verified there.

Typical reasons for complaints:

  • Mailing people who never signed up, including bought or scraped lists.
  • Mailing an old list that has not heard from you in a long time.
  • A hidden or broken unsubscribe link, so people press "Report spam" instead.
  • Sending much more often than people expected.

6. List hygiene problems

Sending to many addresses that no longer exist (hard bounces) tells providers your list is not maintained. Remove hard bounces after each send, stop mailing people who never open, and use confirmed opt-in (a "click to confirm" email) for new sign-ups.

7. Content that looks like spam

Content matters less than authentication and reputation, but it still counts:

  • Write a clear, honest subject line that matches the message.
  • Avoid messages that are one big image with little text.
  • Avoid link shorteners and links to domains with a bad reputation.
  • Make sure the visible link text matches where the link goes.
  • Include your real business name and a physical or postal address in marketing mail.

Gmail, Yahoo and Outlook sender rules

Since February 2024, Gmail and Yahoo have set clear rules for anyone sending to their users. The table sums up both:

Requirement All senders Bulk senders
SPF or DKIM Required Both SPF and DKIM
DMARC Recommended Required, p=none at minimum, aligned with From
Valid forward and reverse DNS (PTR) Required Required
TLS connection Required by Gmail Required by Gmail
Spam rate Below 0.3% Below 0.3%
One-click unsubscribe Not required Required for marketing and subscribed mail, honoured within 2 days

Google counts you as a bulk sender if you send about 5,000 or more messages a day to personal Gmail accounts; Yahoo does not publish a number. Since May 2025, Microsoft has also required SPF, DKIM and an aligned DMARC record (at least p=none) from domains sending more than 5,000 messages a day to Outlook.com, Hotmail and Live addresses. Even if you send far less, meeting the bulk sender rules is the safest way to keep emails out of spam.

After you change DNS

DNS changes take effect when old cached copies expire, which depends on the record's TTL (often an hour). Use the DNS propagation checker to see whether resolvers around the world have the new record, or the DNS lookup to read any record directly. Then run the domain check again and send a fresh test to Gmail.

Reputation does not reset overnight. After fixing authentication, keep sending wanted mail to engaged people, and inbox placement usually improves over the following weeks.

Quick checklist

  • One SPF record that lists every service sending as your domain, under 10 lookups, ending in ~all or -all.
  • DKIM switched on at every sending service, signing with your domain.
  • A DMARC record with at least p=none and a rua address for reports.
  • From domain aligned with SPF or DKIM.
  • PTR record on your own mail server's IP, matching its hostname.
  • One-click unsubscribe and a visible unsubscribe link in marketing mail.
  • Spam rate under 0.3%, ideally under 0.1%.
  • Bounces removed, old inactive contacts cleaned out, no bought lists.

Running a website as well? Our guide on why Facebook shows the wrong image covers another common "it looks fine to me" problem: link previews.

Frequently asked questions

How do I know if SPF, DKIM and DMARC pass on my emails?

Send a message to a Gmail address, open it, click the three-dot menu and choose Show original. Gmail lists SPF, DKIM and DMARC with PASS or FAIL at the top. You can also check your domain's records with our SPF, DKIM and DMARC checker.

Can I have two SPF records?

No. A domain must have only one SPF record (a TXT record starting with v=spf1). With two, receivers return an error and SPF fails. Merge all your senders into one record.

Is DMARC p=none enough?

For Gmail and Yahoo bulk sender rules, a DMARC record with p=none is the minimum. It only monitors, so spoofed mail is still delivered. Move to quarantine and then reject once all your real senders pass.

Why do my emails go to spam only in Gmail?

Each mailbox provider has its own filters and its own view of your reputation. Check that your mail passes authentication in Show original, watch the spam rate in Google Postmaster Tools, and make sure people on your list expect your mail.

How long until my fixes take effect?

DNS changes usually show up within minutes to a few hours, depending on the record's TTL. Reputation recovers more slowly, as providers see that people open your mail instead of marking it as spam.

Tools in this guide

#email deliverability#spf#dkim#dmarc#spam