A data-driven guide to creating successful reddit posts, redux

A couple years ago, I wrote an article using massive data set of reddit posts to tackle one of the more popular questions about reddit: How do I get a highly-upvoted post on reddit? In light of the recent findings that half of all reddit posts go ignored, this question is more important than ever.

Given how much reddit has changed over the years, it seems appropriate to revisit this topic and see if my 2-year-old findings still hold true. Below, my undergraduate assistant Robert Bato and I analyzed 550,000 reddit posts from August 2014 to find out what makes a successful post on reddit nowadays. I bolded the big takeaway messages if you’re not feeling like a long read.

Disclaimer: I am only making statements about probability in this post. Following these guidelines will by no means 100% guarantee that you will have a successful post. Rather, following these guidelines will maximize your chance of having a successful post.

When to post

Just as last time, time is one of the most important factors when making a successful post on reddit. Below, we’ve charted the percentage of posts that receive a score higher than 100 — a reasonable proxy for at least a modicum of success — over the day of the week and time of day. We’ll be referring to posts that receive a score higher than 100 as “successful posts” for the remainder of this article.


As before, the U.S. Eastern time zone still rules reddit. Posts submitted around 9am EST tend to see the most success (around 5% garner >100 upvotes), whereas posts submitted around midnight EST typically do the worst (~2.5% garner >100 upvotes). I can only guess this is the result of American workers on the east coast coming into work and firing up reddit before actually starting their workday. Also note that the weekends see a larger fraction of successful posts, most likely because there’s fewer posts submitted on the weekend (and therefore less competition).

We’ve provided an alternative view of the same data below in a matrix format. Reading from side-to-side shows you the percentage of posts that scored >100 for a single day, whereas reading up-and-down shows you the percentage of posts that scored >100 for a particular time of day. The bluer the square is, the more posts that succeeded, whereas the whiter the square is the fewer posts that succeeded.


The take-away for this section? To maximize your chances of having a successful post on reddit, you should submit your post around 9am EST on the weekends. If the weekends don’t work for you, that’s fine — you can still achieve reasonable success by posting around 9am EST on any day.

What to post

Now that we know when to post, we need to figure out what to post. You may already have an article in mind that you want to share, in which case you can skip this section. But if you’re looking for ideas on the kind of content to share, keep on reading.

The most important thing to get out of the way is that imgur.com — an image rehosting and sharing site — is the domain of choice for most redditors. In fact, nearly 2/3 of all successful posts on reddit were links to an image on imgur. If you’re looking to share an image, your best bet is to rehost it on imgur and share that link.


If we rank all link domains submitted to reddit by the fraction of successful posts, we get the list below. Note that only link domains with at least 2,000 posts were included in this list so that it shows only the more popular domains on reddit.


A quick scroll down the list shows reddit’s love for sharing images and GIFs. If they’re not rehosting images on imgur, they’re sharing fancy HTML5 videos on gfycat, images from Wikimedia, or memes generated on LiveMeme. In fact, 14 of the top 25 domains shown here are dedicated to hosting and sharing some form of image or video.

Wikipedia is especially a favorite on /r/TodayILearned, whereas ThinkProgress articles are a favorite to share all over reddit. Ars Technica is reddit’s go-to place for all things tech, and no reddit gamer’s life would be complete without a Steam account. reddit’s favorite major news outlets also pop out on this chart: Time, Business Insider, and Slate.

For better or for worse, your post stands the best chance of becoming successful if you’re sharing some form of visual media: images, GIFs, or videos (in that order). Articles sometimes do well in certain subreddits depending on their focus, but they’re almost always outperformed by pure image posts. I suspect this is because over half of reddit’s users are on mobile devices, which makes reading lengthy articles unappealing.

Where to post

Now that we know to post some sort of visual media hosted on imgur around 9am EST, we need to figure out where to post it. For that, we looked at all subreddits that had at least 10,000 posts submitted to them (to make sure they’re a decently active subreddit) and ranked them by the percentage of successful posts submitted there.


/r/gonewild (NSFW) by far has the highest fraction of successful posts of the larger subreddits, but unless you’re looking to share nude selfies, you probably don’t want to post there. If you’re looking to share some sort of image, /r/WTF (pics that make you go “WTF?”), /r/AdviceAnimals (silly memes), and /r/aww (cute animal pictures) are your top 3 choices. /r/TodayILearned is still the best place to share educational articles, and /r/Minecraft holds the bragging rights as a large gaming subreddit with the highest fraction of successful posts.

Following the goal of this article, /r/WTF or /r/AdviceAnimals will give us the highest chance of having a successful image post. Don’t bother posting in /r/gonewild or /r/soccer unless your image is relevant to those subreddits.


In sum, your post has the highest chance of success if you:

  • Post it around 9am EST
  • Post an image hosted on imgur
  • Post an image on /r/WTF or /r/AdviceAnimals

Of course, you don’t need to follow these guidelines to the letter. Articles still do quite well on /r/TodayILearned and /r/worldnews, as do videos on (you guessed it) /r/videos. Give these tips a try for a week or two and report back how well they worked for you in the comments.

Important caveat

As always, it’s vital that you should first pay close attention to the subreddit’s posting rules before posting there. Posting a funny picture to /r/TodayILearned will only get your post removed by the moderators, so make sure your kind of post is allowed before submitting it.

Dr. Randy Olson is a Senior Data Scientist at the University of Pennsylvania, where he develops state-of-the-art machine learning algorithms with a focus on biomedical applications.

Posted in analysis, data visualization, reddit Tagged with: , ,
  • Pingback: 2p – A data-driven guide to creating successful Reddit posts – blog.offeryour.com()

  • Derek

    Hi Randal,

    The analysis is very interesting. Out of curiosity, how did you collect the reddit data originally?
    I see that you collected over 850,000 posts from 4,200 subreddits.

    • I used Python’s PRAW library to continuously scrape /r/all/new for days on end. It took a very long time.

  • Jeffrey Chan

    Hi Randy,

    Your data visualizations look very good! I’d like to start learning how to do it. Could you please tell me which software tool you used?


    • Thank you Jeff! We used Python’s matplotlib library. They have a style called “fivethirtyeight” that makes graphs look like the popular FiveThirtyEight graphs. Google will show you how to do that. 🙂

  • Nichochar

    Hi! Where do you get the data? I would like to run some analysis of my own on subreddit top posts.

About this blog

This blog is my labor of love, and I've spent hundreds of hours working on the projects that you'll read about here. Generally, I write about data visualization and machine learning, and sometimes explore out-of-the-box projects at the intersection of the two. I hope you enjoy my projects as much as I have.

If you would like to use one of my graphs on your website or in a publication, please feel free to do so with appropriate attribution, but I would appreciate it if you email me first to let me know.



Enter your email address to subscribe to this blog and receive notifications of new posts by email.