Why Your Cold Emails Are Landing in the Spam Folder

    Spam placement gets decided before anyone reads a word of your message. Here are the six causes, ordered by how often they turn out to be the real one.

    Artem Smirnov
    Artem Smirnov
    LinkedIn · 6 min read
    Artem Smirnov in a dark suit against a charcoal studio backdrop, next to the line 'Spam is not bad luck. It is a setup problem.'

    Want more B2B clients for your business?

    We help B2B companies fill their calendar with 10 to 100+ qualified sales calls per month. No paid ads.

    It usually arrives as a screenshot. Sent: 4,000. Replies: 2. Then the question, which barely changes from one company to the next: what is wrong with the email?

    Almost nothing, usually. If your messages are going to spam, the words are the last place to look. Placement gets decided before a human being reads a sentence, by your list, your domain, your authentication records and how the sending was set up in the first place. Copy cannot fix a bad list or a weak sender. No subject line has ever rescued a domain that Gmail has quietly stopped trusting.

    Below are the six causes, in the order I check them. Every deliverability rescue I have been part of started in the first two.

    Before anything else, work out which problem you have

    Three different failures produce the same screenshot, and they need opposite fixes.

    The message never arrived at all. That is a bounce, and it shows in your sending logs.

    The message arrived and went to spam. You cannot see this from your dashboard. You find it by putting seed addresses of your own into the list: one Gmail, one Outlook, one on a normal company domain, and then opening all three by hand after the batch goes out.

    The message arrived in the inbox and nobody cared. That is a list or an offer problem, and nothing in this post will help you.

    Do the seed test first. Plenty of the people who tell me they are in spam are sitting in the inbox being ignored, which is a different problem and a harder one.

    Cause one: your list is telling the provider you do not know these people

    This is the most common cause by a distance, and the one people least want to hear.

    Every address that hard bounces is a signal that you collected this list carelessly. Providers read it exactly that way, and nobody is looking at one bad send in isolation. They are looking at the pattern across a week.

    The published ceilings, and what actually causes a bounce, are in what counts as a good bounce rate. My own working standard sits under all of them, and it is mine rather than an industry rule: below 0.5 percent, every campaign, no exceptions.

    The fix is dull. Verify every address immediately before the send, not on the day the list was built. A list verified six weeks ago is not a verified list. People change jobs, companies fold, aliases get turned off.

    One vendor guide on list cleaning, citing a database decay study, puts the rot at 20 to 30 percent of a list per year, and that company sells verification, so read the number as directional. The direction is the point: your spreadsheet is going off while it sits there.

    Then strip the role addresses and the catch-all domains: info@ and sales@ on one side, and on the other the domains that accept any address you throw at them, so a verification tool cannot tell you anything useful. Those two categories produce most of the damage that survives a clean verification report.

    If you bought the list from somebody cheap, stop reading and go look at the spreadsheet. It is the campaign.

    Cause two: the domain was never authenticated

    Set up SPF, DKIM and DMARC before any volume goes out. This stopped being optional a while ago.

    Gmail has since stopped being gentle about it. Non-compliant bulk mail gets rejected outright with a 550 error instead of being deferred or quietly filed in spam, which at least has the virtue of being visible in your logs.

    The fix takes an afternoon. Publish all three records for every sending domain, then verify them on a real message you actually sent, not in your DNS panel. A record that exists and a record that passes are different things, and only the second one counts. Do it for every sending domain you own, including the ones you are not using this month.

    Cause three: the domain is new and you sent like it was old

    A domain with no history has no reputation, good or bad. You build it by sending small volumes of mail that get opened and replied to, for weeks, before the campaign starts.

    People skip this because it is two weeks or more of doing nothing visible. Then they turn on 40 mailboxes at once and wonder why week one looked fine and week three collapsed. Reputation damage is slow to appear and slow to undo, which is the worst combination there is.

    If you are already burned, the honest answer is that a badly damaged domain is usually cheaper to replace than to rehabilitate. Park it, stop sending from it, and start again properly on new domains.

    Cause four: every message you send is identical

    Same body, same links, same signature, same sending rhythm, thousands of times. Filters are looking for exactly that shape.

    The fix is variation that does not damage the writing. Different openings and closings across the batch. Fewer links, and none of them a shortener. No images and no tracking pixel in a first cold message. Pacing spread across the day instead of a thousand messages hitting the wire in six minutes.

    While we are here: I turn open tracking off in cold campaigns. It inserts a pixel and a redirect that cost you placement, in exchange for a number that was never reliable enough to make decisions on.

    Cause five: people are marking you as spam

    Complaints are the one cause where the message genuinely matters, and even then the root is your targeting.

    As of September 2026, the bulk sender rules put the complaint ceiling at 0.3%, with 0.1% as the practical target. Run that against a real campaign. Send 4,000 messages and twelve people hitting the button puts you at the ceiling. Twelve. That is not a statistical event, it is a Tuesday, if you are writing to people who have no business receiving your email.

    Nobody reports a relevant message. They ignore it, or they reply, or they delete it. The complaint button gets pressed by people who feel scraped. So the fix lives in the list again: tighter targeting, a reason for the message to exist, and a working way out for anyone who wants it.

    Cause six: the plumbing around the message

    Last, because it is the least common and the easiest to check.

    A tracking domain shared with hundreds of other senders, a link shortener, a signature stuffed with images and social icons, or a sending tool nobody has looked at since it was configured. Each of these can hurt placement on its own. Together they finish the job.

    Send yourself a message through the actual campaign tool and read the raw source. Whatever you find in there that you did not deliberately put there, remove it.

    The twenty minute version

    Run this in order, and stop at the first thing that is wrong.

    1. Seed addresses on Gmail and Outlook, one batch, opened by hand.
    2. Bounce rate from the last send. Anything above 0.5% and you stop here.
    3. SPF, DKIM and DMARC checked against a message you actually sent.
    4. Age of the domain, and whether it was warmed. Under ten days of warm-up and you have found your problem.
    5. Complaint rate, against 0.1% rather than 0.3%.
    6. Raw source of one sent message, read line by line.

    Most campaigns fail on step two or step three, and both of those were decided weeks before anyone opened a blank document.

    The good news is buried in that. Fix the list, the records, the warm-up and the pattern, and if the replies still do not come, you finally have a copy problem. Those are the cheap ones.

    Want to get more B2B clients for your business?

    I help B2B companies book 10 to 100+ qualified sales calls per month with outbound. Let's see if it fits yours.

    Artem Smirnov
    Artem Smirnov

    I help B2B companies book qualified sales calls with cold email and LinkedIn outbound.

    Artem Smirnov

    Smirnov Consulting Group

    LinkedIn Growth and B2B Lead Generation agency in Prague

    contact@smirnovartem.com

    © 2026 Smirnov Consulting Group s.r.o.

    IČO 27377059

    Pobřežní 249/46, Karlín, 186 00 Praha, Česká Republika

    All Rights Reserved

    Smirnov Consulting Group is a Prague-based B2B outbound lead generation and LinkedIn growth agency. For B2B companies, we run LinkedIn and cold email campaigns that book qualified sales calls. For experts, founders and speakers, we build the LinkedIn positioning, profile, content and outreach that bring clients and opportunities. We work with clients in the USA, Canada, the UK, Germany, Switzerland, the UAE, Singapore, Australia and many others. Our outbound clients include construction, civil engineering, industrial and manufacturing companies, marketing, advertising and SEO agencies, software and IT firms, consultants, financial advisory firms and SaaS companies. Founder Artem Smirnov shares real campaigns, open numbers and screenshots with 56,000+ followers on LinkedIn, one of the largest audiences in B2B outbound. 12 years in outbound, 500+ B2B companies, 24 countries.