Posting times

The best time to post on Instagram

Short answer: Wednesday 7pm-9pm local time, with Tuesday and Thursday evenings close behind. The longer answer is that a posting time can only decide who sees your post in the first hour — it can't decide whether they stay. Below is the weekly grid, the method behind it, and the part most guides leave out.

The three windows worth defending

01

Wednesday 7-9pm

The single highest-scoring bucket in the set. Midweek evening is when the most people are idle, on wifi, and scrolling long enough for a Reel to earn watch-time.

02

Tuesday & Thursday 9-11am

The morning commute-and-coffee window. Weaker peak than evenings, but far less competition, so a good hook clears the first-hour threshold more easily.

03

Sunday 11am-1pm

The only strong weekend slot. Saturday is the worst day of the week almost everywhere — people are out, not scrolling.

Posting-time analyzer

Pick your niche and where your audience actually is, mark the slot you post in today, and see how it compares against the windows the decoded top performers in that niche used. Scores are relative opportunity, 0-100, per two-hour window in your own clock.

General / mixed audience: The cross-niche baseline. Midweek evenings carry the week, Saturday is dead.

Your current slot

Mon 1pm

Opportunity score 66 / 100 — Decent

Best slot for this niche

Wed 7pm

Opportunity score 95 / 100 — +29 vs your slot

You're leaving real reach on the table. Your current slot lands while a meaningful chunk of your audience is unavailable.

Post at these times instead (your clock)

  • Wed 7pm-9pm#1 · score 95
  • Tue 7pm-9pm#2 · score 93
  • Thu 7pm-9pm#3 · score 91

Your adjusted week

5am7am9am11am1pm3pm5pm7pm9pm11pm
Mon
Tue
Wed
Thu
Fri
Sat
Sun
PeakStrongDecentQuietDeadClick any cell to set it as your slot.
Decode a post in your nicheSee the exact day and time behind the posts winning right now — 2 free breakdowns.

How this was worked out

Most "best time to post" charts are recycled from a single 2019 blog post. Here is exactly what sits behind this one, so you can judge how much weight to give it.

  1. 1

    Start from posts that outperformed, not posts that exist

    Every post in the sample beat its own author's median engagement. Averaging all posts just tells you when people post most, which is not the same as when posting works.

  2. 2

    Normalise against follower count

    A 50k-like post from a 5m account is a flop. Engagement is divided by followers before anything is compared, so a nano creator's breakout counts as much as a celebrity's floor.

  3. 3

    Bucket by the author's local time

    Timestamps are shifted to the posting account's own timezone. Comparing raw UTC would smear every peak into noise.

  4. 4

    Discount the crowded hours

    A window where everyone posts is a window where your post competes hardest. Each bucket's raw score is adjusted for how much content lands in it, which is why 9-11am scores better than its raw numbers suggest.

  5. 5

    Strip suspected inauthentic engagement

    Posts flagged with bot-like like-to-comment ratios or implausible velocity are dropped before scoring, so pods and bought likes do not create fake peaks.

The honest caveat: this is a cross-niche average. A fitness account in Sydney and a finance account in Chicago do not share a peak hour, and no published chart can know yours. Treat the grid as a default to start from, then replace it with the real posting times of the posts winning in your niche.

Timing matters differently per format

Reels

Least time-sensitive thing you can post. Distribution is driven by watch-time and saves over the first 24-72 hours, not the first hour, so a strong Reel posted at a mediocre time still travels. Optimise the hook before the clock.

Carousels

Reward dwell time, which means they do best when people can actually sit with them — evenings and Sunday late morning. Posting a 10-slide carousel at 7am is throwing away the swipe-through.

Single photos

The most time-sensitive format left. Reach leans heavily on your existing followers seeing it early, so the peak windows matter far more here than they do for Reels.

Stories

Follow your own audience's active hours rather than any chart. Two posts — one morning, one evening — beats a single perfectly timed one.

Find your real peak, not the average one

Paste any Instagram handle, hashtag or post link into IG Decode. It pulls that account's best-performing posts and shows you the exact day and time each one went out — alongside the hook, the caption structure, the hashtags and a step-by-step plan to rebuild it for your own audience. That's your posting schedule, taken from posts that already worked in your niche.

Decode a post free2 free breakdowns — no card required.

Common questions

What is the best time to post on Instagram?
Wednesday between 7pm and 9pm local time is the strongest single window across the accounts we decode, followed by Tuesday and Thursday evenings. Mid-morning on weekdays, roughly 9am to 11am, is the best low-competition alternative.
What is the worst time to post on Instagram?
Overnight, roughly 1am to 5am, and most of Saturday. Saturday is consistently the weakest day of the week because people are out rather than scrolling.
Does posting time still matter for Reels?
Much less than it used to. Reels are distributed on watch-time and saves over the first one to three days rather than the first hour, so a strong hook beats a perfect posting time. Timing matters most for single photos, which lean on followers seeing them early.
How often should I post on Instagram?
Three to five times a week, consistently, outperforms daily posting that you cannot sustain. Frequency only helps if the quality holds, because weak posts drag down how your next post is distributed.
How do I find the best time to post for my own account?
Use the general heatmap as a starting point, then check the actual posting timestamps of the top-performing posts in your niche. IG Decode surfaces the exact day and time behind every post it breaks down, so you can copy what is already working instead of guessing.