I hardly ever give 5-star ratings. Maybe my top 10 books of all time, and that's about it. To me, five stars means the book is perfect and I can't think of one thing wrong with it. And that's a hard thing to find!
My criteria (I think): 1. It definitely has to stay with me for a long time, not just what happened but the feeling I got when I read it has to come back, even years later.
2. Also, it has to be well-written. I admit, I'm a book snob. I can hardly read books that aren't well written, even if everyone loves them. Bad writing is a deal breaker, no matter if the writer is #1 Best Seller for ten years in a row. I majored in English and read tons of books on writing, so I can smell bad writing from a mile away. Also, beautiful writing that takes my breath away, gives me goosebumps, makes me shiver, whatever, has to be done in a subtle way, not in-your-face gross-out or steamy love scenes (those are for fun, not 5-stars.)
3. The last thing is, everything has to be vivid. I dont have to love the characters, but I have to believe them and feel I know them. I have to see the setting, the world, the people without being bogged down by flowery paragraph-long description. I have to feel the emotion, smell the smells, hear what they hear, ache when they ache.
It's a tough bill, but I'm a tough reader.