The definitive guide to maximizing your reach on X (Twitter), based on reverse-engineering the open-source algorithm.
Complete guide to the 12 filters that can hide your content before scoring.
Before your post is even scored, it passes through filters:
Your Post → FILTERS → Scoring → Ranking → Feed
│
└── Removed posts never get scored
Key insight: A filtered post gets ZERO visibility, regardless of quality.
What it does: Removes duplicate tweet IDs from the candidate pool.
When it triggers:
How to avoid: N/A (system deduplication)
Source: drop_duplicates_filter.rs
What it does: Removes posts missing essential data (author_id, tweet_text).
When it triggers:
How to avoid: N/A (technical filter)
Source: core_data_hydration_filter.rs
What it does: Removes posts older than maximum age threshold.
When it triggers:
How to avoid:
Source: age_filter.rs
What it does: Removes your own tweets from your For You feed.
When it triggers:
How to avoid: N/A (expected behavior)
Source: self_tweet_filter.rs
What it does: Keeps only first occurrence when multiple people retweet same content.
When it triggers:
How to avoid: N/A (expected behavior)
Source: retweet_deduplication_filter.rs
What it does: Removes subscription-only posts from non-subscribers.
When it triggers:
How to avoid: N/A (subscription feature)
Source: ineligible_subscription_filter.rs
What it does: Removes posts the user has already seen.
When it triggers:
How to avoid: N/A (expected behavior)
Source: previously_seen_posts_filter.rs
What it does: Removes posts already served in current session.
When it triggers:
How to avoid: N/A (expected behavior)
Source: previously_served_posts_filter.rs
What it does: Removes posts containing keywords the user has muted.
When it triggers:
How to avoid:
Common muted keywords:
Promotional:
- "DM me"
- "Link in bio"
- "Follow for follow"
- "Giveaway"
Crypto/Scam:
- "100x"
- "Not financial advice"
- "Easy money"
Engagement Bait:
- "Like if you agree"
- "Retweet to win"
Political (varies by user):
- Various political terms
Source: muted_keyword_filter.rs
What it does: Removes posts from authors the user has blocked or muted.
When it triggers:
How to avoid:
Source: author_socialgraph_filter.rs
What it does: Removes posts flagged for safety issues.
Categories filtered:
When it triggers:
How to avoid:
Source: vf_filter.rs
What it does: Keeps only highest-scored post per conversation thread.
When it triggers:
How to avoid: N/A (expected behavior)
Source: dedup_conversation_filter.rs
Filters that YOU can control:
| Priority | Filter | Control Level |
|---|---|---|
| 🔴 High | Author Socialgraph (block/mute) | Avoid being blocked |
| 🔴 High | VF Filter (safety) | Stay within ToS |
| 🟡 Medium | Muted Keyword | Avoid spam words |
| 🟢 Low | Age Filter | Post at peak times |
1. Drop Duplicates
2. Core Data Hydration
3. Age
4. Self Tweet
5. Retweet Deduplication
6. Ineligible Subscription
7. Previously Seen
8. Previously Served
9. Muted Keyword
10. Author Socialgraph
11. VF Filter (visibility/safety)
12. Dedup Conversation
□ Not using spam keywords
□ Not engaging in ways that trigger blocks
□ Compliant with X Terms of Service
□ Not posting duplicate content
□ Posting at active times (avoid age filter)
□ Authentic engagement (avoid spam detection)
Next: Algorithm FAQ →