Those 1,749 messages came from accounts our network had already flagged, across 129 different chats, in less than half an hour. They are the easy half of the problem — we know who those accounts are. The hard half is the message that looks completely normal until you notice it's the fourth identical one this hour from a fourth week-old account.
Picking an anti-spam bot for Telegram — or a moderation bot, the two labels get used for the same thing — is mostly a question of which half you're fighting.
Three kinds of spam, and they don't die the same way
Text spam is the obvious one: referral links, crypto promos, "earn from home", the same paragraph pasted into forty groups. It has visible features — a link, a word, a phone number — so a content rule catches it.
Account spam has no text at all. Fifty throwaway accounts join in ninety seconds, sit there, and inflate your member count. Some of them will eventually post; many never will, because inflating the count was the job. No word filter can flag an account that hasn't said anything.
Returning abusers are the ones that cost people money. Aged account, real profile photo, plausible username, banned from eleven other channels last month. It clears a captcha without breaking a sweat and posts something bland for a week before it does what it came for.
What the free moderation bots actually cover
Worth saying plainly, because a lot of comparison pages won't: if your problem is one person pasting referral links, a free bot solves it and you should keep your money.
- Telegram's own antispam. Supergroups from 200 members get an aggressive filter toggle in admin settings. One switch, no configuration, and it does produce false positives on real people — but it costs nothing and it should be on.
- Rose, Combot, GroupHelp. Word filters, link filters, warn / mute / ban, welcome messages, flood limits on messages per second. Mature, well documented, free at the tier most groups need.
- Self-hosted, like umputun/tg-spam on GitHub. If you're comfortable with a VPS and a config file, these are genuinely good. They cost nothing but your evenings, and you own the rules completely.
All of them share the same shape: a message arrives, a rule reads it, the bot acts. That loop is the right answer to text spam and the wrong answer to the other two kinds.
A content filter can only judge what an account already said. Half of Telegram spam is decided before anyone types a word.
The three gaps
Joins. An anti-flood rule counting messages per second does nothing about accounts joining per second. A link-spam run that arrives as twenty accounts in one minute needs to be stopped at the door, not at the keyboard.
Comments. This one catches out more channel owners than anything else on this page. Comments under channel posts don't live in the channel — Telegram puts them in a separate linked discussion group with its own members and its own admin list. Add your bot to the channel and it will never see a single comment. That's why 561 of those 1,749 flagged messages were sitting in comment threads: the bots that were supposed to catch them weren't in the room.
History. A bot that only sees your group knows nothing about a sender who spent last week getting banned everywhere else. That information exists, but only if something is watching more than one chat.
How TGuard's anti-spam rules work
TGuard reads every message in a protected chat and in its comment threads, and checks it against rules you set on a settings page for that specific chat. Three rule types are live:
- Stop words, matched as a substring or as a whole word — your choice per word. Whole-word keeps "cast" from firing on "podcast"; substring catches the deliberately mangled spellings people use to slip past simple filters.
- A link filter covering
http://, bare domains, andt.me/telegra.phlinks. It ships off, because plenty of healthy chats run on people sharing links. - The known-abuser rule. An account banned across five or more channels in the network is flagged, and its message is spam regardless of what it says. This is the layer a single-group bot structurally cannot have.
Every rule carries its own action — record it, delete the message, or delete and ban the sender. New rules start in record-only mode deliberately. Watch what a rule would have deleted for a day before you let it delete anything, because the fastest way to kill a healthy group is one careless stop word firing on ordinary conversation. There's also a hard ceiling on how often a single rule can fire in one chat: exceed it and the rule pauses itself and logs a warning rather than clearing the room while you're asleep.
Underneath, the same account layer as always — captcha at entry, join-rate limits for raids, and the shared ban history behind the abuser rule. Content rules and account rules answer different questions, and you want both asked.
Setting it up
- Add @channel_guardian_bot to your group as an admin with delete and ban rights.
- Protecting comments? Add it to the linked discussion group, not just the channel — they're two different chats.
- Turn on Spam Protection and open the settings page for that chat.
- Add your stop words and decide on the link rule. Leave everything on record-only.
- Come back tomorrow, read what it caught, and promote the rules you trust to delete or ban.
Most groups need step 5 more than they expect. The list you write on day one is never the list you keep — real chats have their own vocabulary, and the only way to find out which words are dangerous is to watch the log before you arm anything. If you're weighing this against a general group management bot, the split is simple: they own welcome messages and scheduled posts, we own spam and the accounts behind it.
Frequently Asked Questions
A bot added to a group as an admin that reads incoming messages and applies rules to them: stop words, link filters, flood limits, and in some cases a check on who the sender is. When a rule fires the bot deletes the message, mutes the sender or bans the account, depending on how you configured that rule.
Yes, for text spam. Rose, Combot and GroupHelp all filter words and links for free, and Telegram's own aggressive antispam toggle works in supergroups from 200 members. Where free options stop is the account layer: they can't act on a burst of accounts joining, and they have no history on a sender who was banned in ten other channels last week.
Only if you add it to the linked discussion group. Comments under channel posts don't live in the channel — they live in a separate chat that Telegram links to it. A bot added to the channel alone never sees a single comment, which is why comment spam so often survives on channels that consider themselves protected.