The spam-trigger-word list is the most durable myth in email marketing. It made sense in 2004, when filters were largely keyword scoring. It has not described how filtering works for a long time.

What filters actually weigh

Roughly in order of importance:

1. Sender reputation. Your domain and IP history: bounce rates, complaint rates, sending volume and consistency, authentication. This dominates everything else.

2. Recipient engagement. Do people open, reply, move you out of spam? Do they delete without reading, or press the spam button? Engagement history for your domain is heavily weighted, and it is also the reason a message that lands fine for one recipient goes to junk for another.

3. Message structure. Ratio of text to images, number and type of links, HTML complexity, presence of unsubscribe headers.

4. Content patterns. Not single words. Patterns across the whole message that resemble known bulk mail.

5. Individual words. Real, and small enough that it is rarely the reason anything happens.

The practical consequence: a domain with a good reputation sending to engaged recipients can use the word "free" all day. A cold domain sending to a purchased list will be filtered no matter how carefully the copy is sanitised.

The structural signals that do matter

These are worth actual attention.

Image-heavy messages. A cold email that is mostly one big image looks like a newsletter. Cold outreach should be plain text or very close to it.

Too many links. One is fine. Two is usually fine. Five in a short cold email is a pattern.

Link domain mismatch. Anchor text saying yourcompany.com pointing somewhere else is a strong negative signal, and it is exactly what phishing does.

Tracking domains with poor reputation. Shared link-tracking domains inherit the reputation of everyone else using them. If you use click tracking, use a custom tracking domain on your own sending domain.

URL shorteners. Bit.ly-style links in cold email are heavily associated with spam. Do not.

Missing unsubscribe. No List-Unsubscribe header is both a filtering signal and a failure of Google and Yahoo's sender requirements.

Attachments on a first contact. Unexpected attachments from strangers are treated with suspicion by every filter and every recipient.

Excessive formatting. Multiple colours, large fonts, bold everywhere. It reads as a campaign because it is shaped like one.

What about the word lists

Here is the honest position on the classic offenders:

  • "Free" appears constantly in legitimate business email. It is not a trigger on its own.
  • "Guarantee", "risk-free", "act now" are more associated with bulk mail, and in combination with each other, in a message from a domain with no history, they contribute.
  • ALL CAPS and multiple exclamation marks genuinely correlate with spam, though again they are contributors rather than causes.
  • Financial and pharmaceutical terminology carries more weight, for obvious historical reasons.

The pattern is that heavy accumulation matters and individual words do not. An email containing "free", "guarantee", "act now", "limited time" and three exclamation marks, sent from an unauthenticated domain to an unverified list, will be filtered. Removing the words will not save it, because the words were the least of it.

Where to look instead

When mail is not landing, work down this list in order and stop when you find it:

1. Is it actually being filtered? Send to seed addresses at Gmail, Outlook and a business domain and look at where it lands. A lot of "we're in spam" turns out to be low engagement instead.

2. Authentication. SPF, DKIM and DMARC all passing, and aligned with the visible From domain. Send to Gmail, open "Show original", confirm three PASS results.

3. Domain reputation. Google Postmaster Tools for your sending domain. If reputation is low or bad, nothing about your copy will fix it in the short term.

4. Bounce rate. Above 2% is doing active damage. Verify the list and re-verify anything more than a few months old.

5. Complaint rate. Above 0.3% is the number Google and Yahoo act on. This is a relevance problem, not a copy problem.

6. Warm-up. Was the mailbox warmed before it started sending cold, and is warm-up still running?

7. Volume ramp. Did you go from zero to hundreds a day in a week?

8. Message structure. The list above.

9. Individual words. Last, and it will almost never be this.

Most people start at nine. The full sequence is in our deliverability checklist.

What a cold email should look like

If you want to be structurally unremarkable:

  • Plain text, or HTML that looks like plain text
  • Under 150 words
  • One link at most, on your own domain
  • A real signature with a name, company and physical address
  • List-Unsubscribe headers present
  • No images, no attachments, no tracking pixel if you can live without it

That last one is worth considering. Open tracking has been unreliable since Apple Mail Privacy Protection began pre-fetching images, so the pixel now costs you a small structural signal in exchange for a measurement you cannot trust anyway.

The one-line version

If one email in fifty gets filtered, look at the message. If most of your email is getting filtered, the message is not the problem, and rewriting it is how people spend three weeks not fixing their domain.