Why Good Posts Sometimes Get Low Reach
A good post can get low reach on X because content quality alone does not determine recommendation. The open-source X recommendation architecture shows a multi-stage system: posts must first become candidates, pass eligibility filters, be evaluated for a particular user, receive predicted engagement scores, compete with other candidates, and then survive selection and final filtering. (GitHub)
So a useful way to think about reach is: Good content can still have low reach if the recommendation system doesn't find enough suitable opportunities to show it to the right users.
The Journey From Post to Reach
The current open-source pipeline documents these stages, including candidate retrieval, filtering, Phoenix scoring, weighted scoring, author diversity, out-of-network scoring, selection and post-selection processing. (GitHub)
1. Good Doesn't Automatically Mean Relevant
You may genuinely think a post is excellent. But X's recommendation system isn't asking: “Is this a good post?” It's closer to: “How relevant is this post to this particular user, and what are they likely to do with it?”
Phoenix uses user engagement history and candidate information when making its predictions. The model predicts multiple actions for each candidate, including likes, replies, reposts, clicks, dwell, follows and negative feedback. (GitHub)
A post can be excellent for one audience and uninteresting to another.
2. The Post Has to Become a Candidate
Before X can rank your post, it needs to enter the candidate pool. The current architecture retrieves candidates through multiple sources, including Thunder for in-network posts and Phoenix Retrieval for out-of-network posts. (GitHub)
This creates an important distinction: A post can be good without necessarily becoming a candidate for every user. Candidate retrieval is therefore one possible bottleneck between publishing and recommendation.
3. Your Followers Don't Automatically See It
Having followers doesn't guarantee that all of them receive every post. The For You system is personalized. Posts compete for recommendation opportunities based on the viewer's context and predicted behavior.
A follower may already have seen the post, may not be interested in the topic, or the post may simply not rank highly enough among the candidates being considered for that viewer. The current architecture includes filters for previously seen and previously served posts as well as other eligibility conditions. (GitHub)
4. A Great Post Can Lose the Candidate Competition
Even if your post is eligible and relevant, it doesn't exist alone. X has many candidates competing for the same recommendation opportunities. The current pipeline scores candidates and then selects the top candidates. (GitHub)
Your post can be objectively good and still lose the ranking competition. This is one of the simplest explanations for “This is my best post, so why did it get fewer impressions?” Your quality doesn't determine the quality of the competing candidates.
5. X Predicts Future Actions
The current Phoenix model doesn't simply rank posts by their existing likes. It predicts multiple possible actions for the viewer (Like, Reply, Repost, Photo expansion, Click, Profile click, Video viewing, Share, DM share, Copy-link share, Dwell, Quote, Follow, Not Interested, Block, Mute, Report). (GitHub)
So a post can be high quality from a human perspective while still producing relatively weak predicted behavior for a particular viewer.
6. Existing Engagement Isn't the Same as Predicted Engagement
Suppose your post has 500 likes. That is an observed result. Phoenix is doing something different: predicting whether a particular viewer is likely to like the post. The current ranking code explicitly produces separate probability outputs for different actions. (GitHub) Therefore, existing likes ≠ predicted Like probability, and high existing engagement ≠ guaranteed future recommendation.
7. A Post Can Have Strong Likes but Weak Other Signals
Imagine a hypothetical post with High P(Like) but Low P(Reply), Low P(Repost), Low P(Click), and Low P(Dwell). Another post might have Medium P(Like) alongside High P(Reply), High P(Repost), and High P(Dwell). The recommendation system can distinguish these action profiles. The current architecture combines predicted actions through weighted scoring rather than treating every engagement as identical. (GitHub)
8. Negative Feedback Can Work Against Recommendation
The model also predicts negative actions (Not Interested, Block author, Mute author, Report). (GitHub) The open-source scoring architecture uses negative weights for these types of predictions. (GitHub) That means a post can generate some positive engagement while also being predicted to create negative feedback.
9. Some Users May Already Have Seen It
The current candidate pipeline includes PreviouslySeenPostsFilter and PreviouslyServedPostsFilter. These filters can remove candidates that the user has already encountered or that have already been served during the session. (GitHub) This matters when analyzing reach: a post can continue to be good while having fewer new recommendation opportunities.
10. Your Post May Be Competing Against Newer Content
The feed is constantly changing. Even if your post performed well earlier, new candidates enter the system. Your post starts as a strong candidate, but as new candidates arrive, competition changes and your relative ranking changes. Therefore, an early period of strong reach doesn't guarantee continued distribution.
11. Author Diversity Can Affect Distribution
The current architecture includes an Author Diversity Scorer that adjusts repeated-author scores. (GitHub) If a candidate pool contains multiple posts from Creator A, simply showing the highest-scoring posts could result in too many posts from one creator. Author diversity helps construct a more varied feed.
12. Out-of-Network Recommendations Have Their Own Adjustments
The current architecture includes an OON Scorer for out-of-network content. (GitHub) This matters because a post from someone you don't follow is competing through a recommendation pathway that is different from simply seeing a post from an account you already follow. A good post may have limited out-of-network expansion simply because its predicted relevance isn't broad enough.
13. Some Posts Are Good but Highly Niche
Suppose you post: “A technical breakdown of a very specific database optimization.” It might be excellent, but the number of users likely to care about that subject could be relatively small compared with a broad AI tools post. So content quality ≠ audience size. A niche post can be highly successful within its intended audience without generating enormous impressions.
14. Timing Is Not the Same as an Algorithm Penalty
Creators often conclude: “I posted at the wrong time, so X killed my reach.” The open-source recommendation architecture does not establish a universal posting-time formula that guarantees or prevents recommendation. Timing can affect the candidate environment—what other content is competing for attention—but you shouldn't claim “Post at 7:00 PM and your score increases by 30%.”
15. A Good Post Can Be Filtered
The recommendation pipeline has filters before and after scoring (duplicates, old posts, self-posts, previously seen/served posts, muted keywords, blocked/muted authors, ineligible subscription content, and post-selection visibility/deduplication checks). (GitHub) Therefore, not every post that could theoretically rank actually reaches the ranking stage.
16. Quality Is Not a Public Algorithm Variable
There is no public variable called post_quality = 94 that creators can inspect. The system learns from user behavior and other model inputs. So instead of asking “How does X judge whether my writing is good?” it's more accurate to ask “What does the model predict users will do with this content?” (GitHub)
17. Why Your “Best Post” Can Lose to a Worse Post
Imagine Your Post has a human quality of 9/10 with Medium predicted relevance, while Another Post has a human quality of 7/10 with High predicted relevance. For a particular user, the second post may be the better recommendation candidate because recommendation isn't a literary competition—it's a personalized prediction problem.
18. Low Reach Doesn't Automatically Mean a Penalty
A post can receive low reach because it wasn't retrieved, wasn't relevant to enough viewers, competing candidates scored higher, users had already seen it, it encountered eligibility filters, predicted engagement was weaker, negative feedback predictions reduced its ranking, author diversity affected selection, or out-of-network competition was strong. (GitHub) Low reach by itself does not prove shadowbanning, suppression, or an account penalty.
19. The Reach Diagnostic
For Under The Hood Analyzer, this is the most useful way to diagnose a low-reach post:
This is much more useful than simply asking: “How many likes did it get?”
20. What Creators Should Actually Optimize
The open-source architecture suggests a useful direction:
- Make the audience clear: Help the system find the people most likely to care.
- Create reasons to engage: Likes, replies, reposts, quotes, clicks and shares are all modeled actions.
- Earn attention: Dwell-related behavior is also modeled.
- Create content worth sharing: Sharing and reposting are distinct recommendation signals.
- Avoid unnecessary negative feedback: Not Interested, mute, block and report are modeled negative actions.
- Don't obsess over one metric: The system combines multiple predicted behaviors.
Key Takeaway
A good post can get low reach because X optimizes recommendations for individual users, not for an objective measure of content quality. The current open-source architecture shows that candidate retrieval, user relevance, predicted engagement, competition, filtering, diversity and selection all sit between publishing a post and receiving recommendation-driven impressions. (GitHub)
So when a great post underperforms, the better question isn't “Why didn't X reward my post?” It's “At which stage did this post fail to create enough recommendation opportunities?” That is the Under The Hood way to investigate low reach.
Official Open-Source References
- • X / xAI — For You Algorithm repository — current architecture, Phoenix, Thunder, filtering, scoring and candidate pipeline. (GitHub)