What does the X algorithm reward in 2026?

Engagement the system predicts you'll earn — and the released scorer names exactly which kinds. The positive signals are favorites, replies, retweets, quotes, photo expands, clicks, profile clicks, video quality views, shares (including via DM and copy-link), dwell time, and following the author. The single heaviest behavioral signal across X's public statements and the code structure is the one hardest to fake: people stopping to read (dwell) and replying. The negatives — reports, blocks, mutes, "not interested" — subtract. Reward follows genuine engagement, not volume or tricks.

"What does the algorithm want" has an unusually precise answer in 2026, because the scorer that combines the signals is in the open release. It's a weighted sum of predicted engagement actions — and you can read the full list.

The positive signals, verbatim

The weighted scorer sums these predicted actions (each multiplied by a withheld weight):

signalwhat it rewards
favorite, reply, retweet, quoteThe classic engagement actions — likes, replies, reposts, quote-posts.
dwell & continuous dwell timePeople stopping to actually read. Hard to fake, heavily indicative.
click, profile click, quoted clickCuriosity that converts — opening the post, your profile, a quoted post.
photo expand, video quality viewMedia that holds attention — expanded images, watched video.
share, share via DM, share via copy-linkContent worth sending to someone — the strongest "this is good" signal.
follow authorA post so good the viewer follows you off it.
CODE-CURRENT0bfc279verified 2026-06-12
The current WeightedScorer combines predicted probabilities for: favorite, reply, retweet, photo expand, click, profile click, video quality view, share, share via DM, share via copied link, dwell, quote, quoted click, continuous dwell time, follow author, not interested, block author, mute author, and report.
xai-org/x-algorithm — home-mixer/scorers/weighted_scorer.rs, lines 44–68 (compute_weighted_score)as of the May 15, 2026 release

Reward is predicted, not counted

A subtle but important point: the scorer doesn't tally your existing likes — it uses predicted scores from the Phoenix model for each action. The system is guessing how likely this viewer is to favorite, reply, dwell, or share this post, then ranking on that prediction. You're not rewarded for past engagement; you're ranked on predicted future engagement.

CODE-CURRENT0bfc279verified 2026-06-12
The Phoenix source is the out-of-network retrieval path: its enable() requires that the request is not in_network_only, so it contributes candidates from beyond the viewer's follow graph.
xai-org/x-algorithm — home-mixer/sources/phoenix_source.rs, enable gate including !query.in_network_only (L63-L67)as of the May 15, 2026 release

The negatives subtract

Four signals carry negative weight: report, block-author, mute-author, and not-interested. Content that provokes these is pushed down, and the scorer has explicit handling for net-negative posts. Avoiding the negatives matters as much as earning the positives.

CODE-CURRENT0bfc279verified 2026-06-12
The model explicitly predicts negative actions — not interested, block author, mute author, report — and these carry negative weights in the final score, pushing down content a user would likely dislike.
xai-org/x-algorithm — README.md (Scoring and Ranking) + home-mixer/scorers/weighted_scorer.rs lines 64–67as of the May 15, 2026 release

What the code doesn't say

▲ What the code doesn't say

The weights themselves. We know the list of rewarded actions and that each has a multiplier; the actual numbers (is a reply worth more than a like? how much?) live in the withheld params module. So "optimize for replies over likes" is informed inference from the structure and X's public statements — not a number the code hands us.

UNKNOWN0bfc279verified 2026-06-12
The numeric values of the current weights are not included in the open-source release: weighted_scorer.rs references a params module (e.g. p::FAVORITE_WEIGHT, p::REPLY_WEIGHT) whose values are not present anywhere in the published repository.
xai-org/x-algorithm (verified by direct inspection of the full repository tree at the pinned SHA) — home-mixer/scorers/weighted_scorer.rs references crate::params; no params definitions with weight values exist in the releaseabsence verified at the pinned SHA; values may be published in a future release

What to do with this

Write for the signals that are hard to fake: content that earns dwell (worth reading slowly), replies (worth responding to), and shares (worth sending to a friend). Those are the actions the system predicts and rewards, and they're the ones engagement tricks can't manufacture. xDoctor scores your archive against this exact signal set so you can see which ones you actually earn.

← Growth mechanics