A crypto link lands in your group. You delete it and ban the account. Four minutes later the same link is back, from a different name — a profile created last Tuesday with no photo and no history. Then a third. This is the part most admins discover the hard way: you're not dealing with one spammer, you're dealing with a list.
What spam links in a Telegram group actually are
Someone searching spam links telegram group has almost always just been hit. The links are the visible part — fake airdrops, "earn $300 a day", phishing pages dressed up as Telegram Premium, adult bait. The mechanism behind them is what matters.
Roughly nine times out of ten the link doesn't come from a real member who got compromised. It comes from a disposable account — created or bought in bulk, joined for the sole purpose of posting once and moving on. The same account is hitting your group and forty others on a schedule. That single fact decides how you fight it: you're not moderating a person, you're filtering a supply of accounts.
Worth separating from a related problem: if your issue is hundreds of bots silently joining through your public invite link rather than posting URLs, that's an invite-link flood, and it's handled differently — see Telegram group security: invite-link bot floods. This page is about links showing up as messages in the chat.
Why Telegram's built-in tools don't hold
Telegram gives you three blunt instruments, and each one breaks against a real campaign.
- Disable links in Group Permissions. It works, in the sense that nobody can post a URL anymore — including your actual members sharing something useful. And spammers route around it with
@usernamementions,t.medeep links, or a URL split across a line with the word "dot". - Native Aggressive Anti-Spam. Available for supergroups over 200 members. You can't see how it decides, you can't tune it, and it has a habit of eating messages from genuine members while a determined operator with aged accounts slips through.
- Delete and ban by hand. Fine for one stray spammer. Useless when 30 accounts post the same link inside five minutes — by the time you've banned the third, the tenth is already up.
The t.me and @mention workaround
Turn links off and the next batch stops posting https:// URLs entirely. They post t.me/joinchat deep links and bare @username mentions instead — Telegram treats those as native navigation, not as "links" the permission covers. A keyword filter watching for http sees nothing go by. That's why t.me spam links keep landing in groups that already switched link-posting off: the group blocked one format, the run switched to the next.
Filtering by account sidesteps the whole format game. An account that never cleared the captcha can't post a URL, a t.me link, an @mention, or anything else — it isn't in the chat to post at all. You stop guessing which string the spammer tries next week.
The fix is the account, not the message
Here's the honest version most "10 ways to stop spam" posts skip: deleting the message is treating the symptom. Every link that lands in your chat was posted by an account that was allowed to be there and allowed to send. Take away either permission and the link never appears in the first place.
And the accounts that post link spam are not subtle. They share a signature: joined minutes ago, empty profile, first-ever message contains a URL, and — the giveaway — they arrive in a cluster with a dozen siblings. You don't need to read the message to know what it is. You can tell from how the account got in.
A link-spam run is 20–50 throwaway accounts hitting your group in a few minutes. Block them at the door and there's no message left to delete.
How TGuard stops it
TGuard works at the account layer, not the message layer. It never reads what your members write — it watches who gets in and how fast. Three things do the work:
A captcha at the entrance. Every new member has to pass a challenge before they can post. A bought account running through an automation script doesn't solve it and never reaches the chat. That alone removes the cheapest tier of link spam.
A join-rate limit on bursts. Link-spam batches join the way they post — all at once. TGuard lets you set a threshold (say, more than 10 joins in 30 seconds) and acts on the whole burst automatically, ban or kick, your choice. The coordinated run that would have dropped twenty links gets cleared before the first one posts. This is the same mechanism that stops raids.
Cleanup for what's already inside. If the spammers got in before you set this up, TGuard scans the member list and removes the bot accounts in bulk, so you're not banning them one message at a time.
The trade-off worth stating plainly: because TGuard acts on accounts and not content, it won't catch a link posted by one of your genuine, long-standing members who decided to spam. That's rare, and it's a job for normal moderation. What TGuard kills is the industrial version — the disposable-account supply that produces the overwhelming majority of link spam.
Setting it up
- Open @channel_guardian_bot and add it to your group as an admin with ban rights.
- Turn on captcha so every new member is challenged before they can post.
- Go to Security and set a join-rate limit — a time window and a member count that fits your normal growth.
- Choose the action for a tripped limit: ban or kick.
- If spam accounts are already inside, run a scan and clear them.
Link spam feels like a content problem because the link is what you see. It's an access problem. Close the door the throwaway accounts come through and the chat stays clean without you watching it.
Frequently Asked Questions
Stop the accounts, not the messages. Link spam is posted by throwaway accounts that join, post, and leave. A captcha at entry blocks accounts that can't pass it, and a join-rate limit kicks the coordinated bursts these runs arrive in. Once the spamming accounts can't reach the chat, the links stop appearing.
Partly. You can disable links for everyone in Group Permissions, but that also kills legitimate sharing and spammers switch to @mentions or obfuscated URLs. Telegram's native Aggressive Anti-Spam exists for supergroups over 200 members, but it can't be tuned and produces false positives on real members.
Because one operator runs many accounts. A link-spam campaign uses 20–50 disposable accounts that hit dozens of groups with the same payload in a short window. Banning one account does nothing — the next message comes from the next account in the batch. You have to block the batch at the point they join.
Disabling links only blocks http URLs. Spammers switch to t.me deep links and @mentions, which Telegram treats as navigation, not links, so a keyword filter never sees them. The reliable fix is account-level: a captcha and a join-rate limit keep the disposable accounts out, so nobody is in the chat to post any link format.
A bot can delete flagged messages, but that stays reactive — the next account in the batch reposts seconds later. TGuard works the other way: it stops the accounts that post links from getting in, so the link is never sent. For spam already inside, one scan bulk-removes the bot accounts.