Blog / Guide

How Goodreads Recommendations Actually Work (and Why They Feel Generic)

Goodreads recommendations run on collaborative filtering from 2011. Here is how the engine works, why it keeps suggesting bestsellers, and what to do instead.

TL;DR: Goodreads recommendations come from collaborative filtering: the engine matches your ratings and shelves against millions of other members and suggests what similar readers liked. The system was built in 2011 from the Discovereads acquisition and has not been visibly rebuilt since. It feels generic because the math favors popular books, ignores why you liked something, and gives everyone with similar shelves the same suggestions. Better discovery mixes mood-based tools, actual humans, and a small circle of readers whose taste you trust.

You have rated 200 books. Goodreads knows you abandoned two thrillers halfway, five-starred a niche history of salt, and reread the same fantasy trilogy three times. And its big idea for you is… the same Colleen Hoover novel it suggests to everyone.

That gap between what Goodreads knows and what it suggests is not a bug in your account. It is the predictable output of a specific machine, designed in a specific year, with specific blind spots. Here is how it works, why the results feel like they were picked for a demographic rather than a person, and what actually finds you better books.

The machine under the hood

Goodreads did not build its recommendation engine in-house. In March 2011 it acquired Discovereads, a startup whose founders were inspired by the Netflix Prize and whose technology combined machine learning and graph analysis over book ratings. At the time, Goodreads brought the data: about 100 million ratings from 4.6 million members.

Six months later, in September 2011, Goodreads launched personalized recommendations, describing a system of “multiple proprietary algorithms which analyze 20 billion data points.” The mechanics, in Goodreads’ own words, are simple to state:

  1. Map the books. The engine looks at how often two books appear on the same shelves and whether the same people enjoyed both. Custom shelf names carry real signal here: Goodreads’ launch post noted that The Help sat on member shelves named “historical fiction,” “friendship,” and “racism,” each one a tiny label describing what the book means to readers.
  2. Map you. Your ratings and shelves get compared against everyone else’s to find members whose taste overlaps with yours.
  3. Recommend the overlap. Books those similar readers loved, which you have not shelved yet, become your recommendations.

This approach is called collaborative filtering, and Goodreads asks you to rate at least 20 books before it kicks in. It is the same family of algorithm behind “customers who bought this also bought.” Which is fitting, because since March 2013 Goodreads has belonged to Amazon, the company that made that phrase famous. We covered the ownership story, and what it changed, in our guide to whether Goodreads is owned by Amazon.

What the algorithm sees, and what it misses

Collaborative filtering is genuinely clever. It needs no understanding of the books themselves; the crowd’s behavior does the describing. But that shortcut is also the ceiling.

Signal Goodreads usesWhat it tells the engineWhat it cannot tell the engine
Star ratingsYou liked or disliked a bookWhy. The prose? The plot? The ending you hated but respected?
ShelvesWhich books cluster together for readersHow a book feels: pacing, mood, darkness, density
”Want to read” addsWhat is popular and risingWhether you will ever actually read it
Similar membersWhat people with overlapping shelves enjoyedThat your overlap is 30 fantasy novels and your divergence is everything else

A five-star rating is one number carrying a hundred possible meanings. You and a stranger can both five-star Project Hail Mary, you for the engineering problem-solving, them for the found-family friendship, and the algorithm sees identical readers. Every recommendation it builds on that match inherits the confusion.

Why the results feel generic

Popularity is baked into the math

Collaborative filtering needs rating volume to see a book at all. A bestseller with 800,000 ratings appears on millions of shelves and co-occurs with everything, so it surfaces constantly. A brilliant backlist title with 900 ratings barely registers. As a Book Riot analysis of recommendation algorithms put it, new and obscure books rarely get recommended because the systems favor already-rated, popular titles, which quietly defeats the point of discovery. The engine is not finding you hidden gems. It is ranking the already-found.

Everyone similar gets the same list

Because suggestions derive from crowd overlap, readers with broadly similar shelves converge on broadly identical recommendations. How-To Geek’s 2025 look at Goodreads discovery found that even after rating 100 books, users get served the same handful of featured lists as everyone else, and pointed at the site’s “Best Books Ever” list, 127,000 titles deep, as the opposite of curation. Personalization that converges on the median reader is just demographics with extra steps.

The engine is old, and the ecosystem around it is closed

The collaborative filtering core dates to 2011, and Goodreads has announced no major rebuild of it since. Complaints about repetitive, off-target suggestions fill Goodreads’ own help forum. Meanwhile the platform began retiring its public API in December 2020, which ended the era of independent developers building better discovery tools on top of your own shelf data. Fifteen years is several lifetimes in recommender systems; the field moved on to models that read review text and model reading context, and there is little public evidence Goodreads followed.

Feedback loops narrow your world

Rate what the algorithm feeds you and it feeds you more of the same. The Book Riot piece describes the bubble problem directly: rate a few similar authors highly and the system can lock you in, recommending variations on that theme indefinitely. The books that would stretch you, the adjacent genre you would love but have never shelved, sit outside the loop. Algorithms optimize for predicted approval, and the safest prediction is more of what you already read.

What better discovery actually looks like

No single tool fixes this, but three ingredients consistently beat the Goodreads engine.

Mood and context, not just co-occurrence. The StoryGraph built its pitch on exactly this gap: readers tag books by mood (dark, cozy, tense, funny) and pace, so you can ask for “something reflective and slow” instead of “something people with your shelves rated four stars.” Its tagline, “life’s too short for a book you’re not in the mood for,” is a direct shot at rating-only filtering. If you are weighing a switch, our StoryGraph vs Goodreads comparison goes deeper.

Humans, still undefeated on nuance. A bookseller who asks two follow-up questions will outperform 20 billion data points, because humans model the why. Librarians, one well-read friend, a subreddit thread describing exactly the feeling you want: all of these transfer the context a star rating strips out.

A small circle instead of an averaged crowd. The most reliable recommendations come from three to ten specific people whose taste you have calibrated against your own. Not 150 million members averaged; a feed of named readers finishing real books. That is the bet booksense makes on discovery: recommendations lean hand-picked and non-fiction leaning rather than algorithmic, and the heavier discovery channel is social, a feed of what the readers you follow are finishing, noting, and saying, with their page-anchored notes attached as receipts. Fair warning: it is an early-stage iOS app with a catalog nowhere near Goodreads’ size, and it is habit-first (timer, streaks, goals) rather than catalog-first. But readers on it have taken over 16,000 notes, and a stranger’s margin note is a better pitch for a book than any co-occurrence score.

Getting better recommendations this month

Practical moves, in rough order of payoff:

  1. Sharpen your Goodreads inputs if you are staying. Rate honestly, including the low ratings, since the engine learns as much from dislikes. Use “not interested” on bad suggestions, and turn off recommendations for shelves that do not reflect your taste (both controls shipped with the 2011 launch). Garbage shelves in, garbage suggestions out.
  2. Prune your to-read pile. A 400-book TBR full of impulse adds trains every algorithm on noise. Our guide to organizing your TBR covers cutting it down to books you will actually start.
  3. Quit books faster. Every forced finish of a mediocre book pollutes your ratings with reluctant three-stars. DNF-ing without guilt keeps your signal clean and your reading appetite alive.
  4. Recruit two humans. Ask the best-read person you know for one title, and tell them the last book you loved and why. Repeat monthly.
  5. Follow readers, not lists. Whatever app you use, find a handful of people whose finished-books trail you would happily walk behind.

And if a run of algorithm-approved, aggressively fine books has flattened your appetite for reading altogether, that has a fix too: our guide to getting out of a reading slump starts with permission to stop reading what the crowd picked for you.

The Goodreads engine is not broken. It does exactly what 2011-era collaborative filtering does: it predicts, safely, that you will tolerate what people like you already tolerated. Good discovery asks a different question. Not “what do similar shelves contain,” but “who do I trust, and what did they just finish.”

FAQ

How does Goodreads decide what books to recommend?

Goodreads uses collaborative filtering. Its engine, built from the 2011 Discovereads acquisition, maps how often books appear on the same shelves and whether the same readers enjoyed them, then matches your ratings and shelves against readers with similar patterns. Goodreads said at launch that the system analyzes 20 billion data points and needs you to rate at least 20 books before it starts working.

Why are my Goodreads recommendations so generic?

Three structural reasons. Collaborative filtering favors popular books because they have the most rating data, so bestsellers dominate. The engine reads shelf and rating signals, not why you liked a book, so it misses mood, pacing, and prose style. And the core system dates to 2011 with no announced rebuild since, while everyone with similar shelves converges on similar suggestions.

Can I improve my Goodreads recommendations?

Somewhat. Rate honestly (including low ratings), keep your shelves specific rather than dumping everything into read and to-read, use the not interested button on bad suggestions, and turn off recommendations for shelves that do not reflect your taste. These sharpen the inputs, but they cannot change what the algorithm fundamentally measures.

What is a better way to find your next book?

Combine sources. Mood and pace based tools like StoryGraph capture how a book feels, not just its genre. Humans (booksellers, librarians, friends with overlapping taste) still beat algorithms on nuance. And following a small number of readers whose taste you trust turns discovery into a feed of real opinions instead of an averaged crowd.

The timer is the difference Start a session, read, and booksense logs the minutes, the pages and your real pace. Get booksense free
Daniel Daneshi Creator of booksense. Writes about reading habits, the apps that help and the ones that get in the way. About

Keep reading

All articles
Pick the app that moves the number. Import the same CSV, start a timed session tonight, and keep a streak you can only hold by reading. Download for free