Why your cold email lands in spam
It is almost never the words. Six things decide whether your email arrives, and five of them are about you rather than the message.

People who ask why their cold email went to spam usually start by rewriting the subject line. The receiving provider had often made its decision before anyone read a word of it.
A receiving provider decides where to put your message using evidence about you: whether the mail is authenticated, what your domain has done before, and how the people who got your last emails behaved. The content is a small input, and the folklore about trigger words is left over from filters that stopped mattering fifteen years ago. Removing the word "free" from an email sent by a domain with no history changes nothing.
Here is what actually decides it, roughly in order of how much damage each one does.
Your domain is new and you started at volume
A domain that has never sent anything and then sends five hundred emails on a Tuesday looks exactly like a domain bought that morning for spam, because that is very often what it is. Providers have no history to weigh, so they treat the absence of history as risk.
The fix is slow and cannot be rushed: start at a handful a day and roughly double every few days, pausing whenever bounces or complaints move. Three to six weeks to reach a normal outreach volume is the honest number. Sending more does not shorten it, and sending too much lengthens it.
You are not authenticated properly
SPF, DKIM and DMARC are three DNS records that let a receiver check the mail really came from your domain. Most people set up one or two and stop.
That does not work. SPF alone breaks on any forwarded message and says nothing about the From address a person actually reads, which is the field that gets spoofed. DKIM proves the message was authorised but tells receivers nothing about what to do with failures. DMARC is what makes the other two enforceable, and since 2024 Google and Yahoo require it on any domain sending meaningful volume.
If you set DMARC today, start at p=none and read the reports for a few weeks before enforcing. Almost every organisation discovers a legitimate sender it had forgotten about, such as a billing system or help desk, that is not covered by its setup. Going straight to p=reject means silently destroying your own mail.
You are mailing addresses that do not exist
Bounces are the fastest way to damage a domain, and every one is avoidable. Whether an address can receive mail is knowable in advance, and mailing a list you have not checked is precisely what a bought list looks like from the receiving side.
Keep bounces under 2%, and under 1% if you can. Verification costs a fraction of a cent per address. Inbox placement costs weeks to get back.
People are marking you as spam
Complaints are weighted heavily and the threshold is lower than most people expect: past roughly 0.3%, Gmail starts filtering most of what you send. One campaign to a stale or poorly targeted list can do months of damage.
The counterintuitive part is that making it easier to unsubscribe protects you. Someone who cannot find the exit uses the spam button instead, and those two actions do very different amounts of harm.
Nobody is replying
Engagement is a positive signal, and replies count for more than opens because they are harder to fake. This is why a low reply rate and a deliverability problem are usually the same underlying fact seen from two sides: mail nobody answers looks like mail nobody wanted.
It is also why sending more of a message that is not working makes things worse rather than better. The number to manage is replies per thousand sent, and it moves on relevance and timing, not on volume.
You are sending from the domain your business runs on
Outreach carries a risk of complaints that ordinary business mail does not, and a damaged domain affects everything sent from it: invoices, password resets, replies to customers. A separate subdomain contains that risk. The cost is that it starts with no reputation and has to be warmed, which is the trade worth making.
The uncomfortable summary
Five of the six are about your sending setup and your targeting. One is about the message. If you have a deliverability problem, the hour you were going to spend rewriting copy is better spent on your DMARC record and your list.
And if your reply rate is under about 2%, the problem is not the wording either. It is that you are writing to people who have no reason to care this week.