Does X deboost posts with external links?

Not in the open-source algorithm. This is one of the most repeated beliefs about X, so it is worth being precise: the released code contains no link-penalty, no URL-deboost, and no "external link" downranking mechanism anywhere in the ranking pipeline. What the code does contain is a link-click signal in the scoring formula — counted as a positive engagement prediction, not a penalty. The "links kill reach" rule is folklore the current published code does not support. If link posts underperform for you, the code points to ordinary causes, not a hidden link tax.

"Don't put links in your posts, the algorithm buries them" is received wisdom on X. It may even be good practical advice in some cases. But as a claim about the algorithm, it deserves the same sourcing as everything else here — and the released code does not back it up.

There is no link-penalty in the code

We searched the released ranking pipeline — every filter, every scorer, the candidate model — for any mechanism that penalizes, deboosts, or downranks posts for containing a URL or external link. There isn't one. No link filter, no URL-based score reduction, no "external" handling in the scoring path.

CODE-CURRENT0bfc279verified 2026-06-12
The released ranking pipeline contains no link-penalty, URL-deboost, or external-link downranking mechanism. The only link-related signal is click_score in the weighted scorer, which is a positive term. Claim is scoped to the open release at the pinned commit.
xai-org/x-algorithm — absence across home-mixer/filters/* and home-mixer/scorers/*; only link reference is click_score in weighted_scorer.rs L53no link-deboost present in the open release; cannot prove absence in withheld layers
The only place links appear in ranking is the opposite of a penalty:

home-mixer/scorers/weighted_scorer.rs · L53@ 0bfc279
53    + Self::apply(s.click_score, p::CLICK_WEIGHT)

A predicted click is a positive term in the weighted sum. A post whose link people actually click is predicted to earn click score, which adds to its rank. The code's stance on links is that engagement with them is good, not that their presence is bad.

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

Why the belief persists anyway

Three ordinary, code-supported reasons a link post can underperform — none of them a link tax:

real causewhere it lives in the code
The post earns less dwell and fewer repliesLink posts that send people off-platform can score lower on the dwell and reply signals — that's the engagement, not the URL.
It reads as promotional to the spam screenA link wrapped in promo language is judged by the spam classifier on its content — again, not the link itself.
Out-of-network climbIf it's reaching beyond your followers, the OON handicap applies regardless of links.

What the code doesn't say

▲ What the code doesn't say

Whether a link penalty exists outside the released code. Our claim is bounded: no such mechanism is in the open-source ranking pipeline at the pinned commit. X could apply link handling in a layer that isn't published, and the absent params module could weight click score in ways we can't see. We can say the folklore isn't in the code; we can't prove a negative about everything X runs. That honest boundary is exactly the point.

CODE-CURRENT0bfc279verified 2026-06-12
The released ranking pipeline contains no link-penalty, URL-deboost, or external-link downranking mechanism. The only link-related signal is click_score in the weighted scorer, which is a positive term. Claim is scoped to the open release at the pinned commit.
xai-org/x-algorithm — absence across home-mixer/filters/* and home-mixer/scorers/*; only link reference is click_score in weighted_scorer.rs L53no link-deboost present in the open release; cannot prove absence in withheld layers

What to do with this

Stop optimizing against a rule that isn't in the code. If a link post underperforms, look at the real signals — did it earn dwell, replies, clicks? — rather than blaming the URL. The scoring formula tells you what actually counts, and xDoctor measures those signals from your archive instead of chasing folklore.

← Reach problems