PlayerSells
X Engagement Insights

What actually drives engagement on X

We scan posts across our tracked X catalog and measure every one against its own author's median, so format and timing effects show through instead of account size. Everything below is an association observed in that sample, not a proven cause, and where a difference is too small to matter we say so instead of leaving it out.

The short version

Across 173,123 original posts from 13,371 tracked accounts, every post is compared with the same account's other posts, so account size drops out of the comparison and what is left is the format or the timing. Each account counts once, however much it posts. The largest differences we can see are posts with no outbound link at +107%, posts with an image or video at +53%, posts that mention nobody at +44%. These are large differences by the standards of anything measurable from outside X, and each is a paired comparison inside the same account rather than a comparison between accounts.

  1. With image or videoimages and video

    Posts with an image or video run 53% above the same accounts' other posts (1,862 accounts). The 95% interval runs +46% to +62%, and 1,277 of 1,862 accounts moved that way. At the other end, text-only posts run -34%.

    +53%
  2. With videovideo specifically

    Posts with video run 23% above the same accounts' other posts (2,734 accounts). The 95% interval runs +19% to +29%, and 1,665 of 2,734 accounts moved that way. At the other end, posts without video run -19%.

    +23%
  3. 2-3 imageshow many images

    Posts with 2-3 images run 8% above the same accounts' other posts (1,442 accounts). The 95% interval runs +4% to +13%, and 783 of 1,442 accounts moved that way.

    +8%
  4. No linkoutbound links

    Posts with no outbound link run 107% above the same accounts' other posts (1,789 accounts). The 95% interval runs +96% to +116%, and 1,483 of 1,789 accounts moved that way. At the other end, posts with an outbound link run -52%.

    +107%
  5. Under 80 characterspost length

    Posts under 80 characters run 25% above the same accounts' other posts (2,329 accounts). The 95% interval runs +20% to +29%, and 1,420 of 2,329 accounts moved that way. At the other end, posts of 180 to 280 characters run -10%.

    +25%
  6. No hashtagshashtags

    Posts with no hashtags run 22% above the same accounts' other posts (1,533 accounts). The 95% interval runs +17% to +31%, and 927 of 1,533 accounts moved that way. At the other end, posts with three or more hashtags run -20%.

    +22%
  7. No mentionsmentioning other accounts

    Posts that mention nobody run 44% above the same accounts' other posts (1,507 accounts). The 95% interval runs +38% to +52%, and 1,055 of 1,507 accounts moved that way. At the other end, posts that mention 2 or more accounts run -36%.

    +44%
  8. Scheduler or APIposting client

    Posts pushed through a scheduler or the API run 17% below the same accounts' other posts (1,348 accounts). The 95% interval runs -23% to -13%, and 797 of 1,348 accounts moved that way. At the other end, posts written in an X app run +14%.

    -17%
  9. Within an hour of the last postgap since the last post

    Posts made within an hour of the previous one run 9% below the same accounts' other posts (2,623 accounts). The 95% interval runs -11% to -7%, and 1,494 of 2,623 accounts moved that way. At the other end, posts made more than a day after the previous one run +8%.

    -9%
  10. Opens a threadthreads

    Posts inside a thread run 39% above the same accounts' other posts (60 accounts). The 95% interval runs +6% to +75%, and 41 of 60 accounts moved that way.

    +39%

Every dimension we test appears in this list, including the ones where the answer was "no difference". Bar length is the size of the effect on a single scale shared by every chart on this page.

Accounts measured
13K
9.8K with a settled sample
Posts analysed
669K
in the current windows
Median engagement rate
0.056%
per follower, across accounts above 948 followers
Median reach
3.90%
of an account's followers see a post
Last computed
Aug 23
rollups run daily

Is your engagement rate good?

Work out your own first: take the median number of likes, reposts, replies and quotes across your last 20 original posts, divide by your follower count and multiply by 100. Median, not average, so one good post does not rewrite your baseline. Then find that number on the ladder below.

p100.001%
p250.006%
p50 (median)0.045%
p750.318%
p902.70%
p99370.4%
Engagement rate as a share of followers, across the 9,573 accounts we have scanned enough to measure. The axis is logarithmic, because the top and bottom of this population are about 462,938 times apart and a linear axis would flatten everything below the median into a single point.
Show the percentile table
Engagement rate percentiles
PercentileEngagement rate
10th percentile0.001%
25th percentile0.006%
50th percentile0.045%
75th percentile0.318%
90th percentile2.70%
99th percentile370.4%
Engagement rate bands across the measured accounts
BandEngagement rateAccounts
Top 1%370.4% and above96 of 9,573
Top 10%2.70% to 370.4%862 of 9,573
Top 25%0.318% to 2.70%1,436 of 9,573
Above the median0.045% to 0.318%2,393 of 9,573
Below the median0.006% to 0.045%2,393 of 9,573
Bottom 25%below 0.006%2,393 of 9,573

This ladder is built from the 9,573 accounts in our tracked X catalog with enough scanned posts to measure, every one of them above 948 followers, with a median of 975K. It is not a sample of X as a whole, and it is not representative of small accounts: engagement rate falls as follower counts rise, so a smaller account will normally place higher here than the comparison really justifies. Use it to locate a large account among its peers, not to grade a new one.

Follower count is not reach. For the median account in this group a typical post is seen by about 3.42% of its follower count, and 1.19% of those impressions turn into an interaction. That is why the follower-based rates on this page look so much smaller than the ones quoted in social media guides, which usually divide by impressions instead.

A percentile is a rank inside this group, not a grade. It says how many of the accounts we measure sit below a given rate, and nothing about whether that rate is good for your audience, your niche or what you post.

Every dimension we tested

Each bucket is compared with the same accounts' other posts, so a bucket below zero underperformed the people who posted it rather than underperforming X as a whole. Every chart shares one scale, the whisker is the 95% confidence interval, and the evidence column counts accounts rather than posts. Note the buckets overlap: a post with video is also a post with media.

Images and video

Clear effect

Posts with an image or video run 53% above the same accounts' other posts (1,862 accounts). The 95% interval runs +46% to +62%, and 1,277 of 1,862 accounts moved that way. At the other end, text-only posts run -34%.

Images and video: how each bucket compares with the same accounts' other posts.
Images and videoEffect chartEffect95% intervalAccounts
With image or video+53%+46% to +62%1.9K
Text only-34%-38% to -32%2.2K

Video specifically

Clear effect

Posts with video run 23% above the same accounts' other posts (2,734 accounts). The 95% interval runs +19% to +29%, and 1,665 of 2,734 accounts moved that way. At the other end, posts without video run -19%.

Video specifically: how each bucket compares with the same accounts' other posts.
Video specificallyEffect chartEffect95% intervalAccounts
With video+23%+19% to +29%2.7K
No video-19%-22% to -16%2.4K

How many images

Small effect

Posts with 2-3 images run 8% above the same accounts' other posts (1,442 accounts). The 95% interval runs +4% to +13%, and 783 of 1,442 accounts moved that way.

How many images: how each bucket compares with the same accounts' other posts.
How many imagesEffect chartEffect95% intervalAccounts
2-3 images+8%+4% to +13%1.4K
4+ images(not conclusive)+3%-2% to +6%979
1 image(not conclusive)-4%-8% to +1%1.1K

Outbound links

Clear effect

Posts with no outbound link run 107% above the same accounts' other posts (1,789 accounts). The 95% interval runs +96% to +116%, and 1,483 of 1,789 accounts moved that way. At the other end, posts with an outbound link run -52%.

Outbound links: how each bucket compares with the same accounts' other posts.
Outbound linksEffect chartEffect95% intervalAccounts
No link+107%+96% to +116%1.8K
With a link-52%-54% to -49%2.2K

Post length

Clear effect

Posts under 80 characters run 25% above the same accounts' other posts (2,329 accounts). The 95% interval runs +20% to +29%, and 1,420 of 2,329 accounts moved that way. At the other end, posts of 180 to 280 characters run -10%.

Post length: how each bucket compares with the same accounts' other posts.
Post lengthEffect chartEffect95% intervalAccounts
Under 80 characters+25%+20% to +29%2.3K
Over 280 characters(not conclusive)+5%+0% to +8%2.3K
80 - 180 characters-8%-10% to -6%3.0K
180 - 280 characters-10%-12% to -8%2.8K

Hashtags

Clear effect

Posts with no hashtags run 22% above the same accounts' other posts (1,533 accounts). The 95% interval runs +17% to +31%, and 927 of 1,533 accounts moved that way. At the other end, posts with three or more hashtags run -20%.

Hashtags: how each bucket compares with the same accounts' other posts.
HashtagsEffect chartEffect95% intervalAccounts
No hashtags+22%+17% to +31%1.5K
2 hashtags-10%-14% to -6%994
1 hashtag-12%-15% to -8%1.7K
3+ hashtags-20%-25% to -13%739

Mentioning other accounts

Clear effect

Posts that mention nobody run 44% above the same accounts' other posts (1,507 accounts). The 95% interval runs +38% to +52%, and 1,055 of 1,507 accounts moved that way. At the other end, posts that mention 2 or more accounts run -36%.

Mentioning other accounts: how each bucket compares with the same accounts' other posts.
Mentioning other accountsEffect chartEffect95% intervalAccounts
No mentions+44%+38% to +52%1.5K
1 mention-22%-25% to -19%2.0K
2+ mentions-36%-40% to -31%1.0K

Posting client

Clear effect

Posts pushed through a scheduler or the API run 17% below the same accounts' other posts (1,348 accounts). The 95% interval runs -23% to -13%, and 797 of 1,348 accounts moved that way. At the other end, posts written in an X app run +14%.

Posting client: how each bucket compares with the same accounts' other posts.
Posting clientEffect chartEffect95% intervalAccounts
X app+14%+9% to +19%1.0K
Scheduler or API-17%-23% to -13%1.3K

Gap since the last post

Small effect

Posts made within an hour of the previous one run 9% below the same accounts' other posts (2,623 accounts). The 95% interval runs -11% to -7%, and 1,494 of 2,623 accounts moved that way. At the other end, posts made more than a day after the previous one run +8%.

Gap since the last post: how each bucket compares with the same accounts' other posts.
Gap since the last postEffect chartEffect95% intervalAccounts
More than a day after the last post+8%+4% to +11%1.8K
1 - 6 hours after the last post+4%+1% to +6%2.9K
6 - 24 hours after the last post+4%+1% to +6%2.9K
Within an hour of the last post-9%-11% to -7%2.6K

Threads

Clear effect

Posts inside a thread run 39% above the same accounts' other posts (60 accounts). The 95% interval runs +6% to +75%, and 41 of 60 accounts moved that way.

Threads: how each bucket compares with the same accounts' other posts.
ThreadsEffect chartEffect95% intervalAccounts
Opens a thread+39%+6% to +75%60

One bucket in the language breakdown is not a language at all. X tags posts it cannot read as text with internal codes, and posts that are media only, with no text run 69% above the same accounts' other posts across 236 accounts. Read it as a format effect rather than a language one: these are posts that are nothing but an image or a video, with no text to read.

More distribution, or just more reaction?

A bigger like count can mean two completely different things: X showed the post to more people, or the same people reacted to it more. Measuring impressions and interactions as separate questions is the only way to tell them apart from outside, and it changes what the finding is worth.

Posts with no outbound link
Engagement
+107%
Impressions
+28%

Posts with no outbound link run 107% above the same accounts' other posts on engagement against +28% on impressions. Most of the difference is in how people react, not in how far the post travels.

Posts that are media only, with no text
Engagement
+69%
Impressions
no change

Posts that are media only, with no text run 69% above the same accounts' other posts on engagement, while reach stays flat. X is not handing these posts more distribution; the same audience simply reacts to them more once it sees them.

Posts with an image or video
Engagement
+53%
Impressions
+19%

Posts with an image or video run 53% above the same accounts' other posts on engagement against +19% on impressions. Most of the difference is in how people react, not in how far the post travels.

When posts land

By hour posted (UTC)

Across 170K posts, 00:00 UTC is the strongest hour at +10% and 06:00 UTC the weakest at -10%, a spread of 20 points. Each hour is measured against the same accounts posting at other hours, so this is a timing pattern rather than a map of when the big accounts happen to be awake.

Engagement by hour posted, UTCTwenty-four bars, one per UTC hour. Each bar shows how posts published in that hour compare with their own authors' median engagement. Bars above the centre line ran higher than the median, bars below ran lower.
0003060912151821
Above the authors' own mediansBelowScale: plus or minus 107%
Show engagement by hour posted, utc as a table
Engagement by hour posted, UTC
Hour (UTC)Vs author medianPosts
00:00 UTC+10%4.7K
01:00 UTC+7%4.6K
02:00 UTC+4%4.7K
03:00 UTC+4%4.6K
04:00 UTC+5%4.2K
05:00 UTC-2%4.2K
06:00 UTC-10%4.2K
07:00 UTC-3%4.7K
08:00 UTC-5%5.5K
09:00 UTC+7%6.1K
10:00 UTC+1%7.0K
11:00 UTC-3%7.6K
12:00 UTC-3%8.7K
13:00 UTC-1%10K
14:00 UTC-5%11K
15:00 UTC-6%12K
16:00 UTC-3%12K
17:00 UTC-4%11K
18:00 UTC+1%9.5K
19:00 UTC-2%8.7K
20:00 UTC-2%7.7K
21:00 UTC+5%6.6K
22:00 UTC+3%5.7K
23:00 UTC+7%4.7K

By day of week

Across 178K posts, Sunday is the strongest day at +18% and Tuesday the weakest at -24%. The edge is small, but it points the opposite way to the "post on weekdays" advice most guides repeat.

Engagement by day of weekSeven bars, one per weekday, Sunday first. Each bar shows how posts published on that day compare with their own authors' median engagement. Bars above the centre line ran higher than the median, bars below ran lower.
SunMonTueWedThuFriSat
Above the authors' own mediansBelowScale: plus or minus 107%
Show engagement by day of week as a table
Engagement by day of week
DayVs author medianPosts
Sunday+18%25K
Monday+10%41K
Tuesday-24%42K
Wednesday+2%14K
Thursday0%16K
Friday0%19K
Saturday+16%22K

Hours are UTC because that is how the posts are stored. Your audience's local clock is what matters, so read these as a shape rather than as a schedule.

What X's own ranking code says

X open-sourced its ranking stack, so some of this does not have to be guessed at. Where our measurements agree with it we say so, and where they point somewhere else we say that too.

X's ranking weights are public. In the open-sourced code, a reply is worth 10 times a like, a quote or a DM share matches a reply, and a copy-link share is the single largest positive signal. Profile clicks and raw dwell time are weighted at zero.

Source: xai-org/x-algorithm, published January 2026 and still updated

What we see: Our engagement figure counts likes, reposts, replies and quotes equally, so an account that earns replies rather than likes is worth more to the timeline than our rate suggests. Nothing on this page can see a copy-link share at all.

Negative signals dominate. A report, a mute, a block or a 'show less often' tap carries far more weight than any positive action.

Source: xai-org/x-algorithm ranking parameters, August 2026

What we see: None of this is visible from outside X, so no engagement rate published anywhere, ours included, can see the half of the ledger that punishes accounts.

There is no coded penalty for outbound links. X's head of product said in July 2026 that links no longer need to go in a reply, and that this had been the case for over a year. No URL rule appears in the published ranking code.

Source: Nikita Bier and Elon Musk, July 2026; xai-org/x-algorithm

What we see: We still measure posts carrying a link running well below the same accounts' other posts, and the gap shows up in impressions as well as in interactions. That is consistent with the ranking code and with the statements above: the likelier explanation is what link posts tend to BE - announcements, cross-promotion, automation - rather than a rule that punishes the URL.

Ranking now runs through a Grok-based model rather than hand-written rules, with X stating the goal of removing manual heuristics entirely.

Source: X engineering, January 2026 release; Elon Musk, October 2025

What we see: There is no rule left to game, which is worth holding on to while reading anything below. What we measure is how audiences behave around a format, not a setting anybody can toggle.

Only one post per conversation branch survives into the timeline: the pipeline keeps the highest-scored candidate and drops the rest. A thread is not several chances at distribution.

Source: Analysis of the published home-mixer pipeline, January 2026

What we see: We cannot check this. X stops exposing the conversation link on almost everything we sample, which is why the threads row on this page reports itself as unmeasurable rather than guessing.

Hashtags are deprecated. X banned them in promoted posts and its own leadership has asked people to stop using them, because retrieval no longer depends on them.

Source: X, 2024-2025

What we see: Our measurement agrees with the direction: across the catalog, posts carrying no hashtags outperform the same accounts' hashtagged posts. Whether that is the hashtag or the kind of post that tends to carry one is not something an observational dataset can separate.

There is no post-age decay function in the published ranking code, which is the basis for the widely repeated claim that a post is finished after 30 minutes.

Source: xai-org/x-algorithm ranking scorer, 2026

What we see: Our hour-of-day and day-of-week spreads are far narrower than our format effects, which is what you would expect if timing mattered much less than the advice industry says it does.

Strongest engagement for their size

Ranked by where each account's engagement rate falls among the accounts closest to it in follower count, so a focused account can outrank a much larger and sleepier one. The right-hand column is the number of original posts behind each row, because a rate measured on nine posts and a rate measured on ninety are not the same claim.

Accounts ranked by engagement rate relative to their size band
AccountFollowersEngagement rateVs accounts its sizeTypical postPosts measured
ナガノ
@ngntrtr
1.7M9.11%beats 100%Top 10% for its size153K10
Khyle.
@khyleri
2.2M6.32%beats 100%Top 10% for its size139K13
⁷⚯͛☔
@inuot7
9.9K828.1%beats 100%Top 10% for its size83K12
キュルZ
@kyuryuZ
902K8.71%beats 100%Top 10% for its size79K8
二宮和也
@nino_honmono
2.9M2.40%beats 100%Top 10% for its size70K41
Santapp
@Ppsanta
1.3M4.33%beats 100%Top 10% for its size56K10
TREASURE
@treasuremembers
5.4M0.929%beats 100%Top 10% for its size50K17
𝑩𝒓𝒐𝒐𝒌𝒆 𝑪𝒉𝒓𝒊𝒔𝒕𝒊𝒏𝒆 ☆
@barbiebrookeecc
100K28.3%beats 100%Top 10% for its size28K49
monaldo
@iammonaldo
10.0K80.3%beats 100%Top 10% for its size8.0K8
Nick shirley
@nickshirleyy
1.8M6.21%beats 100%Top 10% for its size111K10
ElQuackity
@ElAlexQuackity
3.3M2.19%beats 100%Top 10% for its size72K12
Things that make ya go Hmmm...🤔
@RichardBouselli
10.0K593.3%beats 100%Top 10% for its size59K20
Snow Man / MENT RECORDING
@SN__20200122
1.4M3.72%beats 100%Top 10% for its size52K52
Qiandai以宇
@qiandaiyiyu
945K5.40%beats 100%Top 10% for its size51K17
キヨ
@kiyo_saiore
2.4M1.96%beats 100%Top 10% for its size47K10
David Ornstein
@David_Ornstein
4.6M0.918%beats 100%Top 10% for its size42K56
Chin
@chinremoval
10.0K68.1%beats 100%Top 10% for its size6.8K35
Erling Haaland
@Erling
16M0.82%beats 100%Top 10% for its size128K12
♡graciepoo♡
@9wacie
10.0K493.0%beats 100%Top 10% for its size49K37
nora 🌱
@norafawn
1.3M3.63%beats 100%Top 10% for its size47K8
@Joaoguiavila
1.6M2.64%beats 100%Top 10% for its size42K12
ppnaravit
@ppnaravit
2.6M1.55%beats 100%Top 10% for its size40K24
𝒀𝒖𝒎𝒆 | ゆめ ✨
@yumechan_ji
901K4.14%beats 100%Top 10% for its size37K8
Bita
@Marghe_Bita
101K22.1%beats 100%Top 10% for its size22K26
Dhruv Rathee
@dhruv_rathee
3.3M1.35%beats 100%Top 10% for its size45K15

Buy or sell X accounts - escrow-protected

PlayerSells is an escrow marketplace for X accounts. Every deal is protected, with no middleman risk.

How we measure this

What counts as a good engagement rate on X?
Among the 9,573 accounts we can measure, the median engagement rate is 0.045% of followers and the top 10% start at 2.70%. Those accounts are all very large, and engagement rate falls as accounts grow, so a smaller account should expect a higher number. For an outside reference point, RivalIQ's 2024 industry benchmark report put the median X engagement rate at 0.029% of followers using the same denominator. Figures in the low single-digit percentages that get quoted elsewhere are almost always dividing by impressions, not by followers, and the two are not comparable.
What is this built from?
Engagement aggregates for 13,371 X accounts in our tracked catalog, built from 669,285 posts captured in the current scanning windows. Aggregates and best-post records are kept permanently; raw post text is not.
How is engagement rate calculated here?
Median interactions (likes, reposts, replies and quotes) on an account's original posts over a 30-day window, divided by its follower count. Medians rather than averages, because one viral post would otherwise make a quiet account look busy. Replies to other people, reposts and quote-posts of others are excluded from the sample - only the account's own original posts count.
What does the multiple mean?
Every post is measured against its own author's other posts. A 2.0x post did twice as well as that account normally does. Comparing raw like counts across accounts of different sizes would only tell you which formats large accounts happen to prefer, which is a fact about our catalog rather than about X.
How do you decide an effect is real?
Two tests, and a bucket has to pass both. First, at least 30 independent accounts have to have posted in and out of that bucket, because tweets from one account are not independent observations of how X behaves - accounts are. Second, the 95% confidence interval around the effect has to stay on one side of zero. Anything that fails either test is reported as no measurable effect rather than quietly left out, which is what the earlier version of this page did.
Why compare accounts within a size band?
Engagement rate falls predictably as accounts grow, so a flat threshold would just re-measure follower count. Each account is ranked against the follower decile it sits in, and the result is a percentile: 50 is the middle of that group, 90 is the top tenth. A percentile is uniform by construction, so the label is a statement of fact rather than an opinion about what good looks like.
Are these effects causes?
No, and we will not write them that way. We observe posts that already happened; we never assign an account to post at 9pm or to add a video. Every figure on this page is an association measured across a large sample, which is useful for spotting where to look and worthless as a promise. Where the number is small we say it is small.
Do impressions cover the same posts as follower counts?
Yes. View counts come back on effectively every original post we sample, so the impression-based rate and the follower-based rate rest on the same posts. They are still very different numbers: a typical post in our catalog reaches a small fraction of its account's follower count, so the impression-based rate is far higher. When you see an engagement rate quoted anywhere, check which denominator it used before comparing it to anything here.
How current are these numbers?
Counters are read at scan time and reflect the moment they were captured, not a live figure. A post keeps accumulating engagement after we look at it, so recent posts are measured slightly early. Aggregates are recomputed on a rolling schedule and the page shows when the freshest one ran.

What this cannot tell you

  • This is our tracked catalog, not X. The accounts with enough scanned posts to measure skew very large, so nothing here should be read as a benchmark for a small or new account.
  • We measure posts, not people. An account that engages heavily in replies to others will look quieter here than it is, because replies are excluded from the sample every rate is built on.
  • Accounts choose their own formats. An account that only uses video on its best material will show a video effect that is really a material effect, and no amount of sample size fixes that - it is why these are associations and not causes.
  • A difference of a few percent can be beyond statistical doubt and still be worthless. Where a dimension shows nothing, or shows something too small to matter, we say so rather than dropping it.
  • We cannot see deleted posts or anything from protected accounts, and we do not model reply quality, dwell time or negative feedback - all of which X's own ranking uses and none of which is visible from outside.

Go deeper on one question

Every finding on this page is also published as machine-readable JSON with its sample size, 95% interval and measurement date, under CC BY 4.0.

Keep going