X Algorithm November 2026: How X Ranks Posts, From the Code

How the X algorithm ranks posts in November 2026, with the real weights from X's open-source code, recent changes, and what to do in the first 2 hours.

X Algorithm November 2026: How X Ranks Posts, From the Code
Topic
Marketing workflows
Published
Reading time
17 min
On this page
  1. 01How does the X algorithm work?
  2. 02The X algorithm weights, from the code
  3. 03Which actions hurt your reach on X?
  4. 04How does a post get into someone’s feed?
  5. 05The first 2 hours: the boost for smaller accounts
  6. 06What changed in the X algorithm in October and November 2026?
  7. 07What to do with this
  8. 08What the code can’t tell you
  9. 09Frequently Asked Questions
  10. 10Conclusion

The X algorithm predicts how likely each viewer is to take each action on your post, multiplies each prediction by a fixed weight, and adds them up. That sum decides if and where your post shows in their For You feed. In the code X published, a copied link or a reply from a mutual follow is weighted about 30 times a like, and a report about 355 times a like in the other direction.

Most guides that rank for “X algorithm” still quote the 2023 Twitter weights: reply 13.5, “reply engaged by author” 75, report -369. Those numbers come from an older system. X now publishes the code of its For You feed at github.com/xai-org/x-algorithm, and the weights in it are different.

This guide reads that code. It started as Shann Holmberg’s breakdown on X and its infographic. Shann works with the X algorithm every day: as of late October 2026 he has 37K followers on X and 6M impressions in the last 90 days. We checked every number against X’s code on 3 November 2026, at commit b220448. Where we couldn’t confirm something, we say so.

Key Takeaways

  • X scores each post as the sum of “weight × predicted chance” for about 20 actions. The weights are not points per action, and X’s own code comments say so.
  • Relative to a like (weight 0.66): copying the link is 30x, a reply 7.6x, a quote 7.6x, a DM share 7.6x, a follow 6x, a repost 1.5x. A reply on a mutual follow’s original post is 30x.
  • Negative actions weigh far more: report -355x, mute -89x, “not interested” -79x, block -47x. Bookmarks have no weight in the formula.
  • Posts older than 48 hours are dropped. Posts from accounts the viewer doesn’t follow are multiplied by 0.75.
  • Accounts with 50,000 followers or fewer can get one new original post lifted to about 16th place in a feed, while the post is under 2 hours old and under 200 Home views.

How does the X algorithm work?

Every time you open the For You tab, X builds your feed from scratch in four steps:

  1. Candidates. It pulls posts from accounts you follow (a service the code calls Thunder) and from accounts you don’t follow (Phoenix retrieval and SimClusters).
  2. Filters. It drops posts you can’t or shouldn’t see: too old, already seen, from muted or blocked accounts, muted keywords, and more.
  3. Scoring. A transformer model (Phoenix) predicts the chance that you will like, reply, repost, quote, share, dwell, follow, mute, report and so on. A value model turns those predictions into one score.
  4. Selection. Multipliers for out-of-network posts and repeated authors adjust the score, and the top posts fill your feed.
X algorithm weights vs a like: copy link and mutual-follow reply 30x, reply 7.6x, repost 1.5x, report -355x, mute -89x
X algorithm weights vs a like: copy link and mutual-follow reply 30x, reply 7.6x, repost 1.5x, report -355x, mute -89x

The README describes the same flow. It also notes what X left out: some systems, such as those that use Grok to predict rule violations, are not in the repo (TechCrunch, 13 August 2026).

The X algorithm weights, from the code

The weights live in home-mixer/params/param.rs. The “x like” column divides each weight by the like weight of 0.66, which is how Shann’s infographic presents them.

Action the viewer might takeWeightx like
Share by copying the link20.030x
Reply, when viewer and author follow each other5.0 + 15.030x
Reply5.07.6x
Quote post5.07.6x
Share by DM5.07.6x
Follow the author from the post4.06x
Share (the share button)2.03x
Repost1.01.5x
Like0.661x
Click0.30.45x
Open a link0.20.3x
Open a video0.020.03x
Bookmarknot in the formula0

The mutual-follow boost only applies to original posts. The code checks that the post is not a reply or a repost and that the viewer and the author follow each other. Then the reply weight goes from 5 to 20, four times a normal reply.

Some weights are zero today: profile clicks, video quality views and “post video” (called “react with video” until 30 October). Time spent counts through three smaller signals: a dwell weight of 0.05, a continuous dwell-time weight of 0.006 and a click dwell-time weight of 0.4. The code doesn’t say which unit the continuous values use, so don’t read those as “per second”.

The infographic notes that a video must be at least 10 seconds long to earn a quality view. That rule is in the code (MinVideoDurationMs = 10000), but the quality-view weight has been 0.0 since the 25 August snapshot. Today it adds nothing to the score directly.

What “weight × predicted chance” means

This is the part most guides get wrong. The weight multiplies the model’s prediction for one specific viewer. It does not multiply your raw counts.

X’s own comment in the code puts it plainly: reading weight ratios as count swaps, like “one report cancels 468 likes”, is wrong: “this is incorrect because the weights apply to the predicted probabilities rather than raw counts”. A copied link is not worth 30 likes. The weight is high because copying a link is rare, so the model’s predicted chance of it is small. A big weight lets that small prediction still move the ranking.

What you can take from the table: the algorithm cares most about actions that show a post is worth passing on or talking about. Copying the link, sending it in a DM, quoting it and replying to it all sit well above a like.

Citation Capsule: In X’s open-source For You code (commit b220448, 3 November 2026), each post’s score is the sum of each action’s weight times the model’s predicted chance of that action. A like weighs 0.66, a reply 5.0, a DM share 5.0, a copied link 20.0 and a report -234.0 (xai-org/x-algorithm). The weights apply to predictions, not to raw counts.

Which actions hurt your reach on X?

ActionWeightx like
Report the post-234.0-355x
Mute the author-58.8-89x
“Not interested”-52.272-79x
Block the author-31.2-47x
Scroll past without dwelling-0.02-0.03x

The report weight looks extreme. The code comment explains why: “the baseline probability of a Report is more than 1000x lower than a Like”. The large weight is there so that a rare prediction can affect the ranking at all.

Two consequences for anyone posting for growth:

  • Rage bait has a real cost. A post that a viewer is likely to mute or mark “not interested” loses far more than a few likes can win back for that viewer.
  • Mass reporting is less powerful than people fear. The same comment says the effect is personal. Reports from bad actors “will primarily affect recommendations for users who are similar to the bad actors”, and only actions on posts served in the Home feed count.

How does a post get into someone’s feed?

The 48-hour limit

The age filter drops any post older than 48 hours before scoring (MAX_POST_AGE = 48 * 60 * 60 seconds in home-mixer/params/config.rs). After two days, a post can’t reach new For You feeds through this pipeline.

Out-of-network posts score 75%

When a viewer doesn’t follow you, your post’s score is multiplied by 0.75 (OonWeightFactor in vm-ranker/params.rs). To beat a post from someone they follow, yours has to be predicted about a third more engaging.

Your replies and reposts mostly reach followers

A filter removes replies and reposts from accounts the viewer doesn’t follow (oon_retweet_reply_filter.rs). A setting that would let some of these replies through is off. So a reply mostly reaches people who already follow you, through the For You feed. Originals are how you reach new people.

2,800 posts, with a fair share for each source

X scores about 2,800 posts per feed build (PhoenixScoresResultSize = 2800). When more candidates than that come in, a “fair share” filter now keeps a slice from each source in proportion to its size, instead of cutting from one end. This was switched on in the 22 October snapshot.

Your 1st, 2nd and 3rd post in one feed

The ranker reduces repeated posts from the same author in one feed. With the current settings (decay 0.5, floor 0.25), your best post keeps 100% of its score, your second 62.5% and your third 43.75%. It levels off at 25%. This happens per feed request, not per day.

Only the Home feed counts

The code comment is direct: for an action to count, “it must take place on a post served in Home Timeline. Directly navigating to a post (i.e., coordinating via groupchat) has no ranking impact.” Sending your post to a group chat and asking for likes doesn’t do what people think it does.

The first 2 hours: the boost for smaller accounts

The cold-start rules in home-mixer/scorers/author_cold_start.rs and param.rs give new posts from smaller accounts a fair test. A post qualifies when all of these are true:

  • It’s an original post, not a reply or a repost.
  • The author has 50,000 followers or fewer.
  • The post is under 2 hours old (7,200 seconds).
  • It has fewer than 200 views in the Home feed.

For each feed, X picks one qualifying post and lifts its score to match the post in 16th place (slot 15, counting from 0). A post that already ranks higher keeps its place. Because it is one post per feed, many qualifying posts compete for it.

The pick uses a method called Thompson sampling. X estimates each qualifying post’s like rate from its likes per Home view so far, draws a random sample from that estimate, keeps the two best draws, and lifts the one the model scores higher. So early likes from Home viewers matter more here than the 0.66 weight suggests. It’s still a chance, not a guarantee, and some viewers are in test groups where only some authors qualify.

X algorithm timing: the 2-hour boost for new posts, the 48-hour cut-off, October 2026 weight changes, and a do and don't list
X algorithm timing: the 2-hour boost for new posts, the 48-hour cut-off, October 2026 weight changes, and a do and don't list

This is why the first 2 hours matter. If the post earns replies, quotes and shares in that window, the model has real signals to score it on once the boost ends.

What changed in the X algorithm in October and November 2026?

X republishes the repo almost daily. We compared the weight file across every commit from 9 October to 3 November. Dates are commit dates (UTC).

DateChange in the code
13 OctLike weight 0.5 to 0.6. Continuous time spent 0.004 to 0.006 (50% more). Opening a video 0.07 to 0.02
13 OctREADME: retrieval is now also trained to surface posts people read all the way through
14 OctLike weight 0.6 to 0.66. “Not interested” -47.52 to -52.272 (10% more)
21 OctFair-share ranking added, switched off
22 OctFair-share ranking switched on
21 to 29 OctNo change to any of the action weights above
26 OctREADME: the Brazil 2026 election filter was removed from For You
30 OctThe “react with video” weight was renamed “post video”. It is still 0.0
31 OctThe video carousel now drops videos rated high risk for brand safety by default
3 NovThe ranker can now report the top three actions behind each post’s score
30 Oct to 3 NovNo change to any action weight, the 48-hour limit, the 0.75 out-of-network factor, the 2,800-post limit, fair share, author diversity or the cold-start boost

The direction since September is clear. Likes count a bit more, time spent on a post counts more, and a video open counts less. Negative feedback got heavier.

What to do with this

This is our reading of the weights. It follows the infographic, with one addition from the cold-start code.

Do:

  • Post when you can reply in the first 2 hours. That’s the cold-start window, and replies weigh 7.6 times a like. Early likes help a post win the cold-start slot.
  • Write posts people want to quote or reply to. Give a clear opinion, a number they can argue with or a question you can answer well.
  • Make the detail useful enough to send in a DM or copy the link. Checklists, data, templates and screenshots that teams pass around.
  • Reply back to accounts that follow you. A mutual follow lifts the reply weight from 5 to 20 on your originals.
  • Post originals to reach beyond your followers. Replies and reposts from accounts a viewer doesn’t follow are filtered out.

Don’t:

  • Post and disappear for the 2-hour window.
  • Bait replies you can’t back with substance. The mute and “not interested” weights cost far more than the reply weight earns.
  • Write what gets muted or blocked.
  • Post for bookmarks. They aren’t in the formula.
  • Assume a post shared in a group chat counts. Only actions on posts served in the Home feed count.

If your team posts for a company account, the 2-hour window is the hard part. A simple agent workflow helps here. It can draft posts, flag new replies to answer, and remind the author when a post is still inside the window. We’ve written about building an X posting workflow with n8n and Claude and a brand-monitoring agent with Make and Claude. To plan posts around the 2-hour window, see how to build an AI content calendar in Notion with Claude. For the same workflow on LinkedIn, see how to automate LinkedIn content with Claude and Make. Keep a person writing the replies. The weights reward real conversations, and the negative weights punish the fake ones.

Citation Capsule: On X, posts older than 48 hours are dropped before scoring, and posts from accounts a viewer doesn’t follow are multiplied by 0.75. Authors with 50,000 followers or fewer can have one original post lifted to about 16th place in a feed while it is under 2 hours old and under 200 Home views (xai-org/x-algorithm, checked 3 November 2026).

What the code can’t tell you

Read every number here with four limits in mind:

  • It’s a snapshot. The weight file says it is “mirrored from config feature-switch defaults” with a sync date. X can change the live values any day, and it often does.
  • Experiments run on top. Many settings in the repo are experiment flags. Your feed may be in a test with different values.
  • A second copy shows older values. The vm-ranker/params.rs file still lists the pre-October defaults (like 0.5, “not interested” -47.52). We use the values in home-mixer, the file synced from X’s config. Both read the same setting names, so the live config decides.
  • The model is the big unknown. The weights are public. The predictions come from a trained model that learns from each viewer’s history. Two people can see very different scores for the same post.

We found no Premium or verified multiplier and no link penalty in the ranking weights of this snapshot. That doesn’t prove neither exists anywhere in X’s systems, since some parts are not open-sourced.

Frequently Asked Questions

How does the X algorithm decide what to show?

For each viewer, X pulls candidate posts from accounts they follow and accounts they don’t, filters out old, seen and blocked content, and predicts the chance of about 20 actions. Each prediction is multiplied by a weight and summed. The highest scores, after adjustments for out-of-network posts and repeated authors, fill the For You feed.

What counts most in the X algorithm?

In the November 2026 code, copying a post’s link (weight 20) and replying to a mutual follow’s original post (5 + 15) are the highest positive weights, both about 30 times a like. Replies, quotes and DM shares are next at 5.0 each, about 7.6 times a like. A repost is only 1.5 times a like.

Do bookmarks help on X?

Not in the ranking formula. The value model in X’s open-source code has no bookmark weight, so a predicted bookmark adds nothing to a post’s score. Bookmarks may still be useful to you and your readers. They just don’t push a post into more feeds through this formula.

How long does a post stay in the X algorithm?

48 hours. The age filter drops posts older than that before scoring. The extra cold-start boost for accounts with 50,000 followers or fewer only applies in the first 2 hours, and only until the post has 200 views in the Home feed.

Does X show my posts to people who don’t follow me?

Yes, but at a discount. Posts from accounts the viewer doesn’t follow have their score multiplied by 0.75. Your replies and reposts are filtered out for non-followers, so original posts are the main way to reach new people.

Is the 2023 Twitter algorithm still accurate?

No. The 2023 release used different models and weights, such as 13.5 for a reply and 75 for a reply the author engages with. The current For You code at xai-org/x-algorithm uses a new value model with weights like 5.0 for a reply and 0.66 for a like. Guides quoting the 2023 numbers are out of date.

How often does the X algorithm change?

The code is republished almost daily, and settings change often. In October 2026, the like weight changed twice, time spent and “not interested” were reweighted, and fair-share ranking was switched on. From 30 October to 3 November, no action weight changed. Check the commit history before you trust any number, including ours.

Conclusion

The X algorithm in 2026 is easier to read than it was. The weights are public, and they point in one direction: X rewards posts people pass on and talk about, and it punishes posts people want to hide.

For a team that posts on X, the plan is short:

  • Post originals your audience would send to a colleague.
  • Be there for the first 2 hours and reply to every good response.
  • Write for the reply and the share, not the like or the bookmark.
  • Stay off the mute button. The “not interested” weight is 79 times the like weight.

How we keep this up to date: we recheck this guide against X’s repo every month and update the numbers when the code changes. Last checked: 3 November 2026, at commit b220448.

Sources: xai-org/x-algorithm (commit b220448, checked 3 November 2026), and Shann Holmberg’s post and infographic on X (26 October 2026).

Share this article

Keep reading

Planning a launch or an announcement

Book a free 30-minute strategy call. You leave with a first plan for your next milestone.

Or request a proposal

What we go through

  1. Where you areWe review your product, your traction and your launch date.
  2. What to prioritizeWe review your channel mix and budget, and tell you what to do now and what to skip.
  3. Your first planYou leave with a first GTM plan, whether you hire us or not.

With Luka Mrkić, Head of BD

Espressio

Free strategy call

  • 30 min
  • You get the details by email when you book

What you get

  • A first GTM plan that you keep
  • Advice from the team behind 400+ clients since 2019

Book a free strategy call

Trusted by

  • Base
  • caffeine