How the X shadowban test works: the 4 checks

Shadowban Radar measures instead of estimating: every verdict comes from X's own public data, read on X through a specialized data provider, from the same search results and conversation threads X serves to anyone. Nothing is inferred from view counts or engagement, no login or password is ever needed, each verdict states its confidence level, and every result shows when X's data was read.

Every score on this site comes from 4 checks, each documented below: what it observes, what it cannot, how its confidence level is set, and when it returns Untestable instead of a guess.

Check any handle now: free, no login

@

Up to 30 free checks a day. No login, no password.

Search suggestion ban

A search suggestion ban means your X account stops appearing in the dropdown suggestions when someone types your name or handle.

We check whether X suggests the account when someone types its handle. If it is not suggested, X is not surfacing it there. Nothing is inferred: the account comes back or it does not, so when this check runs, it is a pass or a fail, never a guess.

What we cannot observe:

  • Whether X shows different suggestions to different searchers. We see what X suggests publicly, not every viewer's personalized autocomplete.
  • A partial demotion. Profile search returns the account or it does not, with no in-between reading.

Confidence: always high. This is a direct, binary observation.

Why it can return Untestable: when profile search does not return a usable response. The result is Untestable, not proof of a restriction.

Manual version, no tool required: the search suggestion ban page walks through checking it from a second account.

Search ban

A search ban means your posts are removed from X search results: searching for them finds nothing, even for followers.

We check whether the account's own recent posts come back when they are searched on X. If they come back, the account passes; if its recent public posts are missing, that is a search ban.

What we cannot observe: personalized search ranking. We only see whether a post appears at all, not how far up or down it ranks for a given searcher.

Confidence: always high when the check runs. It is a direct observation, nothing inferred.

Why it can return Untestable: in two cases only.

  • Search does not return a usable response.
  • Only reposts are available to check, and X search never returns reposts.

A protected account, or an account with no posts, is not Untestable here: neither can show up in public post search, so the check counts it as a search ban.

Manual version, no tool required: the search ban page.

Ghost ban

A ghost ban detaches your replies from the conversation they belong to: everyone else sees the thread without them.

We take the account's recent replies to other people's conversations and read each conversation as X serves it to readers. If X serves the reply, it is not ghost banned.

A missing reply is never taken at face value. Two things can explain an absence with no restriction on the account at all:

  • the thread is too large to read completely;
  • its author restricts who is allowed to reply.

We only call it a ghost ban once the absence is proven: the reply is missing from a conversation that we read to the very end. A conversation that cannot be read to the end proves nothing, so the check moves on to the next one.

What we cannot observe:

  • The app's own rendering. We read threads the way X serves them to anyone, not by opening the app as a second person. We treat that as a logged out, outside view, but cannot verify that every rendering quirk of the app matches it.
  • An account that has never replied to anyone: there is no conversation to check.

Confidence: high when an absence is proven as described above, and high when the reply is found and the thread is fully read. Untestable when neither a reply nor a valid proof of absence turns up.

Why it can return Untestable: the conversations the account replied to are too large to read to the end, or restrict who can reply.

"No replies to check" means the account has not replied to anyone recently, so the ghost ban and reply deboosting checks have no reply to look for. Both checks then count as completed, never as failed, and stay out of the score.

On a private account or an account with no posts, the ghost ban and reply deboosting checks cannot run: the result shows "Private account" or "No posts yet" on those two checks instead of a verdict.

Manual version, no tool required: the ghost ban page.

Reply deboosting

Reply deboosting means your replies are pushed to the bottom of a conversation or hidden behind Show more replies.

Reply deboosting is tested on the same replies as the ghost ban, read the same way: in the conversation as X serves it to readers, and only concluded once the conversation has been read to the end.

Reply deboosting is detected when X serves a reply in the conversation read in chronological order but leaves it out of the default view of that same conversation.

Deboosting means the reply still exists but is ranked out of the view almost everyone scrolls through. This stops short of proving intent, since real differences in engagement also affect ranking.

What we cannot observe: X's ranking model itself. We only see its output, so we cannot separate an algorithmic penalty from a case where other replies are, for whatever reason, more relevant.

Confidence: high only when the whole thread was read. If it is too large, the check returns Untestable rather than guessing at a ranking we did not fully see.

Why it can return Untestable: the same causes as the ghost ban check above.

Manual version, no tool required: the reply deboosting page.

What we can never detect

X does not expose a shadowban flag to anyone, including us. We never see an internal moderation score or a reason code. Every verdict on this site comes from public output.

Three limits apply to every check:

  • One vantage point. Each check shows X's public data the way X serves it to anyone. If X serves meaningfully different results to different viewers, we see one version, not everyone's.
  • No cause. We can say a restriction is present, never which specific post or behavior caused it.
  • No hidden restriction. A restriction that never surfaces as a missing suggestion, a missing post in search, or a reply pushed out of a thread's visible sort is invisible to all 4 checks. The same goes for any tool that only reads the public interface, ours included.

Shadowban Radar checks Twitter (X) accounts only: it does not test Instagram, TikTok or any other platform.

Why a check can return Untestable

Untestable means the evidence available in one read was not enough to prove a verdict either way. X composes each thread and each search result at the moment it is read, not when something was posted, so the same account can look different an hour apart with no change to the restriction itself. The usual causes:

  • a conversation whose author restricts who can reply;
  • a conversation too large to read to the end.

An Untestable is a report on what could be measured this run, never a verdict. It is never averaged into the score as if it were a pass or a fail.

Paid monitoring retries a check that could not be measured at its next pass. See how the automated monitoring works.

How the score is built

The score is the share of measured checks that passed. Only checks that returned a pass or a fail count, each one equally. An Untestable check counts for nothing at all, rather than as a neutral middle value.

A Shadowban Radar result reads "No shadowban detected" when none of the 4 checks failed, and "Shadowban detected" when at least one failed. The detailed result gives the number of restrictions found. If no check could be measured at all, the result reads "Visibility not measurable".

If none of the 4 checks could be measured, the score is left blank rather than shown as zero. Zero would say every check failed, which would not be true.

Frequently asked

Does Shadowban Radar have special access to X's systems?

No, and it does not need any. Every verdict comes from X's own public data: the same search results and conversation threads anyone can see. What we measure is what X actually shows.

Why did my score change between two scans with nothing else changing?

X recomposes threads and search results at the moment they are read, not at the moment something was posted. A restriction can be applied or lifted between two scans, and a reply missing from a thread one hour can reappear the next with no other change on your end. That is what automated monitoring, throughout the day, is built to catch.

Why does one check say Untestable while the others have a verdict?

Each of the 4 checks depends on different evidence being available. A search response that fails to load, for example, leaves the search ban check without a verdict, while ghost ban and reply deboosting need a recent reply inside a conversation we can read to completion. Missing that evidence produces Untestable on some checks and a real verdict on others in the same scan.

Does an Untestable check lower my score?

No. A check that returns Untestable is left out of the score entirely. It is never counted as a fail, and it never gets averaged in as a partial pass.

Can Shadowban Radar be wrong?

Yes, within the confidence it publishes. The search based checks are direct, binary observations and are rarely wrong. The thread based checks, ghost ban and reply deboosting, read real conversations and only conclude on proof; without it, they say Untestable instead of guessing. That is why every verdict ships with a confidence level instead of a single number that sounds certain.

How is this different from X's own Under the Hood report?

Under the Hood is a monthly summary X shows to a logged-in account of the labels applied to it, published well after each calendar month ends and visible only to that account's own owner. The 4 checks above read the account's current public visibility from outside, on any handle, as often as needed. Full comparison: /x-under-the-hood.

Test it yourself

Run the 4 checks on any handle

@

Up to 30 free checks a day. No login, no password.

The 4 restrictions, in detail

Last reviewed