> Source: https://www.trackmedia.app/blog/best-time-to-post-on-x · Last updated: 2026-10-06

# Best time to post on Twitter (X): find yours

X publishes no universal best time to post. Find yours in X analytics, test it with a simple slot log, and compare it against your own results.

*Guides · Published 2026-10-06*

There is no best time to post on Twitter, now called X, that X itself publishes for everyone. In the X pages we read on October 6, 2026, we found no page that names a best hour or a best day. What X does document is analytics for your own posts.

So the useful question is "when do my posts do best?" This guide shows where X puts post-level data, how to test your own best time to post on X, and what TrackMedia's best-times view can and cannot tell you. We use no third-party "best time" figures, because they describe someone else's audience.

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

It depends on when your followers are on X and what you post, and X does not give one answer. We searched X's Help Center for "best time to post" on October 6, 2026. It reported 38 results, and none of the first 10 titles were about posting times. We cannot prove no such page exists, only that we did not find one.

The same goes for the best day to post on X. X offers per-post numbers you can group by hour and day yourself, so the day of the week is one more variable to test.

## Where do you find timing data for your own X posts?

The closest official tool is the Post Activity Dashboard. The X Ads Help Center page [Post and Video Activity Dashboards](https://business.x.com/en/help/campaign-measurement-and-analytics/tweet-activity-dashboard) says it shows impressions, engagements and engagement rate for each post you send. That page is undated, so check it against your screen. It documents:

- **Where it lives.** On analytics.x.com, select the **Posts** tab. On ads.x.com, open the **Analytics** drop-down and select **Post activity**.
- **Date range.** The last 28 days by default. You change the range in the top-right corner.
- **Export.** Post-level data and permalinks as a .CSV file, split by organic and promoted metrics. Select the date range, then **Export**. X says the export's time zone is UTC/GMT, you can export up to 30 days at a time, and each file is capped at 3,000 posts.
- **Freshness.** X says metrics usually update within seconds, but its systems take up to 36 hours to stabilize, so numbers can shift slightly.

The page does not describe an hour-of-day or day-of-week view, or say whether the export has a publish-time column. You may have to match each permalink against your own log.

![Comparison of three sources of timing data for your own X posts. The X Post Activity Dashboard gives per-post impressions, engagements and engagement rate, exports in UTC, and has no hour-of-day view described. The X API analytics endpoint gives hourly, daily, weekly or total metrics for posts, and X's Metrics page limits non-public metrics to posts from the last 30 days. TrackMedia's Best times tab shows average engagement rate by weekday and publish hour for slots with at least 3 posts, and has X numbers only after you press Refresh.](https://www.trackmedia.app/assets/img/blog/best-time-to-post-on-x-fig1.svg)

*Three places timing data comes from, and what each one leaves out. The figure contains no performance data.*

### Which accounts can open X analytics?

The Ads Help Center page above calls these dashboards free features and says you reach them by signing up for an ads account at ads.x.com or by registering at analytics.x.com. It adds that access depends on the account not violating X's rules and policies.

Open the dashboard with your own account before you plan around it, because we did not test access.

### What does the X API add for developers?

The [Get Posts Analytics](https://docs.x.com/x-api/posts/get-post-analytics) reference lists a request that takes up to 100 post IDs and a start and end time, and returns metrics at hourly, daily, weekly or total granularity. The [Metrics](https://docs.x.com/x-api/fundamentals/metrics) page, which covers X API post metrics in general, adds that impressions are public, while clicks and engagements are non-public metrics that need user authentication and are only available for posts created within the last 30 days. It does not say whether the analytics endpoint follows the same limit.

That is metrics over time for posts you pick, not a report of when your followers are online. Neither page says what access plan the call needs, so we make no claim about that.

## How do you test your best time to post on X?

Treat any slot that looks good in your dashboard as a guess, then test it. One post that did well at 9 a.m. proves little. This is our suggested method, not one X recommends.

1. **Pick two or three candidate slots.** Add the time you post at today, so you have a baseline. Write each slot in your own local time.
2. **Post similar posts in each slot.** Keep the format alike (text, image, video, link) so you compare times and not formats. Decide each post's slot by strict rotation or coin flip, before you see results. Keep length consistent too; our [guide to X's character limit](https://www.trackmedia.app/blog/twitter-character-limit) explains how X counts it.
3. **Read every post at the same age.** X says its numbers can shift for up to 36 hours, so wait past that. Two days after posting is our suggestion.
4. **Log impressions and engagement rate.** Record date, slot, format, impressions and X's engagement rate, which the dashboard page defines as engagements divided by impressions.
5. **Compare medians, not averages.** One post that spreads can distort an average. If the gap between slots is no bigger than the spread of posts inside one slot, you have no evidence of a difference.
6. **Repeat later.** Your audience and topics change, so rerun the test every few weeks.

Ten posts per slot is a modest start in our judgment, not a statistical rule. Mind the clocks: X says its export is in UTC, so convert times to your own time zone before you compare slots.

## Does scheduling help with a slot test?

It can, because it lets you hit each slot without being online. X's own scheduling routes and where each shows scheduled posts are covered in our guide to [editing a post on X and scheduling posts](https://www.trackmedia.app/blog/how-to-schedule-and-edit-posts-on-x); we did not re-read X's scheduling pages for this guide.

If you schedule through TrackMedia, TrackMedia holds the schedule and publishes at the time you chose (see [how publishing works](https://www.trackmedia.app/#publish)). For a clean test, schedule every test post the same way, or none of them.

## What does TrackMedia's best-times view show?

TrackMedia reports when your own posts landed best. Open [Analytics](https://www.trackmedia.app/#analytics) and choose the **Best times** tab. The panel titled "When your posts land best" shows a weekday-by-hour grid in your workspace's time zone, built from posts that went out in the date range you chose. The toolbar's network and account filters let you look at X alone.

- **What it averages.** Each post's engagement rate, averaged per slot. For X, TrackMedia computes it as likes plus replies plus reposts plus quotes, divided by impressions. X's own rate counts engagements such as link and profile clicks, so do not compare the two numbers directly.
- **What it ranks.** "Your strongest slots" lists up to five, and only slots with at least three posts. A slot with no rate shows "No rate reported".
- **In the composer.** When you schedule, the time picker can offer up to two "Best" quick picks from the last 90 days. They are calculated across all your networks together, not for X alone.

X works differently from most networks here. TrackMedia's code treats X's API as billed per call, so its background sweeps skip X, and X numbers are collected only when you press **Refresh** on the Analytics page. A refresh reads the account's own numbers and up to 10 recent posts from the last 30 days, with a 15-minute cooldown. The import sweep also skips X, so expect the X grid to come from posts you published through TrackMedia.

The grid describes what happened, not what will happen, and it cannot separate a good hour from a good post. A slot you never posted in cannot appear. TrackMedia reads X's public post counts through the API (likes, replies, reposts, quotes, impressions, bookmarks), not the dashboard's click metrics, so X's dashboard is still where you read link and profile clicks.

## What to do next

Open your X analytics this week, write down two or three candidate slots, and start the log. When you want publishing and per-hour results side by side, you can [start free with TrackMedia](https://go.trackmedia.app/signup).

## How we checked this

We opened each page below in a browser on October 6, 2026 and copied labels, numbers and limits from it. We did not run a timing test on a live account.

- [Post and Video Activity Dashboards](https://business.x.com/en/help/campaign-measurement-and-analytics/tweet-activity-dashboard) (X Ads Help Center, undated): dashboard location, 28-day default, CSV export and its UTC time zone, limits, 36-hour stabilization, the free-feature statement, the engagement rate definition.
- [X Help Center search for "best time to post"](https://help.x.com/en/search-results?limit=10&offset=0&q=best%20time%20to%20post&searchPath=%2Fcontent%2Fhelp-twitter%2Fen&sort=relevance): 38 results; titles of the first 10 read, none about posting times.
- [Get Posts Analytics](https://docs.x.com/x-api/posts/get-post-analytics) and [Metrics](https://docs.x.com/x-api/fundamentals/metrics) (X developer docs): analytics endpoint, granularity options, the 30-day limit on private metrics.

**What we could not verify:** any X page that states a universal best time (we found none and cannot prove none exists); whether the export includes a publish-time column; whether any condition beyond those the Ads Help Center page lists affects who can open the dashboards; whether the analytics endpoint has the same 30-day limit as post metrics; and which API plan can call the analytics endpoint. TrackMedia's own behavior comes from its analytics and X connector code, read the same day.
