The CleanTalk alternative for spam from clean addresses

CleanTalk is very cheap and covers many CMS plugins, using blacklists and bot-behaviour tests. Its weak spot is a first-time human pitch from a clean IP and a valid email. That's the one Doorman is built to read.

Start free

Free for 1,000 checks a month. Paid plans from $12. No card required.

Example: Doorman screening contact form, each judged in under half a second and delivered or kept out with the reason.

Sound familiar?

First-time senders get through

A new agency, a new address, a clean IP: blacklists have nothing to match.

Built around CMS plugins

Custom stacks call its API; the experience is shaped by WordPress, Joomla and Drupal.

Borderline goes one way or the other

There's no hold lane for the messages nobody could call.

Doorman and CleanTalk, side by side

QuestionDoormanCleanTalk
What it checksWhat the submission asks for, against what you sellIP and email blacklists, the message, and bot tests such as submit speed
A first-time human pitchKept out, with the line that gave it awayOften passes: nothing to match on a blacklist
Why something was blockedThe exact sentenceReason codes and a comment, plus dashboard logs
Unsure submissionsHeld and forwarded to youAllowed or blocked
Where it worksAny stack; coding agents set it up (MCP, llms.txt)CMS plugins, plus an API
PriceFree for 1,000 checks a month; Pro $12 for 25,000$12 a year for 1 site, up to $200 a year for 40; $27 a month unlimited

Their plans and behaviour as published on their own sites, checked 29 September 2026. Sources: cleantalk.org/price, cleantalk.org/help/api-check-message.

Which one is right for you?

Choose Doorman if

  • Your spam is human-written pitches from addresses nobody has blacklisted
  • You're on a custom stack, Webflow, Framer or Next.js
  • You want borderline cases held for you
  • You want your coding agent to set it up

Choose CleanTalk if

  • You manage many WordPress, Joomla or Drupal sites and want the cheapest unlimited plugin
  • Blacklist-style bot spam is your main problem
  • You want malware scanning and uptime checks from the same vendor

Switch in two minutes

  • From your server: replace the CleanTalk call with one doorman.check call; act on deliver, hold or drop.
  • Or no code: point the form's action at your Doorman URL and it forwards the real ones to you.
  • Or ask your agent: copy one prompt into Claude Code, Codex or Cursor and it does the swap.
  • Start safely: watch mode delivers everything for a week and tags what it would have dropped.

Read the docs

One call, with the reason
const r = await doorman.check({ form: "f_yourForm", email, name, message });
// r.action: "deliver" | "hold" | "drop"
// r.evidence: "We can fix your local SEO in 30 days, guaranteed."

Checked, not guessed

Every decision comes from Doorman's models reading the submission, in milliseconds, with the reason attached.

13/13agency and SEO pitches dropped in our labelled contact-form set
0genuine enquiries dropped; the unsure ones were held and forwarded to you
162 msmedian to judge a submission, before the thank-you page loads

Labelled test set: 104 invented but labelled contact-form and checkout submissions, judged live; latency is the median of those checks. Questions were not tuned to the set.

Questions

Is Doorman more expensive than CleanTalk?

Per site, CleanTalk is cheaper. Doorman is priced by checks (free for 1,000 a month, $12 for 25,000) and catches the human pitches blacklists miss.

Can I use both?

Yes. Keep CleanTalk's plugin for bots and send submissions to Doorman to read what gets through.

Does Doorman use blacklists?

It uses allow and block lists you set, but it judges each message on what it says, so a new sender isn't a blind spot.

How much does it cost?

Free for 1,000 checks a month. Pro is $12 a month for 25,000 and Business is $49 a month for 250,000. Every plan gets the same models. See pricing.

Try it on your own forms

Free for your first 1,000 checks every month. Start in watch mode and see every call before you trust it.