TL;DR
- Shadow banning limits a user's reach without telling them. They can keep posting and see their own content as normal, while other people see it less or not at all.
- Platforms use it mostly against spam accounts and bots, because a banned spammer opens a new account and a shadow-banned one never learns anything changed.
- A shadow ban only works if every read path applies the same server-side check, including search, push notifications, and channel previews.
- It does not change behavior. Users told why their content was removed break the rules less often, so shadow bans suit spam and bots, and everyone else should be told what they did.
Shadow banning is a moderation technique that reduces a user's or their content's visibility without clearly telling them a restriction has been applied. The user can keep posting, and everything looks normal from their own account. Other people see their content less often, or not at all.
Why bother with this technique? Why not just ban the user outright? Because a bad actor can keep acting badly when they can see they’ve been banned. A spammer whose account gets suspended opens a new one and starts again. Under a shadow ban, they never find out. They keep posting, nobody sees it, and it can take days to realize the links have stopped getting clicks.
The cost is transparency. A user whose reach collapses can't tell whether they were shadow-banned, caught by an algorithm change, or posted something nobody cared about, which is why the term gets attached to every dip in engagement on every social media platform.
How Does a Shadow Ban Work?
The platform accepts the content as normal, stores it, and then leaves it out when it builds what other people see. Nothing changes on the author's side. The request that created the post returned success, and the post appears in their own feed and on their profile. The restriction applies on the read side, when someone else's feed, channel, search results, or notifications are assembled.
Online communities have used shadow banning since the 1980s, then under names like hellbanning, stealth banning and ghost banning. Jeff Atwood describes the intended effect on trolls: nobody ever responds, so they get bored and leave.
On social media platforms, the term now covers a wider set of restrictions:
- Keep a post out of recommendations, trending pages and algorithmic feeds, so it only reaches existing followers
- Drop an account from search results and hashtag pages
- Rank its posts and comments much lower
- Collapse its replies behind a "show more" control
- Hide its comments from everyone except the author
- Stop sending notifications when the account interacts with someone
The restriction can apply to an entire account, a single post, a feature like search, or a set period. X's enforcement options show the range of what's possible on one platform. A restricted post can be excluded from search, trends, and the For You timeline; limited to the author's profile; downranked in replies; or have likes and reposts switched off. Since 2023, a post restricted this way carries a label, so the author and everyone else can see that its reach was limited.
Why Shadow Ban Someone Instead of Banning Them Outright?
Because it works on spam accounts and bots, as long as the chat is busy enough that one user getting no replies looks normal. Stream moderation docs give livestreams as the example. In a channel with six people, the silence gives it away.
Reduced visibility also suits content that isn’t bad enough to delete. A post that only just violates guidelines, or one carrying misinformation that breaks no rule, can be demoted instead. TikTok does this with a notice. A video can stay on your profile and still be ineligible for the For You page, with the reason in its analytics and an appeal button.
How it has played out on the big platforms:
- Reddit ran shadow bans as its only account-level punishment until 2015, when it called them “great for dealing with bots/spam rings, but woefully inadequate for real human beings” and switched to suspensions that state the reason and the duration. People had been posting for weeks, wondering why nobody answered them.
- Instagram’s Restrict feature is a shadow ban on one relationship. A restricted person’s comments on your posts are visible only to them, and Instagram built it after young people said they were reluctant to block or report peers who bullied them.
- Facebook hides some rule-breaking comments and deletes others, warning the author. A study of 412 million comments found that deletion reduced how often the author broke community guidelines afterward, while hiding had no significant effect.
What a shadow ban doesn’t do is change behavior. A study of 32 million Reddit posts found that users given a reason for a removal were less likely to have posts removed later. If you want someone to post differently, tell them what they did.
What Triggers a Shadow Ban?
A shadow ban is an enforcement action, and a separate decision triggers it. The decision can come from:
- An automated classifier that scores a message, image, or video against the platform's content moderation policies and crosses a threshold.
- Spam signals such as the same link posted hundreds of times, an unusually high posting rate, a brand-new account with no profile photo, or a pattern of other users muting and blocking the account.
- User reports, once enough of them land on one account.
- Repeated community guidelines violations, where earlier strikes were warnings or removals, and the next step is reduced distribution.
- A human moderator who reviewed the account and decided a quiet restriction is the right call.
On Stream, rules are the automated route. A rule combines conditions, a threshold, and an action. The spam rule in our docs fires when a user posts five messages labeled as scams or platform bypass within an hour, or fifty messages of any kind in that hour, and the action can be a ban with shadow_ban set to true and a duration attached, or a shadow_block on the content itself. A cooldown period stops the rule from re-firing the moment a moderator lifts the ban.
The manual route is a moderator clicking shadow ban in the dashboard, or your backend making the same call:
await client.moderation.ban({
target_user_id: "user_to_shadow_ban",
banned_by_id: moderatorId,
channel_cid: "livestream:game-night",
reason: "Repeated promo links",
timeout: 1440,
shadow: true,
});
Leave out channel_cid, and the ban covers the whole app. timeout is in minutes, so this one expires after a day, and the reason is stored with the ban so whoever looks at it later knows why it exists.
What Does It Take to Enforce a Shadow Ban Properly?
Every read path must apply the same check, and the check must run on the server. Hiding a message in the main message list does nothing for:
- The push notification that already went out with its text
- The search index that returns it
- The channel preview that shows it as the last message
- The history request that returns it when the user pulls to refresh.
Each is a separate code path, and the restriction has to hold on every one of them, or the reader sees the content and the author gets a hint something is off.
The decision is keyed to who is asking:
In Stream Chat, messages from a shadow-banned user carry shadowed: true for everyone except the author, whose copy looks normal even in the raw API response. Your app hides the flagged messages for everyone else. queryBannedUsers returns who issued each ban, the reason, the expiry, and whether it was a shadow ban.
In the EU, Article 17 of the Digital Services Act requires a statement of reasons for any visibility restriction, demotion included. The one exception is deceptive high-volume commercial content, that is, spam.
How Can You Tell If an Account Has Been Shadow Banned?
From the outside, you can’t be certain, only narrow it down. X’s own list of reasons a post might not be seen runs from rule enforcement to other users muting you, ranking, experiments, and technical problems, and they all look the same from the author’s side. Search “shadow banned” alongside LinkedIn, TikTok, or Instagram and you’ll find people certain that’s why their posts aren’t showing up.
What you can check:
- Open the post’s direct link logged out or from a second account. If it loads, the post is still public, and any restriction is on distribution.
- Search for the account from that second account. Reachable by link but missing from search points to a search restriction.
- Check the platform’s status page. Instagram’s Account Status shows whether a professional account is eligible for recommendation on the Explore page, and TikTok flags a video that’s ineligible for the For You feed in its analytics.
- Compare with similar accounts. If they dropped the same week, the algorithm changed.
Twitter said in 2018 that it didn't shadow ban, and the Twitter Files released in 2022 showed search and trends blocklists that it called visibility filtering, and its critics called content suppression. A study of 40 million tweets found that tweets with external links got as little as an eighth of the visibility of tweets without them, and even then the authors couldn’t prove the recommendation algorithm was the cause, because they can’t inspect it.
If you’re running the community, keep shadow bans for spam accounts and bots, put an expiry on every one, and tell everyone else what they did. On Stream, both are the same ban call with shadow set one way or the other, and the review queue and appeals sit in the same dashboard.

Top comments (0)