Email content and spam filters are linked in a way that is easy to misunderstand. Many guides present spam filtering as a list of forbidden words. In practice, filters at large mailbox providers combine many signals: who you are, whether you authenticate, how people treat your mail and what the message looks like. Content matters, but mostly because it affects how recipients react and because certain patterns are common in abuse. This guide separates what content choices really help from the folklore and ends with a checklist you can apply to each send.
What content can and cannot do
Content is one input among several. A sender with authenticated mail, a clean list and low complaints can send a plain promotional message and reach the inbox. A sender with poor reputation can write a perfect message and still land in spam. That is why the first step is always the foundation, not the wording. Check the basics in our guides to authenticating your sending domain and list hygiene, and use the spam troubleshooting checklist if mail is already going to junk.
| Factor | Weight | Notes |
|---|---|---|
| Authentication (SPF, DKIM, DMARC) | High | Required by large providers for bulk senders |
| Sender reputation and complaints | High | Built over time from recipient behaviour |
| Recipient engagement | High | Replies and clicks help; deletion without reading hurts |
| List quality | High | Bounces and spam traps harm reputation |
| Content and structure | Medium | Matters most at the margins and for abuse patterns |
| Individual words | Low | Rarely decisive on their own |
The weights above are our general reading of how providers describe their systems. They do not publish exact formulas, so treat them as guidance and not as measurements.
Subject lines and From names
The subject line and sender name are the first things both a filter and a person see. The aim is to tell the truth about the message.
- Be accurate. A subject that promises something the message does not deliver causes complaints. Fake reply prefixes such as "Re:" on a first message are deceptive and are a bad idea.
- Use a recognisable From name. A name that people know builds trust, and changing it often confuses them.
- Keep it readable. Avoid all capitals, long strings of punctuation and repeated symbols. These look spammy to readers and may be noted by filters.
- Match the content. Send a receipt with a receipt subject, not a promotion with a receipt subject.
- Keep the address stable. Send from an address on your authenticated domain. Do not impersonate other brands.
The truth about spam trigger words
Lists of banned words circulate widely: free, winner, urgent, act now, and so on. There are two honest observations about them. First, no provider publishes a list that decides placement, and modern systems learn from large amounts of data rather than matching fixed words. Second, the reasons these words appear on lists are real: they are common in unwanted mail, so messages that use them badly attract complaints. A legitimate receipt that says "free shipping" is not a problem. A message full of shouting and pressure is, mainly because people dislike it.
A practical rule. Write for the reader. If the wording would feel pushy or misleading to you as a recipient, change it. If it is clear and relevant, a single common word is unlikely to matter.
Building the HTML
Keep the markup clean
- Use well-formed HTML with closed tags and a proper structure. Broken markup can look suspicious and render badly.
- Prefer simple table-based layouts or a tested template. Many mail apps support far less CSS than web browsers.
- Inline critical styles. Some apps strip style blocks.
- Avoid scripts, forms, embedded video and iframes. Most mail apps block them, and filters treat them as risky.
- Keep the file lean. Gmail may clip long messages at roughly 100 KB of HTML and hide the rest behind a link. Make sure that your footer and unsubscribe link do not get cut off.
- Set a clear preheader, the short preview text, so it does not pull in stray text such as navigation labels.
Images
Images make email attractive, but a message that is mostly one picture has problems. Filters cannot read text inside images. Many apps block images by default, so the reader sees a blank space. Screen readers have nothing to speak. Include real text for the main message, use images to support it, set alt text on every image and give images width and height so the layout holds when they are blocked. Host images on a reliable domain you control with HTTPS.
Plain-text part
Send messages as multipart with both HTML and plain text, and make the text version a readable equivalent, not a placeholder. It helps readers who prefer text, aids accessibility, and is expected of well-formed mail.
Links
| Do | Avoid | Why |
|---|---|---|
| Link to your own domain or a branded tracking domain | Public link shorteners | Shared shorteners often carry a poor reputation |
| Make link text match the destination | Showing one address and linking to another | Mismatches look like phishing |
| Use HTTPS links | Plain HTTP and raw IP addresses | Both are common in abuse |
| Keep the number of links sensible | Dozens of links in a short message | Looks like bulk promotion |
| Check that every link works | Redirect chains and dead links | Poor experience and risk |
A branded link domain helps your reputation stay your own. Our guide to custom return-path and tracking domains explains how to set one up.
Attachments
Executables, archives and documents with macros are common ways to spread malware, so providers handle them with suspicion and may block them outright. For routine mail, avoid attaching files. Link to a page or a download instead, and keep any necessary attachment small and in a common format such as PDF.
Unsubscribe and footer
- Include a clear unsubscribe link in marketing mail, and the List-Unsubscribe headers described in our one-click unsubscribe guide.
- State who you are and why the recipient is getting the message.
- Include a physical postal address where the law of your market requires it.
- Keep the footer small and readable. Do not hide the link in tiny grey text.
A worked example: fixing a template that landed in junk
A training business sends a monthly promotion. Complaints creep up and the Gmail placement looks weak. The team reviews the template and finds several issues. The email is one large image with a few words of alt text. The only link is a public shortener. The subject begins with "RE:" although it is a first message. There is no plain-text part, and the unsubscribe link is a pale grey line below a long legal paragraph.
They rebuild the message with real headline and body text, a smaller supporting image with alt text and a button that links to a page on their own domain. They remove the fake prefix and write a subject that names the offer. They add a plain-text part and move a clear unsubscribe link and the standard header into place. The new template is a fraction of the size. Over the next sends the complaint rate drops and replies return. Content was not the only factor, because they also pruned inactive contacts, but the changes removed several signals that readers disliked. The example is illustrative.
Pre-send checklist
- Authentication passes for the sending domain, and the From address is on it.
- The list excludes bounces, complaints and unsubscribes.
- The subject and From name are honest and match the message.
- The HTML is clean, under about 100 KB, and renders in the main mail apps you care about.
- Real text carries the message, and every image has alt text.
- Links use your own domain, match their text and work.
- A plain-text part exists.
- An unsubscribe link and header are present and tested.
- A test message reached real accounts, and the headers show authentication passing. See reading email headers.
Want a second pair of eyes on a template? Send us the message and the symptom, and we will suggest what to check first.
Further reading and sources
Frequently asked questions
Do spam trigger words really matter?
Less than many lists suggest. Modern filters weigh many signals, including sender reputation, authentication, recipient behaviour and content patterns. Individual words rarely decide the outcome on their own, but misleading or pushy language can raise complaints, which does matter.
What is a good image to text ratio?
There is no exact rule that all providers use. A message made of one large image with little text is a risk, because filters cannot read it and it displays poorly when images are blocked. Include real text, and use images to support it.
Should I avoid link shorteners?
Usually, yes. Public shorteners are shared by many senders, including abusive ones, so they can carry a poor reputation. Use full links on your own domain, or a branded tracking domain.
Do I need a plain-text version?
It is good practice to send both HTML and plain text in a multipart message. Some filters treat a missing text part as a negative sign, and some readers prefer plain text.
Can attachments cause spam filtering?
Yes, particularly executable files, archives and macro-enabled documents, which are common in malware. For ordinary mail, link to a download page instead of attaching large or unusual files.
Does using capital letters or exclamation marks hurt delivery?
Excessive use looks like spam to readers, who may complain, and some filters note such patterns. Plain and honest writing is safer and usually performs better with people too.
Why does my email look fine in one app and broken in another?
Mail apps render HTML differently, and many ignore modern web features. Use simple table-based layouts or tested templates, and check the most common apps among your audience.
Does email size matter?
Yes. Large messages load slowly, and some apps clip long HTML. Gmail, for example, clips messages beyond roughly 100 KB of HTML and shows a link to view the rest. Keep markup lean so the footer and unsubscribe link are not hidden.
Will a spam-score tool guarantee inbox placement?
No. Such tools check some content rules and can catch errors, but they cannot see your reputation or how recipients will react. Treat them as a lint check.