hey indie hackers
everyone treats reddit's algorithm like it's some mysterious black box
"why did this post blow up but that one died?"
"how does reddit decide what to show?"
"is the algorithm against me?"
spent the last 2 months reverse engineering it
posted 100+ times across different subreddits
tracked every metric obsessively
talked to mods who understand the backend
here's what i figured out:
reddit's algorithm is actually pretty simple
but everyone misunderstands how it works
the biggest misconception
what people think:
"upvotes are all that matter"
more upvotes = more visibility
the reality:
upvotes are only ONE factor
and not even the most important one
what actually matters (in order):
early engagement velocity
comment activity
upvote ratio (upvotes vs downvotes)
subreddit-specific signals
account trust score
time decay
let me break down each one
factor 1: early engagement velocity (most important)
this is the #1 factor nobody talks about
how it works:
reddit measures how FAST you get engagement
not just how MUCH
example:
post A: 50 upvotes in first 30 minutes
post B: 50 upvotes over 6 hours
post A will rank WAY higher
even though both have same total upvotes
the velocity windows:
0-30 minutes: critical
if you get 5-10 upvotes here, algorithm boosts you
if you get 0-2 upvotes, you're buried
30-60 minutes: important
momentum from first 30 min either accelerates or dies
need another 5-10 upvotes to keep going
1-3 hours: make or break
if you're trending up, algorithm keeps pushing
if you're flat, you're done
after 3 hours:
basically determined if you'll hit front page or die
why this matters:
posting time isn't about "when most people are online"
it's about "when will you get FAST early engagement"
sometimes posting when fewer people online is better
because less competition for attention
how i use this:
i post when my target audience is most likely to engage QUICKLY
not when most people browse
example:
r/Entrepreneur: i post 6-7am EST
not peak hours (8-10am)
why? less competition, early birds engage fast
builds velocity before everyone else wakes up
factor 2: comment activity (underrated)
comments matter MORE than upvotes for visibility
why comments are weighted heavily:
upvotes are passive (one click)
comments require effort (typing, thinking)
comments = stronger engagement signal
the algorithm looks at:
comment velocity:
3 comments in first 10 minutes > 10 comments over 2 hours
comment depth:
replies to comments (discussion threads)
shows people are actually engaged
unique commenters:
10 different people commenting > 1 person commenting 10 times
OP responses:
if you respond to comments, algorithm sees it as active discussion
boosts visibility
what i discovered:
posts with high comment-to-upvote ratio rank better
typical ratio: 1 comment per 10-15 upvotes
high engagement ratio: 1 comment per 5-8 upvotes
example:
post with 100 upvotes, 7 comments = decent
post with 100 upvotes, 18 comments = excellent
second one gets boosted more
how to influence this:
end your post with specific questions
not "what do you think?"
but "which of these 3 approaches would you take?"
specific questions drive specific comments
factor 3: upvote ratio (the hidden killer)
reddit shows this as a percentage
usually 85%-95% for good posts
but here's what people miss:
downvotes hurt more than upvotes help
the math:
getting 100 upvotes and 5 downvotes = 95% ratio = great
getting 100 upvotes and 20 downvotes = 83% ratio = algorithm suppresses you
why downvotes are weighted heavily:
reddit assumes downvotes mean:
spam
low quality
rule violation
community doesn't want this
even if you have net positive votes
high downvote % kills your visibility
what triggers downvotes:
in title:
obvious clickbait
"you won't believe this"
all caps
excessive punctuation!!!
in content:
pure self-promotion
asking for upvotes
being controversial for no reason
attacking other users
in timing:
reposting recent content
posting same thing in many subs simultaneously
people notice and downvote
how to minimize downvotes:
don't be polarizing unless necessary
provide clear value upfront
follow subreddit culture
don't ask for upvotes/engagement directly
my approach:
i track upvote ratio on every post
if it drops below 90%, i analyze why
adjust future posts accordingly
factor 4: subreddit-specific signals
each subreddit has custom algorithm weights
what this means:
r/Entrepreneur might weight comments heavily
r/SideProject might weight images/media
r/startups might weight account age
examples i've found:
r/Entrepreneur:
heavily weights discussion/engagement
posts with 50+ comments rank better than posts with more upvotes but fewer comments
r/SaaS:
weights link clicks and external engagement
posts driving traffic to demos/products rank higher
r/SideProject:
weights media (images, videos)
posts with screenshots/demos rank better than text-only
r/AskReddit:
purely comment-driven
upvotes matter less than comment count
how to find subreddit weights:
analyze top posts from past month
compare upvotes vs comments vs media
see which factor correlates with ranking
what i track:
spreadsheet for each target subreddit
columns: upvotes, comments, ratio, media, rank
find patterns over 20-30 posts
factor 5: account trust score (invisible but critical)
reddit tracks a "trust score" for each account
never shows it to you
but it affects everything
what builds trust:
account age:
older accounts = more trusted
new accounts = heavily scrutinized
karma history:
consistent karma growth = good
sudden spikes = suspicious
posting pattern:
regular activity = trusted
long gaps then sudden activity = spam signal
subreddit participation:
active in community before posting = trusted
only posting, never commenting = spam
report history:
never reported = good
multiple reports = permanent penalty
how this affects you:
high trust account:
posts go live immediately
less likely to trigger automod
given benefit of doubt by algorithm
low trust account:
posts may be shadow-filtered
require mod approval
algorithm suppresses by default
how to build trust:
spend 2-3 weeks commenting before posting
accumulate karma gradually
participate in multiple subreddits
never get reported/banned
my experience:
first account: banned 3 times, low trust forever
second account: slow build, now posts go live immediately
trust score persists and affects everything
factor 6: time decay (the inevitable slide)
all posts decay over time
even viral ones
the decay curve:
0-6 hours: rapid growth potential
algorithm actively pushing if engagement is good
6-24 hours: peak plateau
maximum visibility reached
starts to decline
24-48 hours: steep drop
algorithm prioritizes newer content
your post slides down
48+ hours: residual traffic only
mostly from google/external links
reddit's algorithm barely shows it
exceptions:
stickied posts: don't decay (mod pinned)
evergreen in small subs: slower decay
high comment activity: extends visibility
external traffic: brings it back up temporarily
what this means:
timing matters less than you think for WHEN to post
matters more for HOW LONG your post stays visible
if you get early engagement, you get 24-48 hours of visibility
if you don't, you get 2-4 hours
how the algorithm actually works (simplified)
here's my understanding of the flow:
step 1: initial filter (0-5 minutes)
automod checks:
account karma
account age
banned word list
link domains
posting frequency
pass: post goes live
fail: removed or held for mod approval
step 2: early engagement test (5-30 minutes)
algorithm shows to small audience
measures:
upvote velocity
comment velocity
downvote ratio
good signals: boost to wider audience
bad signals: suppress, show to fewer people
step 3: expansion phase (30 minutes - 3 hours)
if passing early test:
shown in more users' feeds
shown in "rising"
potential for subreddit front page
if failing:
buried in "new"
never reaches most users
step 4: peak or decay (3-24 hours)
based on continued engagement:
keep rising → subreddit front page → reddit front page
or
plateau → slow decay → buried
step 5: long tail (24+ hours)
mostly external traffic (google, links)
reddit's algorithm moves on to newer content
the timing myths vs reality
myth: "post at 8-10am EST"
reality:
that's when most people browse
also when most people POST
huge competition
your post can get buried by volume
what actually works:
post when your AUDIENCE is online
but BEFORE most others post
less competition = faster early engagement
my data:
r/Entrepreneur:
conventional wisdom: 8-10am EST
my best results: 6-7am EST
why: early engaged users, less competition
r/SaaS:
conventional wisdom: weekday mornings
my best results: tuesday 2-4pm EST
why: less posting volume, engaged audience
r/SideProject:
conventional wisdom: weekday evenings
my best results: saturday mornings
why: makers browsing projects, relaxed engagement
the engagement hacks that work with the algorithm
hack 1: seed initial engagement
share post in relevant discord/slack
get 3-5 early upvotes/comments from real users
NOT vote manipulation
just legitimate early signal
triggers algorithm's velocity detection
hack 2: respond to every comment immediately
you comment = bump in algorithm
shows active discussion
keeps post "fresh"
set timer, check every 15 minutes for first 2 hours
hack 3: cross-post strategically
post in main subreddit first
wait 2-3 hours
cross-post to related subreddit
drives comments back to original
boosts original post's engagement
hack 4: edit with updates
after 1-2 hours, add update at bottom
"EDIT: thanks for the feedback! here's additional context..."
doesn't reset algorithm
but can drive new comments
new comments = continued visibility
hack 5: controversial takes (risky)
algorithm weights engagement over agreement
controversial posts get comments (even negative ones)
more comments = more visibility
BUT increases downvotes too
use sparingly
what kills your post (algorithm death sentences)
death sentence 1: slow start
0-2 upvotes in first 30 minutes
algorithm has decided: not interesting
no recovery possible
death sentence 2: high downvote ratio early
if you get 3 upvotes and 2 downvotes in first hour
60% ratio
algorithm buries you permanently
death sentence 3: no comments
50 upvotes, 1 comment
algorithm sees: passive interest only
won't boost further
death sentence 4: shadow-filtered account
if your account has low trust
posts may not even show to most users
you'll see it live
but algorithm suppresses it
death sentence 5: posting same content rapidly
post in 5 subreddits within 10 minutes
algorithm detects spam pattern
suppresses all of them
how to diagnose why your post failed
check 1: upvote velocity
did you get 5+ upvotes in first 30 min?
no → timing or content hook failed
check 2: upvote ratio
is it below 85%?
yes → something is triggering downvotes
check 3: comments
did you get 3+ comments in first hour?
no → content didn't engage discussion
check 4: subreddit fit
compare to top posts in that subreddit
does yours match the format/tone?
no → cultural mismatch
check 5: account status
are your other recent posts performing normally?
no → account may be shadow-suppressed
what i built based on this
understanding the algorithm changed how i built redchecker
feature 1: velocity tracker
tracks your first-hour engagement
alerts if you're below threshold
suggests if you should repost later
feature 2: engagement predictor
analyzes your post before publishing
predicts likely upvote velocity
estimates comment activity
feature 3: optimal timing finder
analyzes when YOUR posts get best early engagement
not generic best times
YOUR specific patterns
feature 4: algorithm health check
monitors your account's posting performance
detects if you're being shadow-suppressed
suggests recovery actions
the actual strategy i use now
before posting:
check optimal time for that subreddit (my data, not generic)
ensure post has discussion-driving question
verify upvote ratio likely to be high (no controversial elements)
confirm account is in good standing
0-30 minutes after posting:
respond to every single comment
add thoughtful replies (not just "thanks")
monitor upvote velocity
if below 5 upvotes, analyze what's wrong
30 minutes - 2 hours:
continue responding to comments
check upvote ratio
if ratio dropping, identify what's triggering downvotes
add edit with clarifications if needed
2-6 hours:
less frequent comment checking
respond to new comments within 30 min
track if post is rising or plateauing
6+ hours:
occasional comment responses
let algorithm do its thing
analyze performance for future posts
tracking what matters
metrics i track for every post:
upvotes at 30min, 1hr, 3hr, 24hr
comments at same intervals
upvote ratio throughout
time to first comment
time to 5th upvote
peak ranking in subreddit
external traffic driven
what i've learned:
posts that get 5+ upvotes in first 30 min: 85% success rate
posts that get 10+ comments in first 2 hours: 92% success rate
posts with 90%+ upvote ratio: 3x more visibility
success = function of early velocity + engagement quality
questions for you
1. have you noticed these patterns?
fast start = better performance
slow start = death
2. do you track your posting metrics?
or just post and hope?
3. what's your average upvote velocity?
how many upvotes in first hour?
if you want help
built all this tracking into redchecker
velocity monitoring
engagement prediction
optimal timing per subreddit
algorithm health checks
lifetime deal: $59 (ending soon)
monthly: code "IN26" for 50% off
final thought
reddit's algorithm isn't magic
it's measuring engagement signals
early velocity matters most
comments matter more than upvotes
trust score affects everything
once you understand the system
you can work with it instead of against it
stop guessing
start tracking
optimize based on data
that's how you win
-musha
Did you notice meaningful difference across subreddit types?
I never thought a wall of logs would be so cool to scroll through. ~
When we see the raw checks, failures, retries and timestamps, it feels very real versus polished dashboards. There were times when simply examining the logs conveyed more about user behavior than any dashboard I’d used.
There is something reassuring about how messy and alive it looks. Like it’s possible to see the system thinking as it happens.
It is strangely convincing to “show your work” view.
Now it makes sense why some of my reddit posts got viral and some didn't !
This resonates a lot.
In your experience, what’s the biggest mistake founders make when they first try to “work with” Reddit instead of against it?