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 3,005,030 original posts from 273,410 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 an image or video at +111%, posts with no outbound link at +75%, posts with video at +51%. 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 111% above the same accounts' other posts (34,012 accounts). The 95% interval runs +108% to +115%, and 26,652 of 34,012 accounts moved that way. At the other end, text-only posts run -50%.

    +111%
  2. With videovideo specifically

    Posts with video run 51% above the same accounts' other posts (40,129 accounts). The 95% interval runs +49% to +53%, and 28,234 of 40,129 accounts moved that way. At the other end, posts without video run -30%.

    +51%
  3. 2-3 imageshow many images

    Posts with 2-3 images run 7% above the same accounts' other posts (22,362 accounts). The 95% interval runs +6% to +9%, and 12,238 of 22,362 accounts moved that way. At the other end, posts with a single image run -7%.

    +7%
  4. No linkoutbound links

    Posts with no outbound link run 75% above the same accounts' other posts (23,109 accounts). The 95% interval runs +73% to +78%, and 17,768 of 23,109 accounts moved that way. At the other end, posts with an outbound link run -41%.

    +75%
  5. Over 280 characterspost length

    Posts over 280 characters run 15% above the same accounts' other posts (31,976 accounts). The 95% interval runs +14% to +16%, and 18,912 of 31,976 accounts moved that way. At the other end, posts under 80 characters run -8%.

    +15%
  6. No hashtagshashtags

    Posts with no hashtags run 7% above the same accounts' other posts (19,406 accounts). The 95% interval runs +6% to +9%, and 10,617 of 19,406 accounts moved that way. At the other end, posts with three or more hashtags run -5%.

    +7%
  7. No mentionsmentioning other accounts

    Posts that mention nobody run 17% above the same accounts' other posts (15,585 accounts). The 95% interval runs +16% to +19%, and 9,295 of 15,585 accounts moved that way. At the other end, posts that mention 2 or more accounts run -16%.

    +17%
  8. X appposting client

    Posts written in an X app run 20% above the same accounts' other posts (7,979 accounts). The 95% interval runs +17% to +22%, and 4,804 of 7,979 accounts moved that way. At the other end, posts pushed through a scheduler or the API run -10%.

    +20%
  9. Within an hour of the last postgap since the last post

    Posts made within an hour of the previous one run 13% below the same accounts' other posts (44,932 accounts). The 95% interval runs -14% to -13%, and 27,485 of 44,932 accounts moved that way. At the other end, posts made more than a day after the previous one run +8%.

    -13%
  10. Opens a threadthreads

    Posts inside a thread run 22% above the same accounts' other posts (17,761 accounts). The 95% interval runs +20% to +23%, and 10,728 of 17,761 accounts moved that way. At the other end, standalone posts run -18%.

    +22%

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
273K
166K with a settled sample
Posts analysed
12M
in the current windows
Median engagement rate
0.169%
per follower, across accounts above 984 followers
Median reach
8.95%
of an account's followers see a post
Last computed
Oct 11
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.003%
p250.022%
p50 (median)0.13%
p750.611%
p902.35%
p9982.6%
Engagement rate as a share of followers, across the 166,103 accounts we have scanned enough to measure. The axis is logarithmic, because the top and bottom of this population are about 25,017 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.003%
25th percentile0.022%
50th percentile0.13%
75th percentile0.611%
90th percentile2.35%
99th percentile82.6%
Engagement rate bands across the measured accounts
BandEngagement rateAccounts
Top 1%82.6% and above1,661 of 166,103
Top 10%2.35% to 82.6%14,949 of 166,103
Top 25%0.611% to 2.35%24,915 of 166,103
Above the median0.13% to 0.611%41,526 of 166,103
Below the median0.022% to 0.13%41,526 of 166,103
Bottom 25%below 0.022%41,526 of 166,103

This ladder is built from the 166,103 accounts in our tracked X catalog with enough scanned posts to measure, every one of them above 984 followers, with a median of 75K. 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 7.18% of its follower count, and 1.51% 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 111% above the same accounts' other posts (34,012 accounts). The 95% interval runs +108% to +115%, and 26,652 of 34,012 accounts moved that way. At the other end, text-only posts run -50%.

Images and video: how each bucket compares with the same accounts' other posts.
Images and videoEffect chartEffect95% intervalAccounts
With image or video+111%+108% to +115%34K
Text only-50%-51% to -50%39K

Video specifically

Clear effect

Posts with video run 51% above the same accounts' other posts (40,129 accounts). The 95% interval runs +49% to +53%, and 28,234 of 40,129 accounts moved that way. At the other end, posts without video run -30%.

Video specifically: how each bucket compares with the same accounts' other posts.
Video specificallyEffect chartEffect95% intervalAccounts
With video+51%+49% to +53%40K
No video-30%-30% to -29%29K

How many images

Small effect

Posts with 2-3 images run 7% above the same accounts' other posts (22,362 accounts). The 95% interval runs +6% to +9%, and 12,238 of 22,362 accounts moved that way. At the other end, posts with a single image run -7%.

How many images: how each bucket compares with the same accounts' other posts.
How many imagesEffect chartEffect95% intervalAccounts
2-3 images+7%+6% to +9%22K
4+ images+3%+2% to +4%12K
1 image-7%-8% to -6%15K

Outbound links

Clear effect

Posts with no outbound link run 75% above the same accounts' other posts (23,109 accounts). The 95% interval runs +73% to +78%, and 17,768 of 23,109 accounts moved that way. At the other end, posts with an outbound link run -41%.

Outbound links: how each bucket compares with the same accounts' other posts.
Outbound linksEffect chartEffect95% intervalAccounts
No link+75%+73% to +78%23K
With a link-41%-42% to -40%32K

Post length

Clear effect

Posts over 280 characters run 15% above the same accounts' other posts (31,976 accounts). The 95% interval runs +14% to +16%, and 18,912 of 31,976 accounts moved that way. At the other end, posts under 80 characters run -8%.

Post length: how each bucket compares with the same accounts' other posts.
Post lengthEffect chartEffect95% intervalAccounts
Over 280 characters+15%+14% to +16%32K
180 - 280 characters-1%-2% to -1%42K
80 - 180 characters-3%-3% to -2%54K
Under 80 characters-8%-9% to -7%41K

Hashtags

Small effect

Posts with no hashtags run 7% above the same accounts' other posts (19,406 accounts). The 95% interval runs +6% to +9%, and 10,617 of 19,406 accounts moved that way. At the other end, posts with three or more hashtags run -5%.

Hashtags: how each bucket compares with the same accounts' other posts.
HashtagsEffect chartEffect95% intervalAccounts
No hashtags+7%+6% to +9%19K
1 hashtag-4%-5% to -3%24K
2 hashtags-5%-6% to -4%13K
3+ hashtags-5%-7% to -4%11K

Mentioning other accounts

Clear effect

Posts that mention nobody run 17% above the same accounts' other posts (15,585 accounts). The 95% interval runs +16% to +19%, and 9,295 of 15,585 accounts moved that way. At the other end, posts that mention 2 or more accounts run -16%.

Mentioning other accounts: how each bucket compares with the same accounts' other posts.
Mentioning other accountsEffect chartEffect95% intervalAccounts
No mentions+17%+16% to +19%16K
1 mention-12%-13% to -11%24K
2+ mentions-16%-18% to -15%10K

Posting client

Clear effect

Posts written in an X app run 20% above the same accounts' other posts (7,979 accounts). The 95% interval runs +17% to +22%, and 4,804 of 7,979 accounts moved that way. At the other end, posts pushed through a scheduler or the API run -10%.

Posting client: how each bucket compares with the same accounts' other posts.
Posting clientEffect chartEffect95% intervalAccounts
X app+20%+17% to +22%8.0K
Scheduler or API-10%-12% to -8%11K

Gap since the last post

Clear effect

Posts made within an hour of the previous one run 13% below the same accounts' other posts (44,932 accounts). The 95% interval runs -14% to -13%, and 27,485 of 44,932 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%+7% to +8%46K
6 - 24 hours after the last post+4%+3% to +4%58K
1 - 6 hours after the last post(not conclusive)0%-1% to +0%53K
Within an hour of the last post-13%-14% to -13%45K

Threads

Clear effect

Posts inside a thread run 22% above the same accounts' other posts (17,761 accounts). The 95% interval runs +20% to +23%, and 10,728 of 17,761 accounts moved that way. At the other end, standalone posts run -18%.

Threads: how each bucket compares with the same accounts' other posts.
ThreadsEffect chartEffect95% intervalAccounts
Opens a thread+22%+20% to +23%18K
Single post-18%-19% to -17%8.0K

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 with only a few words of text run 41% below the same accounts' other posts across 117 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 an image or video
Engagement
+111%
Impressions
+42%

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

Posts with no outbound link
Engagement
+75%
Impressions
+20%

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

Posts in ART
Engagement
-63%
Impressions
-30%

Posts in ART run 63% below the same accounts' other posts on engagement against -30% 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 2.9M posts, 21:00 UTC is the strongest hour at 0% and 06:00 UTC the weakest at -5%, a spread of 5 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 111%
Show engagement by hour posted, utc as a table
Engagement by hour posted, UTC
Hour (UTC)Vs author medianPosts
00:00 UTC-1%89K
01:00 UTC-2%90K
02:00 UTC-3%88K
03:00 UTC-4%94K
04:00 UTC-5%76K
05:00 UTC-4%75K
06:00 UTC-5%86K
07:00 UTC-5%93K
08:00 UTC-4%108K
09:00 UTC-4%124K
10:00 UTC-3%129K
11:00 UTC-3%141K
12:00 UTC-3%154K
13:00 UTC-3%167K
14:00 UTC-4%173K
15:00 UTC-2%176K
16:00 UTC-3%171K
17:00 UTC-3%159K
18:00 UTC-2%149K
19:00 UTC-2%141K
20:00 UTC-1%131K
21:00 UTC0%116K
22:00 UTC-2%100K
23:00 UTC-1%90K

By day of week

Across 3.1M posts, Sunday is the strongest day at +5% and Wednesday the weakest at -3%. 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 111%
Show engagement by day of week as a table
Engagement by day of week
DayVs author medianPosts
Sunday+5%393K
Monday+1%483K
Tuesday-2%520K
Wednesday-3%472K
Thursday-2%430K
Friday-3%447K
Saturday+2%393K

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
佐野勇斗
@sanohayatodazo
718K16.7%beats 100%Top 10% for its size119K11
⁷⚯͛☔
@inuot7
9.9K828.1%beats 100%Top 10% for its size83K12
あぱる。と
@__aprt
64K116.0%beats 100%Top 10% for its size74K9
Bashar Inshasi
@BasharInshasi
9.2K438.8%beats 100%Top 10% for its size40K9
柴犬·͜·♡もも
@momonosekaiii
143K28.1%beats 100%Top 10% for its size40K25
ライトノベル作家さくやみなみ
@398to373
9.9K384.9%beats 100%Top 10% for its size38K34
小川 史記(BUDDiiS)&STAFF
@fuminori_ogawa
92K48.7%beats 100%Top 10% for its size38K13
Nhim
@Nhim_Art
240K14.2%beats 100%Top 10% for its size34K13
おぞね
@kedama_tori_ki
125K26.0%beats 100%Top 10% for its size32K8
野口 衣織
@noguchi_iori
562K9.13%beats 100%Top 10% for its size51K17
♡graciepoo♡
@9wacie
9.9K493.0%beats 100%Top 10% for its size49K37
Kat
@kwaterin
344K13.8%beats 100%Top 10% for its size45K36
CloZzY
@clozzy01
70K62.2%beats 100%Top 10% for its size42K8
ケビン
@kevinx_official
79K50.7%beats 100%Top 10% for its size37K8
OPAL
@ArtOfOpal
83K45.0%beats 100%Top 10% for its size35K13
👩‍⚕️
@jisooloaded
9.8K358.3%beats 100%Top 10% for its size35K9
住 人
@juminhaw777
100K44.9%beats 100%Top 10% for its size35K9
あんぢい
@anzai_teachco
136K25.2%beats 100%Top 10% for its size33K27
Only The Truth
@IMELTSN0WFLAKES
10K316.9%beats 100%Top 10% for its size32K21
R君
@Rkun_pixiv
220K13.6%beats 100%Top 10% for its size30K26
ひろまや
@hiromaya_art
9.4K287.1%beats 100%Top 10% for its size27K20
oh
@MsUntrappable
9.5K269.8%beats 100%Top 10% for its size26K12
樱岛诗诗
@Yindaoshishi
159K16.0%beats 100%Top 10% for its size25K16
DiscussingFish
@DiscussingFish_
150K17.2%beats 100%Top 10% for its size25K31
nate
@nathantoseeheer
9.9K240.7%beats 100%Top 10% for its size24K30

Buy or sell Twitter (X) accounts - escrow-protected

PlayerSells is an escrow marketplace for Twitter (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 166,103 accounts we can measure, the median engagement rate is 0.13% of followers and the top 10% start at 2.35%. 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 273,410 X accounts in our tracked catalog, built from 12,145,377 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