How the X (Twitter) Algorithm Works in 2026: A Complete Breakdown
Part of: How to Grow Your Twitter/X Following Fast
Table of Contents
In March 2023, Twitter pushed a repository called the-algorithm to GitHub. It contained most of the recommendation stack behind the For You timeline: service names, scoring code, candidate sourcing logic. It left out the trained model weights and the data behind them. No other platform at that scale has done anything comparable. Instagram publishes explainer posts. TikTok runs a Transparency Center. X published home-mixer, cr-mixer, SimClusters, TwHIN, real-graph, earlybird and navi, with the plumbing between them.
That snapshot is years old now and the live system has moved. But the shape of it (source candidates, rank them cheaply, rank the survivors expensively, then filter and mix) is the architecture every large recommender uses, because it is the only one that fits the compute budget. Understanding that shape tells you more about why your posts travel than any amount of advice about posting at 9am.
What X published, and what it doesn’t tell you
Read the release as a blueprint. The code showed how candidates are fetched and which predictions the ranking model produces. It did not include the trained weights, and the multipliers visible in configuration files have been retuned repeatedly since.
X has also kept changing direction in public. Bookmarks were confirmed as a ranking signal after the release. Elon Musk has said at various points that links were downranked, then that the downrank was gone. More recently X has stated an intention to move recommendation toward Grok reading and scoring posts directly rather than leaning on the older engagement-prediction stack.
So treat any article handing you exact coefficients, including tables built from the 2023 config files, as historical. What survives is the ordering of the signals, and that ordering reflects what X wants the product to be rather than a temporary tuning choice.
One caveat worth stating plainly. The published pipeline governs the For You timeline. Search, Explore, notifications and the Following tab run on different logic, and confusing them is the most common source of bad advice about X.
Stage one: candidate sourcing and the social graph
Every time you open For You, the system assembles a pool of candidate posts, about 1,500 of them in the version X described on its own engineering blog, from which the final few dozen are chosen. That pool came from two families of sources, split close to evenly.
In-network candidates
These are posts from accounts you follow, retrieved from Earlybird, a real-time search index, and ranked partly by a model called Real Graph. Real Graph predicts how likely one user is to engage with a specific author based on their history together: replies, profile opens, time spent on their posts, direct messages.
Following is therefore a spectrum. Two people who both follow you sit in different tiers of eligibility, and the tier is earned through interaction rather than the follow itself. A follower who never engages decays toward invisibility.
Out-of-network candidates
These come from accounts you do not follow, by two distinct routes.
The first is graph traversal. The system looks at what the people you follow recently engaged with, and at what people who engaged with the same posts as you went on to engage with. If several accounts you follow reply to a stranger’s post, that post becomes eligible for your timeline. This is the mechanism behind a post travelling far past its author’s follower count.
The second is embedding similarity. SimClusters clusters accounts into large numbers of overlapping interest communities and represents both users and posts as sparse vectors over those communities. TwHIN produces dense embeddings of the same graph. A post can reach you because its embedding sits near yours, with no shared follower path at all.
Both routes explain why follower count is a weak predictor of reach on X. What matters more is whether the clustering can place you (whether your posting history puts you clearly inside a community) and whether accounts already central to that community engage with you. An account covering four unrelated subjects sits in the blurry middle of several clusters and gets sourced into fewer timelines than a smaller account with a sharp topical signature.
The practical instruction: post about one thing for a few weeks. Long enough for the system to place you. Then interact deliberately with the accounts at the centre of that community, because their engagement is what pulls you into the traversal route for their followers.
Stage two: the light ranker and the heavy ranker
Fifteen hundred candidates cannot all be scored by an expensive model, so the pipeline narrows in two passes.
The light ranker is a small, cheap model, logistic regression in the earliest published versions and later a compact neural network, that scores every candidate on a handful of instantly available features and keeps the top slice. It is crude by design. Its job is discarding obvious non-matches fast.
The heavy ranker is the real decision-maker. In the published version it was a neural network in the tens of millions of parameters, and it is multi-task: it produces an independent probability estimate for each candidate action. Will you like this? Reply to it? Repost it? Click through to the profile and stay for a couple of minutes? Watch half the video? Report it, block the author, or tap “Not interested in this post”?
Each predicted probability is multiplied by a weight, and the products are summed into one score. That sum is the ranking.
This structure explains a lot. The model asks what a specific viewer is likely to do next, and the answer changes per viewer. Post quality reaches the score only through that prediction. A post can rank well for someone predicted to reply even if nobody is predicted to like it.
Note what is absent from those predictions: follower count, account age, posting frequency, hashtags. None are inputs to the score directly. They matter only through the features and history feeding the predictions.
The engagement signals and their lopsided weights
The most useful thing in the 2023 release was the relative ordering of the weights applied to those predicted probabilities. The gaps span orders of magnitude.
A like sits near the bottom of the positive signals. A repost counts for a small multiple of a like. A reply counts for well over an order of magnitude more than a like. And a reply the original author then answers counts for several times more again, the largest positive weight in the published configuration.
Read that last one carefully. The model rewards conversation rather than applause, and it specifically rewards conversation the author joins. Your own reply behaviour is a ranking input.
| Signal | What the ranker predicts | Relative weight | What to do about it |
|---|---|---|---|
| Like | Viewer likes the post | Baseline positive | Nice to have. The cheapest signal and the least leveraged. |
| Repost | Viewer reposts it | A small multiple of a like | Write one line per post that is quotable standalone. |
| Reply | Viewer replies | Well over an order of magnitude above a like | End posts with something answerable. Leave a gap. |
| Author replies to that reply | A two-way exchange happens | Largest positive weight published | Answer your repliers within the first hour, every time. |
| Profile click that leads somewhere | Viewer opens your profile and then engages from it | Close to the reply weight | Clear bio, pinned post that explains you. |
| Video watch | Viewer watches about half | Positive but very small in the published file | Front-load the first three seconds; captions on. |
| Post opened and read | Viewer taps in and stays: the published label counted roughly two minutes on the post detail page | Close to the reply weight | Put detail below the fold so expanding is worth it. |
| Dwell in the timeline | Viewer stops scrolling | X describes time spent as an input; it was not one of the labelled weights in 2023 | Text and images that require reading hold the scroll without a tap. |
| Bookmark | Viewer saves the post | Positive; confirmed after the code release | Reference-shaped posts (lists, teardowns) earn these. |
| Not interested (the code calls it show less often) | Viewer asks for less of this | Large negative, far outweighing a like | Avoid bait formats aimed outside your niche. |
| Mute or block | Viewer mutes or blocks you | Large negative | X never shows you the count, so assume bait formats produce it. |
| Report | Viewer reports the post | Largest negative weight published, by a wide margin | One report can cost more than dozens of likes return. |
Why the negative weights matter more than the positive ones
The asymmetry is the point. In the published configuration, the penalty on a predicted report was larger in absolute terms than the reward for any positive action, and the negative-feedback label covering mutes, blocks and “show less often” carried a penalty many times the value of a like. The model is more concerned with not annoying you than with delighting you.
Two things follow. Engagement-bait that produces a burst of replies from people who then tap “Not interested in this post” can score worse than a quiet post. And the safest route to reach is being more specific, because people with no context for you are the ones who mute.
Negative feedback also feeds back into sourcing. The mixing layer applies what the code called feedback fatigue: once a viewer signals disinterest in an author, that author is suppressed for them for a period. A mute carries well beyond the single post.
Dwell, profile clicks, and the signals nobody optimises for
Dwell time is how long a post occupies the screen. X has publicly described time spent on a post as an input, though it was not one of the labelled weights in the 2023 file. It is the one positive signal that costs the viewer no action at all, so it accrues on every impression rather than on the sliver of people who tap something. Ten thousand people slowing down for a few seconds each is a lot of signal from an audience that never touched a button.
The formats that buy dwell are unglamorous: text long enough to need reading, a screenshot with small type, a chart, a numbered list, a slow-reveal video. The formats that lose it are one-liners that resolve instantly.
The profile click prediction is stranger and more valuable. The published label was a profile click the viewer then acted on: a like or a reply launched from your profile. A bare click on its own fell short of it. That is as close as the model gets to asking whether someone considered following you, and its weight sat up near the reply weights. A separate label covered the viewer who opened a post and stayed on it for roughly two minutes.
That mechanic is where reach converts into growth, and it is where most accounts leak. If a post pulls someone to a wall of context-free replies under a bio that says "thoughts are my own," they leave in a few seconds and the valuable half of that prediction never fires. Some people patch the first impression with services like LitFame so a new profile does not read as abandoned, but the fix that actually moves the prediction is a clear bio, a pinned post and a visible reason to stay.
What X Premium actually changes
X sells Premium and Premium+ subscriptions, and among the listed features is “prioritized rankings in conversations.” That is X’s own wording and worth reading precisely: it describes reply ranking, meaning where your reply lands in the thread under someone else’s post. It covers replies alone.
The distinction matters because reply position under a large account is some of the highest-value real estate on the platform. A well-placed reply under a post with a million impressions can outperform anything on your own timeline for weeks.
Whether subscription status also lifts For You ranking directly has been claimed and denied publicly, and the honest answer is that it is not verifiable from outside X. What is verifiable: longer posts, longer video, the edit window, fewer ads, and analytics on your own posts.
Buy it for reply placement if replying under bigger accounts is part of your plan. A subscription does not change what the heavy ranker predicts people will do with your writing.
Why link posts underperform
Posts with external links reach fewer people. That has been true for years, but the folklore explanation, a hardcoded link penalty, is mostly wrong, and the real one is more useful.
Nothing in the open-sourced ranking code applied a simple downrank for the presence of a URL. The effect emerges from what the model optimises. Every positive prediction concerns something the viewer does inside X: reply, repost, dwell, open the profile, watch the video. A link is an exit. It ends the session, it ends dwell accumulation, and clicking through substitutes for replying rather than leading to it. The model does not need a rule against links; it learns that link posts produce less of what it is scored on.
Musk has said links were explicitly deprioritised at one point and that the change was later reversed, so an explicit adjustment may have coexisted with the learned effect. The guidance is identical either way.
Post the substance natively. Write the argument, the finding, the walkthrough in the post itself so it earns dwell and replies on its own merits. Then put the link in a reply to your own post, or in your profile. The reply-link pattern is common because it works: the parent post gets ranked on what it is, and people who want the link go looking for it.
For You and Following are different products
The Following tab is a reverse-chronological feed of posts and reposts from accounts you follow. No candidate sourcing, no light ranker, no heavy ranker. For You is everything described above. Two entirely different sets of rules behind tabs that look identical.
The audience split matters more than most people account for. Committed Following users see everything you post, in order, and in bulk if you post a lot. For You viewers see one or two of your posts at most, chosen by the ranker, often hours later and often from outside your follower base.
So the strategies pull opposite ways. Posting fifteen times a day is harmless in For You, where diversity rules ensure only a couple surface per person, but punishing in Following, where your most loyal readers get all fifteen and some reach for the mute button, which then costs you in For You too.
Threads are the clearest case. In Following they appear as a wall. In For You, generally only the first post is a candidate, and later posts surface mainly for people who engaged with the opener. Write the first post so it stands alone. If the thread only makes sense whole, most viewers never see the whole.
Stage three: filtering, mixing and the trim rules
After the heavy ranker produces a ranked list, home-mixer applies heuristics and filters before anything reaches the screen. These are deterministic rules rather than learned scores, and several cap your reach regardless of how well you scored.
- Author diversity. Consecutive posts from the same author are penalised, so even a viewer who loves your work sees a limited number of them per session.
- Feedback fatigue. Authors a viewer has given negative feedback on are suppressed for that viewer for a period.
- Social proof for out-of-network content. Posts from accounts you do not follow generally need a connection through the graph. Content with no path to the viewer is filtered even when it scored well.
- Deduplication and visibility filtering. Blocked and muted accounts, posts already seen, and content restricted by safety models are removed here.
- Mixing. Ads, who-to-follow modules and prompts are interleaved, so organic slots are fewer than the timeline length suggests.
Community Notes sit alongside this. A post that receives a note shown to readers loses reach, and X has said noted posts are ineligible for revenue sharing. If you post claims, being wrong carries a distribution cost that engagement does not recover.
A posting routine built from the mechanics
- Block the hour after you post. Answer every reply in your own words, with something that invites another turn. The heaviest positive weight in the system is entirely within your control.
- End posts with an opening. Leave an unresolved detail, a contestable claim, something someone will want to correct. Replies come from tension.
- Buy dwell deliberately. A few times a week, post something that takes fifteen seconds to read rather than two.
- Fix the profile first. The profile-click prediction sits close to the reply weight, and most accounts fail it.
- Reply under bigger accounts in your cluster, daily. This feeds graph traversal and Real Graph at once, and it is where Premium’s conversation ranking pays.
- Keep links out of the parent post. Substance native, link in the reply.
- Stay in one lane for at least a month. The clustering needs a stable signal to place you.
- Watch for negative feedback as closely as likes. X does not report mute or block counts to you, so you work from proxies: impressions sliding relative to your follower count, replies turning hostile, one format quietly flatlining while others hold. Any of those is an earlier warning than a drop in likes.
What the algorithm will not do for you
Here is the uncomfortable part, from a company that sells growth services.
Likes are the lowest-weighted positive signal in the ranker, and they are precisely the signal that is easiest to buy, from LitFame or from anyone else. The gap follows from the mechanics: cheap signals are cheap because they are weak. Adding likes does not simulate replies the author answered, dwell, profile visits that turn into engagement, or bookmarks. Those are the weights that actually move ranking, and none is purchasable in a form that survives contact with the model.
What surface metrics genuinely change is human behaviour. A post with visible engagement gets read by people who would have scrolled past zeros, and a profile with a plausible follower count gets a fairer hearing than one with forty. That is real, and it matters on a launch day. It is a first-impression tool.
Ranking is a separate matter. Choosing between paid engagement and an hour a day replying inside your niche, the hour wins on the mechanics, and it wins comfortably. Run both if you want: you can create an account and put a package behind a launch post while you do the slow work underneath. Just be honest about which one compounds.
The accounts that grow durably on X are the ones the heavy ranker keeps predicting will start conversations. There is no shortcut to being that account. There is only the profile, the lane, the first line, and the hour after you post.
Frequently Asked Questions
Is the open-source X algorithm code still accurate in 2026?
The architecture is accurate; the details are not. Candidate sourcing, light ranker, heavy ranker and mixing still describe how For You is built. The trained weights were never published, and the configuration values visible in 2023 have been retuned many times since. X has also signalled it wants Grok to take over more of the ranking. Treat the released code as a structural map, not a current spec.
Do replies really matter more than likes on X?
Yes, by a wide margin. In the published scoring configuration a predicted reply carried well over an order of magnitude more weight than a predicted like, and a reply the original author answered carried several times more again. That was the largest positive weight in the file. Answering your own repliers raises how the post ranks for everyone else.
Does X Premium boost my posts in the For You timeline?
X documents “prioritized rankings in conversations,” which affects where your replies appear under other people’s posts. That is a genuine benefit if replying under large accounts is part of your strategy. A broader boost to your own posts in For You has been both claimed and denied publicly and is not verifiable from outside X. Buy Premium for reply placement, longer posts and analytics.
Why do my posts with links get so little reach?
Because every positive outcome the model predicts happens inside X: replies, reposts, dwell, profile visits, video watches. A link ends the session, so link posts historically generate less of what the ranker is scored on and land lower as a result. No explicit penalty is needed for the effect to show up. Put the substance in the post natively and the link in a reply to it.
What is the difference between the For You and Following tabs?
Following is a plain reverse-chronological list of posts and reposts from accounts you follow, with no ranking model involved. For You runs the full recommendation pipeline and mixes in content from accounts you do not follow. Your most loyal audience mostly lives in Following and sees everything you publish, which is why high-volume posting can drive mutes even while it looks harmless in For You.
How much damage does one mute or block actually do?
More than most people assume. Negative feedback predictions carried some of the heaviest weights in the published configuration, with reports outweighing any single positive action. Beyond the score itself, the mixing layer applies feedback fatigue, suppressing an author for any viewer who has signalled disinterest. A mute removes you from that person’s eligible candidate pool for a sustained period rather than costing you one impression.
Does buying likes help me rank higher on X?
Not meaningfully. Likes are the lowest-weighted positive signal the ranker predicts, and purchased engagement produces none of the heavy ones: replies you answered, profile visits that lead somewhere, dwell, bookmarks. What paid engagement genuinely changes is human perception, since readers judge a post with visible activity differently from one showing zeros. Use it as a first-impression tool for launches.
Should I post more often or less often to grow on X?
Author diversity rules cap how many of your posts any one person sees in a For You session, so extra volume has limited downside there. The real constraint is the Following tab, where committed readers see every post in sequence and volume drives mutes. Three to eight posts a day suits most accounts, and you should protect the replying time before adding anything on top.