Adult content reaches your Twitter feed through three separate doors, and most people only close one of them.
They change a setting, the feed improves for a week, and then it drifts back.
The setting handles what X shows you. It does nothing about what you follow, and nothing about who is allowed to reach you.
Filtering adult content on X takes three passes, not one: platform settings for what gets displayed, muted words for what gets through anyway, and a cleanup of the accounts actually feeding it into your timeline. Circleboom handles the third pass, reading your following list through official X API access and flagging the accounts that have drifted into spam or automated behaviour.
→ filter adult content out of your Twitter feed
The third pass is the one that holds.
The three doors adult content comes through
Working out which door is open in your case saves you from fixing the wrong thing.
Recommendation is also why this content shows up from accounts you have never followed.
For You, trending and reply threads all pull from the wider platform, which is why settings matter alongside the cleanup rather than instead of it.
The display door is X's own sensitive-media handling.
Adult content is permitted on the platform when it is marked sensitive.
And whether you see it behind a warning, without a warning, or not at all depends on your media settings.
If explicit images are appearing uncovered in your timeline, this door is open and it is a two-minute fix.
The recommendation door is content X shows you from accounts you do not follow: For You suggestions, trending, replies under posts you opened.
Settings narrow this, and they do not close it, because recommendation is how the platform works.
The following door is the one nobody audits:
- Accounts you followed years ago that have since been abandoned and repurposed.
- Accounts you followed back during a growth phase without checking.
- And accounts that were fine when you followed them and are now posting at volume.
This door does not respond to any setting, because you opened it yourself.
Settings filter the feed. Only a cleanup changes what is in it.
Closing the display door first
Start here because it is the fastest and it tells you whether the rest matters.
X's media settings documentation covers the controls for how sensitive media appears to you.
The relevant option determines whether media flagged as sensitive is hidden behind a warning you have to acknowledge, or displayed directly.
The Adult Content Policy is worth understanding alongside it, because it explains why this content exists on the platform at all.
Consensually produced adult media is allowed when marked sensitive, so a compliant account is not breaking a rule by posting it.
Reporting these accounts for their content is therefore a dead end most of the time.
X's customization controls cover the wider set:
- What appears in your timeline.
- What reaches your notifications.
- And the quality filter that strips duplicate and automated content out of the notification tab.
Turn all of those on, and then judge what is left.
If the feed is still full of it, the problem is not display, it is composition.
Muted words, and where they stop working
Muting words is the second pass and it is more powerful than most people use it.
X's advanced mute options let you mute words, phrases and hashtags from your timeline, your notifications, or both, with an expiry if you only want it temporarily.
Muting the handful of terms that adult promotion accounts repeat cuts a lot of what gets through.
It has two limits worth knowing before you rely on it.
Muted words match text, and the content here is largely visual.
An account posting an image with a two-word caption is not going to match anything you muted.
And it filters the symptom rather than the cause.
The account is still in your following list, still counted in your following total, still shaping what the algorithm thinks you want to see, and still visible on your public profile to anyone who checks who you follow.
That last part matters more than people expect.
Muting certain words, phrases, hashtags or people on Twitter covers the mechanics properly, and it is a good second pass rather than a solution.
Video walkthrough: setting up muted words and phrases so the filtering happens before the content reaches your timeline.
https://www.youtube.com/watch?v=S9OmKdzxVaY
How to filter adult content out of your Twitter feed at the source
The third pass is a cleanup of your own following list, and it is the one that changes the feed permanently.
Connect your account and open the following audit
- Log in to Circleboom Twitter and connect the X account whose feed you are cleaning.

- Open the Follower and Following menu and select Fake/Bot Following, which applies the same multi-signal scoring to the accounts you follow rather than to the ones following you.

- Let the retrieval finish before drawing conclusions, since the list keeps changing as it loads on larger following counts.
Narrow it to the accounts actually feeding your timeline
- Whitelist anyone you follow deliberately, including parody, brand and support accounts that look unusual but are followed on purpose. The label persists across every feature and every future session.
- Stack Fake/Spam with Eggheads, a Tweet Count range and a Follow Ratio maximum, which separates accounts that were always synthetic from accounts that have degraded since you followed them.
- Use Find in Bio and Name for the phrases adult promotion accounts repeat, since they have to advertise in the bio for the model to work at all.
- Add the Overactive filter if the problem is volume rather than content. High-frequency posting from a handful of accounts dominates a timeline far more than the follow count suggests. Filtering by language helps too when the noise is coming from a region you never meant to follow.
Unfollow the reviewed segment
- Select the reviewed rows and click Unfollow. Circleboom processes 50 unfollow actions every 15 minutes, up to 800 per day, and pauses automatically when the quota is reached.
- Stay well under the ceiling on any single run. Somewhere between 100 and 150 accounts at a time is the recommended pace, because unfollowing aggressively is what triggers X's automated detection.
That ordering matters because the whitelist protects the accounts a signal model cannot recognise as intentional, and the filter stack separates degraded accounts from accounts that were never worth following.
Skipping either step means running a bulk action against a list nobody read.
Quick recap: settings, then muted words, then a following audit.
The first two filter. Only the third changes the source.
Why the accounts you follow matter more than the settings
Your following list is the primary input to what X shows you.
It is not the only input, and it is the one you control completely.
An account posting forty times a day occupies far more of your timeline than its single line in your following count suggests.
Ten such accounts can dominate a feed built from four hundred follows, which is why a timeline can feel unrecognisable without your following list having changed much at all.
The composition drifts in three ways:
- Accounts get abandoned and repurchased or repurposed.
- Accounts you followed back during a growth phase turn out to have been automated the whole time.
- And accounts that were genuinely good change what they post.
None of that shows up as an event.
It accumulates, and the feed degrades slowly enough that you adjust to it rather than noticing it.
A mass unfollow pass over the accounts you no longer want in your feed is the only correction that touches the actual input.
There is a second reason to care.
Your following list is public.
A list full of adult spam accounts reads as a judgment about you to anyone who opens it, regardless of how those accounts got there.
The accounts that were fine when you followed them
The category people miss entirely is drift, and it is the largest source of feed degradation on an established account.
An account you followed four years ago because it posted good work can end up abandoned.
Abandoned accounts get sold, recovered by someone else, or repurposed.
And the handle you trusted is now posting something else entirely.
The follow relationship carries none of that history with it.
The gentler version is a real account that changed.
Someone who posted twice a week now posts thirty times a day, or has pivoted into promotion, or has started reposting a feed.
Nothing about that is a violation, and it is still not what you signed up for.
Neither of those shows up as a notification.
There is no alert when a followed account changes character, so the feed drifts and you adjust to the drift rather than noticing it as a change.
This is why the Fake/Bot Following view is worth running even on a following list you feel confident about.
The scoring is applied to current behaviour rather than to how the account looked when you followed it, and the gap between those two is exactly where the accumulated noise lives.
A following list is a record of decisions you made once. The feed reflects what those accounts are doing now.
Is unfollowing in bulk safe on X?
Yes, at a controlled pace, and the pace is the entire answer.
Circleboom processes 50 unfollow actions every 15 minutes with a daily ceiling of 800, and pauses automatically when a limit is reached rather than pushing through.
The documented recommendation is to stay well below that, around 100 to 150 accounts per session, because X's automated systems treat rapid unfollowing as aggressive behaviour and can temporarily lock an account for it.
Unfollow limits also vary between accounts.
If X returns a rate-limit response, the request is not fulfilled immediately, which is why the pacing exists rather than being a courtesy.
Circleboom runs this as an official X Enterprise Developer company, so the retrieval and the actions both sit inside X's documented rules.
On an operation that touches hundreds of relationships, that is the difference between a clean cleanup and a locked account.
If the volume rather than the content is the problem, finding overactive accounts to mute is a lower-force option that leaves the follow in place.
What to do next
Run the three passes in order, because each one narrows what the next has to handle.
- Turn on X's sensitive-media handling and the notification quality filter, and judge the feed afterwards.
- Mute the five or six terms that actually recur, with an expiry if it is a temporary problem.
- Audit your following list for accounts that were always synthetic or have degraded since.
- Unfollow in batches of 100 to 150 rather than in one large run.
- Re-check in a month, since composition drifts continuously rather than in events.
Settings are maintenance you do once. The following audit is maintenance you repeat, and it is the only one of the three that changes what enters the feed rather than what survives the filter.
Blocking words and people on Twitter to clean up your timeline covers the settings side in more depth.
Once the audit is done, clear the flagged accounts out of your following list in batches. The feed usually changes within a day.
→ unfollow the accounts filling your feed
Common questions about filtering your Twitter feed
Will muting words hide images too?
Only when the post carries matching text.
Muted words match captions, hashtags and text content, so a bare image with no caption gets through regardless of what you have muted.
Does unfollowing notify the account?
No. Unfollowing is silent on X, and the account is not told.
Curating your feed and managing interactions on Twitter covers which actions are visible and which are not, and what changes for you after each one.
How many accounts can I unfollow per day?
The documented ceiling is 800, and the recommended working pace is 100 to 150 per session. Staying below the ceiling is what keeps the account clear of automated restrictions.
Should I block these accounts instead of unfollowing?
Only if they interact with you.
Unfollowing changes your feed; blocking changes their access.
If they are simply posting and you no longer want to see it, unfollowing is the proportionate action.
What if the settings are already right and the feed is still bad?
Then the composition is the problem rather than the display, and no further setting will help. How to enable NSFW content on Twitter is worth reading in reverse to confirm nothing is toggled the wrong way. After that, the following audit is the remaining lever.