Is shadowbanning real on X?
The folk version — a secret switch that silently zeroes out an account — does not appear anywhere in the open-source X algorithm. What the code does show is several real, named mechanisms that reduce or remove visibility: a post-level visibility filter for spam and policy categories, per-viewer filters driven by blocks and mutes, safety classifiers, and negative ranking weights for posts the model predicts you would block, mute, or report.
What the code actually shows
"Shadowban" is a folk term, so the honest way to answer is to replace it with the specific mechanisms the released code contains. There are four, and they work very differently from each other.
1. A post-level visibility filter. After ranking, a filter the code calls VFFilter removes posts that are deleted, spam, violence, gore, and similar categories. This is the closest thing in the released code to content being suppressed outright — and it operates on posts, by category.
After selection, a visibility filter (VFFilter) removes posts that are deleted, spam, violence, gore, and similar categories.
2. Per-viewer filters. Before scoring, the pipeline removes posts for reasons specific to each viewer: posts they've already seen or been served, posts containing their muted keywords, posts from authors they've blocked or muted, posts older than a threshold. If someone blocked or muted you, your posts vanish from their feed — by their choice, not a penalty.
Before scoring, Home Mixer removes: duplicates, posts that failed metadata hydration, posts older than a threshold, your own posts, repost duplicates, paywalled content you can't access, posts you've already seen or been served, posts containing your muted keywords, and posts from authors you've blocked or muted.
3. Predicted-negative downranking. The ranking model explicitly predicts whether a viewer would hit "not interested," block you, mute you, or report the post — and those predictions carry negative weights. This is continuous and per-post: content the model expects people to dislike ranks lower for them. It is real suppression in effect, but it is the scoring system working as documented, not a hidden account flag.
The model explicitly predicts negative actions — not interested, block author, mute author, report — and these carry negative weights in the final score, pushing down content a user would likely dislike.
4. Safety classifiers. Since the May 2026 release, the Grox service's classifiers — spam detection, post-category classification, PTOS policy enforcement, and post-safety screens — are named and inspectable in the repository.
The May 2026 release includes Grox, a content-understanding service with classifiers for spam detection, post-category classification, and PTOS policy enforcement — including spam.py, safety_ptos.py, banger_initial_screen.py, post_safety_screen_deluxe.py, and reply_ranking.py.
What we can't verify
An account-level "shadowban" switch — a flag that quietly suppresses everything you post — does not appear in the released code. But absence from the release is not proof of absence from production: the repository demonstrably withholds some things (the numeric ranking weights, for one), so "the code doesn't show it" is the strongest claim available, and it is the only one we will make.
The numeric values of the current weights are not included in the open-source release: weighted_scorer.rs references a params module (e.g. p::FAVORITE_WEIGHT, p::REPLY_WEIGHT) whose values are not present anywhere in the published repository.
What this means for you
If your reach dropped, the productive question isn't "am I shadowbanned" — it's which of the four real mechanisms is touching you. Category-level visibility filtering and safety classifiers respond to what you post. Predicted-negative downranking responds to how audiences historically reacted to posts like yours. Per-viewer filters respond to blocks and mutes you've accumulated. Each has a different fix, and none of them is appeased by deleting your account and starting over — the first two follow the content, the third follows the engagement pattern.