Free tool

Best Time to Post on X (Twitter)

A day-by-hour heatmap of when posts on X actually get seen, converted to the timezone your readers are in and weighted for the kind of account you run. No handle, no lookup, nothing sent anywhere: it is a published benchmark moved onto your clock, which is all any free tool can honestly give you, and the page tells you how to beat it with your own analytics.

Where the people you want reading it are, which is not always where you are.

The published benchmark, unweighted

Top three slotsNew York time
#1 Wednesday
10 AM
100 out of 100 on the benchmark
#2 Tuesday
10 AM
96 out of 100 on the benchmark
#3 Thursday
10 AM
95 out of 100 on the benchmark

The benchmark is published in US Eastern time, which is the zone you have picked, so the grid is shown exactly as published.

Relative engagement on X by day and hour, scored from 0 to 100, shown in New York time for a mixed audience.
Day of the week12 AM1 AM2 AM3 AM4 AM5 AM6 AM7 AM8 AM9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM6 PM7 PM8 PM9 PM10 PM11 PM
Mon12 AM, 5 out of 1001 AM, 3 out of 1002 AM, 2 out of 1003 AM, 2 out of 1004 AM, 3 out of 1005 AM, 5 out of 1006 AM, 11 out of 1007 AM, 22 out of 1008 AM, 42 out of 1009 AM, 66 out of 10010 AM, 86 out of 10011 AM, 88 out of 10012 PM, 70 out of 1001 PM, 68 out of 1002 PM, 62 out of 1003 PM, 50 out of 1004 PM, 42 out of 1005 PM, 38 out of 1006 PM, 35 out of 1007 PM, 33 out of 1008 PM, 30 out of 1009 PM, 24 out of 10010 PM, 15 out of 10011 PM, 8 out of 100
Tue12 AM, 6 out of 1001 AM, 4 out of 1002 AM, 3 out of 1003 AM, 2 out of 1004 AM, 3 out of 1005 AM, 6 out of 1006 AM, 14 out of 1007 AM, 28 out of 1008 AM, 52 out of 1009 AM, 84 out of 10010 AM, 96 out of 100, one of the top three slots11 AM, 92 out of 10012 PM, 74 out of 1001 PM, 78 out of 1002 PM, 72 out of 1003 PM, 58 out of 1004 PM, 48 out of 1005 PM, 44 out of 1006 PM, 40 out of 1007 PM, 37 out of 1008 PM, 34 out of 1009 PM, 28 out of 10010 PM, 18 out of 10011 PM, 10 out of 100
Wed12 AM, 6 out of 1001 AM, 4 out of 1002 AM, 3 out of 1003 AM, 2 out of 1004 AM, 3 out of 1005 AM, 6 out of 1006 AM, 15 out of 1007 AM, 30 out of 1008 AM, 55 out of 1009 AM, 86 out of 10010 AM, 100 out of 100, one of the top three slots11 AM, 94 out of 10012 PM, 76 out of 1001 PM, 80 out of 1002 PM, 74 out of 1003 PM, 62 out of 1004 PM, 50 out of 1005 PM, 45 out of 1006 PM, 41 out of 1007 PM, 38 out of 1008 PM, 34 out of 1009 PM, 27 out of 10010 PM, 17 out of 10011 PM, 10 out of 100
Thu12 AM, 6 out of 1001 AM, 4 out of 1002 AM, 3 out of 1003 AM, 2 out of 1004 AM, 3 out of 1005 AM, 6 out of 1006 AM, 14 out of 1007 AM, 29 out of 1008 AM, 53 out of 1009 AM, 83 out of 10010 AM, 95 out of 100, one of the top three slots11 AM, 90 out of 10012 PM, 72 out of 1001 PM, 76 out of 1002 PM, 70 out of 1003 PM, 57 out of 1004 PM, 47 out of 1005 PM, 43 out of 1006 PM, 39 out of 1007 PM, 37 out of 1008 PM, 33 out of 1009 PM, 27 out of 10010 PM, 17 out of 10011 PM, 10 out of 100
Fri12 AM, 6 out of 1001 AM, 4 out of 1002 AM, 3 out of 1003 AM, 2 out of 1004 AM, 3 out of 1005 AM, 6 out of 1006 AM, 13 out of 1007 AM, 27 out of 1008 AM, 50 out of 1009 AM, 80 out of 10010 AM, 88 out of 10011 AM, 82 out of 10012 PM, 64 out of 1001 PM, 60 out of 1002 PM, 50 out of 1003 PM, 40 out of 1004 PM, 32 out of 1005 PM, 28 out of 1006 PM, 26 out of 1007 PM, 25 out of 1008 PM, 23 out of 1009 PM, 19 out of 10010 PM, 13 out of 10011 PM, 8 out of 100
Sat12 AM, 8 out of 1001 AM, 6 out of 1002 AM, 4 out of 1003 AM, 3 out of 1004 AM, 3 out of 1005 AM, 4 out of 1006 AM, 7 out of 1007 AM, 12 out of 1008 AM, 20 out of 1009 AM, 32 out of 10010 AM, 44 out of 10011 AM, 52 out of 10012 PM, 54 out of 1001 PM, 50 out of 1002 PM, 46 out of 1003 PM, 41 out of 1004 PM, 37 out of 1005 PM, 34 out of 1006 PM, 33 out of 1007 PM, 35 out of 1008 PM, 36 out of 1009 PM, 32 out of 10010 PM, 24 out of 10011 PM, 14 out of 100
Sun12 AM, 7 out of 1001 AM, 5 out of 1002 AM, 4 out of 1003 AM, 3 out of 1004 AM, 3 out of 1005 AM, 4 out of 1006 AM, 7 out of 1007 AM, 11 out of 1008 AM, 18 out of 1009 AM, 28 out of 10010 AM, 40 out of 10011 AM, 48 out of 10012 PM, 50 out of 1001 PM, 46 out of 1002 PM, 43 out of 1003 PM, 40 out of 1004 PM, 36 out of 1005 PM, 34 out of 1006 PM, 35 out of 1007 PM, 36 out of 1008 PM, 37 out of 1009 PM, 33 out of 10010 PM, 24 out of 10011 PM, 13 out of 100
0 to 100, darkest is quietestTop three slots of the week

The benchmark as published, with no tilt applied. Weekday mid-mornings lead, the early afternoon holds a second band, and the weekend runs flat and late.

The best time to post, day by day

Monday

11 AM, 10 AM, 12 PM

Best hour scores 88 out of 100

Tuesday

10 AM, 11 AM, 9 AM

Best hour scores 96 out of 100

Wednesday

10 AM, 11 AM, 9 AM

Best hour scores 100 out of 100

Thursday

10 AM, 11 AM, 9 AM

Best hour scores 95 out of 100

Friday

10 AM, 11 AM, 9 AM

Best hour scores 88 out of 100

Saturday

12 PM, 11 AM, 1 PM

Best hour scores 54 out of 100, a quiet day on this weighting

Sunday

12 PM, 11 AM, 1 PM

Best hour scores 50 out of 100, a quiet day on this weighting

This is a published benchmark converted to your clock, not a reading of your account. No free tool can read your account: X bills every API call and bans scraping, so a page that asks for your handle and then shows you a time is showing you this same kind of average with your name on it. Your own analytics beat it in about ten minutes, and the steps are under the grid.

New YorkConverted from US EasternMixed weighting

Your audience, not yours

Pick the timezone your readers are in and the grid moves, days and all. Half-hour zones land on the half hour rather than rounded.

Every day, in words

The top three hours for all seven days, written out. A heatmap you have to squint at is not an answer.

Weighted by who reads you

A B2B account and a creator are looking at two different weeks. Pick one and the peaks move accordingly.

No handle, no lookup

Nothing is sent anywhere and nothing is read from your account, which is also true of the tools that ask for your handle.

Why a benchmark is a starting point and not an answer

Every number in the grid above comes from studies of millions of posts across tens of thousands of accounts. That is what makes it a reasonable place to start and exactly what makes it wrong for you. An average built from everybody describes nobody: it blends a recruiter posting to people at desks with a football account posting to people on a sofa, and the hour it returns is a compromise neither of them should take.

The audience weighting in the tool is an attempt to unblend it, and it is honest about being judgement rather than measurement. Tilting the grid toward a working day or toward the evening gets you closer than the raw average does, but it is still a guess about your readers made by a page that has never seen them.

The specific ways it will be wrong for you are worth knowing. If your followers are concentrated somewhere other than where you live, the default timezone is wrong and the whole grid is off by hours. If you post in a niche with its own rhythm, live sport, market open, school pickup, the general curve has nothing to say about it. And if your account is small, a single post that travelled will dominate your own data so heavily that it looks like a pattern when it was one good Tuesday.

Treat the top three slots as a hypothesis. Post into them for a fortnight, then check them against the next section, and keep whichever survives.

How to find your own best time in X analytics

This takes about ten minutes and it beats every benchmark on the internet, including this one. You do not need Premium for it: post-level analytics are available on a free account.

Open X on desktop and go to your profile, then click through to any of your own posts and open View post analytics. The panel that opens has an Account overview link at the top, which takes you to the full analytics view. Set the range to the last 28 days, because seven days is not enough posts to see anything and ninety days reaches back past whatever you changed.

Now sort your posts by impressions and take the top ten. For each one, note the day and the hour it went out. Do the same for the bottom ten. You are looking for a cluster, not a winner: if eight of the top ten went out between 8am and 11am on a weekday and six of the bottom ten went out after 7pm, you have your answer and it took ten minutes.

Two traps. First, impressions are driven far more by what the post said than by when it went out, so a single viral post will swamp the signal. Throw out the top one before you look. Second, if every post you have ever made went out at 9am, your data says 9am is best and it is not evidence, it is your own schedule reflected back. Deliberately post a third of them somewhere else for two weeks before you trust the pattern. While you are in there, the numbers on that screen are also what the engagement rate calculator runs on.

Does posting time still matter in an algorithmic feed?

It matters, and the reason has changed. On a chronological timeline the logic was obvious: a post went out, it sat at the top of the feed for a few minutes, and everyone asleep missed it forever. Timing was the whole game. That feed is gone. Your post can surface in somebody's For You tab a day later, so the cost of a bad hour is no longer total.

What replaced it is a test with a short fuse. X shows a new post to a small slice of your followers and watches what happens: replies count heaviest, then reposts, then likes, and a profile visit or a long dwell counts too. If that slice reacts, the post gets pushed to a wider one, and the whole decision is made on early signal. Post when your readers are awake and the test runs on a real sample. Post at 3am and it runs on whoever happens to be up, which is a thin sample that rarely earns the push.

Which puts timing in proportion. It is worth getting roughly right and not worth agonising over: the difference between 9am and 10am is noise, the difference between 9am and 3am is not. Consistency beats precision, because an account that posts on most days trains the system on what its audience responds to, and an account that posts three times in one afternoon and then nothing for nine days never gets a stable read.

The other half of it is the post. A thread posted into a good slot outperforms a single post in the same slot, mostly because every part gets its own chance to be shown, which is what the thread maker is for.

Meet bbuddy

Knowing the hour is not the hard part.

The hard part is having something worth posting in that slot, on most days, without your Thursday going to it. bbuddy reads your brand, drafts posts built for X rather than broadcast identically across eight platforms, and either queues them for your approval or publishes them itself.

It schedules into your audience timezone and it learns from what your own posts actually did, so the window it uses stops being a benchmark after a few weeks and starts being yours.

Frequently asked questions

What is the best time to post on X (Twitter)?

Weekday mid-morning. Across the published studies the strongest window is 9am to 11am from Tuesday to Thursday, with Wednesday at 10am the single busiest hour, and a second softer band between 1pm and 2pm. Weekends run flatter and later, peaking around 11am to 1pm. Those hours are in the benchmark study time, so convert them to the timezone your readers are in before you act on them, which is what the grid above does.

What is the best day to post on X?

Tuesday, Wednesday and Thursday, and it is not close. Wednesday edges it in most studies. Monday starts slower because the morning goes on other things, Friday fades badly after lunch, and Sunday is the quietest day of the week by a wide margin. If you only post three times a week, put all three in the middle of it.

What is the best time to post on X on a Monday?

Later than the rest of the week: 10am to noon rather than the 9am start that works Tuesday to Thursday. Monday mornings are spent clearing the weekend, so the feed fills up about an hour after it does midweek. The grid above gives the top three hours for every individual day, converted to your audience timezone.

When is the best time to post on X at the weekend?

Late morning, around 11am to 1pm on Saturday and Sunday. Weekend traffic is lower overall but it is also much flatter, so the penalty for missing the peak is small and the evening holds up better than it does on a weekday. Sunday evening is the one weekend slot that rivals a weekday, because people drift back to their feeds before the week starts.

Why does this tool not ask for my X handle?

Because no free tool can do anything useful with it. X has no free API tier, every read of public posts is billed per call, and scraping the timeline breaches the developer terms. A page that takes your handle, pauses, and returns a time is showing you a published average with your name printed on top of it. This one shows you the average, says so, and tells you how to replace it with your own numbers.

Does posting time still matter now that the feed is algorithmic?

Yes, but less than it did, and for a different reason. The chronological feed is gone, so a post no longer simply misses everyone who was asleep. What has replaced it is a test: X shows a new post to a slice of your followers and decides how far to push it from how they react in the first hour or so. Posting when that slice is awake gives the test a real sample. Posting at 3am gives it a thin one, and a thin sample rarely earns the push.

How do I convert these times to my own timezone?

Pick your audience timezone in the dropdown and the whole grid moves, including the day boundaries. The benchmark is published in US Eastern time, so a 10am peak lands at 3pm in London and at 7:30pm in India, which is also why half-hour zones matter: India, Nepal and parts of Australia are not a whole number of hours from anywhere, and rounding them to the nearest hour moves the peak by thirty minutes.

More free tools
All X tools
Get started

Free heatmap now, a channel that runs itself next..

Picking the hour takes a minute. Filling the slot every week is the part that takes your Thursday.

Cancel any time · Secure checkout · 5-minute setup