How to set up a profanity filter
Setting up a profanity filter in a Telegram channel or group requires using specialized moderation bots, since Telegram does not include a built-in profanity filtering feature. The most popular solutions include Combot, Rose Bot, and Shieldy, each offering customizable word lists and automatic actions against violators.
Why Telegram Doesn't Have a Built-In Profanity Filter
Unlike platforms such as YouTube or Twitch, Telegram takes a minimal-moderation approach by design. The platform provides basic tools — slow mode, restricted permissions, and manual message deletion — but leaves content filtering to third-party bots.
This means channel and group administrators must configure external solutions. The upside is flexibility: you can define exactly which words to block, set custom responses, and fine-tune severity levels rather than relying on a one-size-fits-all algorithm.
Choosing the Right Moderation Bot
Combot (@comaborant)
One of the most full-featured moderation bots available. Combot offers:
- Customizable banned word lists
- Regex pattern matching for creative spelling variations
- Automatic warnings, mutes, or bans
- Detailed moderation logs and analytics
- Support for multiple languages
Rose Bot (@MissRose_bot)
A lightweight and reliable option popular with groups of all sizes:
- Simple
/filtercommand to add blocked words - Automatic message deletion
- Warning system with configurable thresholds
- Free to use with no premium tier required
Shieldy (@shaborieldy_bot)
Best known for anti-spam, but also supports basic word filtering:
- Quick setup with minimal configuration
- Captcha verification for new members
- Basic profanity detection
Group Butler (@GroupButler_bot)
Another solid choice with word filtering capabilities:
- Blocklist management via simple commands
- Configurable actions (warn, mute, kick, ban)
- Multi-language support
Step-by-Step Setup with Rose Bot
Step 1: Add the Bot to Your Group
Open your Telegram group, tap the group name to access settings, select Add Members, and search for @MissRose_bot. Add it and grant it admin permissions — specifically the ability to delete messages and restrict users.
Step 2: Configure Basic Word Filters
Send the following command in your group chat:
/filter "badword" Message contains prohibited language
Replace "badword" with the actual word you want to block. Rose will automatically delete any message containing that word and optionally reply with your custom warning.
Step 3: Add Multiple Words
You can add words one at a time or create a comprehensive list:
/filter "word1" Warning message/filter "word2" Warning message/filter "word3" Warning message
For efficiency, prepare your full list in a text editor first, then paste the commands sequentially.
Step 4: Set Up Warning Thresholds
Configure what happens when users repeatedly trigger the filter:
-
/setwarnlimit 3— sets the maximum number of warnings before action -
/setwarnmode mute— mutes the user after reaching the limit (alternatives:ban,kick)
Step 5: Test the Filter
Send a test message containing one of your filtered words from a non-admin account. The bot should delete the message and issue a warning. Admin messages are typically exempt from filtering.
Step-by-Step Setup with Combot
Step 1: Add and Activate Combot
Add @combot to your group, then visit the Combot dashboard at their website. Link your group and navigate to the Filters section.
Step 2: Enable the Profanity Module
In the dashboard, find the Word Filter or Profanity Filter module. Toggle it on and select your preferred language packs — Combot includes pre-built dictionaries for English, Russian, Spanish, and other languages.
Step 3: Customize the Word List
Add custom words or phrases to the blocklist. Combot supports regex patterns, which is crucial for catching variations:
-
s+h+i+t+catches "shiiit" or "s h i t" -
[a@][s$][s$]catches common letter substitutions
Step 4: Configure Actions
Set the response for filter violations:
- First offense: Delete message + warning
- Second offense: Mute for 1 hour
- Third offense: Mute for 24 hours
- Fourth offense: Permanent ban
Filtering in Channels vs. Groups
There is a critical distinction between channels and groups:
Channels (one-to-many broadcasts) do not support moderation bots in the traditional sense. Since only admins can post, profanity filtering is typically unnecessary. However, if your channel has a linked discussion group, the filter applies to comments in that group.
Groups (many-to-many conversations) are where profanity filters are most useful. All the bots mentioned above work in group chats where multiple users can send messages.
If you run a public channel with open comments, setting up a profanity filter in the linked discussion group is essential to maintaining a professional environment. Services like tgchannel.space that mirror your channel content to the web will display comments alongside posts, making moderation even more important for your public image.
Advanced Configuration
Handling Unicode and Cyrillic Tricks
Users often bypass filters using lookalike characters from different alphabets. For example, replacing the Latin "a" with Cyrillic "а" (they look identical but are different characters). Advanced bots like Combot handle this with homoglyph detection, but simpler bots may need manual entries for common substitutions.
Whitelist Exceptions
Most bots allow you to whitelist specific contexts:
-
/addwhitelist "word"— removes a word from the blocklist - Admin messages are usually exempt by default
- Some bots let you whitelist specific users or roles
Multi-Language Filtering
For international communities, configure filters in all relevant languages. A channel serving both English and Russian speakers, for example, needs separate word lists for each language. Combot's pre-built dictionaries simplify this significantly.
Media Caption Filtering
Remember that profanity can appear in photo captions, video descriptions, and document titles. Ensure your chosen bot scans these fields, not just plain text messages. Rose and Combot both scan captions by default.
Tips & Best Practices
- Start with a pre-built dictionary: Don't try to think of every offensive word yourself. Use Combot's built-in language packs or community-maintained word lists as a starting point, then customize from there.
- Use regex patterns: Simple word matching misses "fck" or "sh1t." Regex catches creative spelling. Even Rose supports basic pattern matching for common variations.
- Implement graduated punishments: Immediately banning users for a single word creates a hostile atmosphere. A warning system (3 warnings → 1-hour mute → 24-hour mute → ban) is fairer and reduces false-positive frustration.
- Review filter logs weekly: Check what the bot is catching. You may find legitimate messages being falsely flagged, or new slang terms slipping through. Adjust your lists accordingly.
- Announce the rules clearly: Pin a message explaining that profanity filtering is active. This reduces complaints and sets expectations. Example: "This group uses automated moderation. Offensive language is automatically removed."
- Keep admin communication clean: If admins themselves use filtered words, it undermines the system. Ensure your moderation team leads by example.
Common Mistakes
Mistake 1: Not granting proper bot permissions
Why it's wrong: A bot without delete-message permissions can detect profanity but cannot remove the offending message, making it useless.
How to avoid: When adding the bot as admin, enable at minimum Delete Messages and Restrict Members permissions.
Mistake 2: Overly aggressive filtering
Why it's wrong: Blocking common words that happen to contain offensive substrings (like "assistant" containing a three-letter word) leads to constant false positives and frustrated users.
How to avoid: Use whole-word matching where possible, and test your filter list against normal conversation before deploying.
Mistake 3: Relying on a single bot
Why it's wrong: No single bot catches everything. Users quickly learn which variations bypass a specific bot's detection.
How to avoid: Consider running two complementary bots — for example, Rose for keyword filtering and Combot for pattern-based detection. Ensure they don't conflict by assigning different roles.
Mistake 4: Never updating the word list
Why it's wrong: Slang evolves constantly. A word list created six months ago misses new terms.
How to avoid: Schedule a monthly review of your filter lists. Check moderation logs for words that should have been caught but weren't.
Mistake 5: Forgetting about the linked discussion group
Why it's wrong: You set up your channel perfectly but leave the comments section unmoderated, allowing profanity in discussions that appear alongside your content.
How to avoid: Always configure the profanity filter in your channel's linked discussion group, not just the channel itself.
Frequently Asked Questions
Can I filter profanity in private Telegram groups?
Yes, moderation bots work in both public and private groups. You simply add the bot and configure it the same way. The bot needs admin permissions regardless of the group's privacy setting.
Do profanity filters work on edited messages?
Most modern moderation bots, including Combot and Rose, scan edited messages. If a user posts a clean message and then edits in profanity, the bot will still catch and delete it.
Can I filter profanity in multiple languages simultaneously?
Yes. You can maintain separate word lists for each language your community speaks. Combot makes this especially easy with pre-built dictionaries for over 10 languages.
Will the filter affect messages sent before the bot was added?
No. Moderation bots only process new messages received after they were added to the group. They cannot retroactively scan or delete older messages.
Is there a way to filter profanity in channel posts, not just comments?
Since only admins post in channels, there is no automated filter for channel posts themselves. The assumption is that admins self-moderate. If you need oversight, consider requiring a second admin to review posts before publishing using Telegram's Approve New Messages admin permission.