1. Give them a goal
Everyone wants something, and it’s especially true for characters. Why else would the reader want to stick with them for an entire novel (or short story)?
Goals make characters realistic, plausible, and redeemable. It doesn’t matter if it’s moral or not: your villain has to strive for something or else they won’t be relatable.
Readers want to see the character, whether it be a villain or not, make sacrifices and put in effort to achieve their dreams. Determination and grit is a pretty appealing character trait. It’s what will drive your story and the people inside of it.
2. Give them charismatic traits
This one is pretty self-explanatory. A reader is more likely to enjoy a villain if they have traits that (seemingly) automatically make everyone like them.
This is especially useful if your villain has a following: why does a group of people want to follow them? What makes them motivating/inspiring?
Charismatic leaders typically display things like confidence, determination, good communication skills, and have passion (again, whether it’s moral or not!).
3. Make them fun to read about!
What do Loki, Regina George, and The Joker have in common? They’re all fun to watch!
Characters who enjoy their time on the page will most likely make the reader enjoy their time on the page. Writing/publishing is first and foremost an entertainment industry, so make your villains compelling.
A villain could have a cool hideout, a funny catchphrase, revolutionary gadgets, or even a dynamic crew.
4. Let them be vulnerable
If your villain expresses sadness or another vulnerable, human emotion, the reader might start to feel a little bad for them. Maybe they’ll begin to understand why the villain is doing what they’re doing.
Less pleasant moments are a part of being human—everyone can understand that. If you show your reader that the villain, too, has bad days, it makes them more relatable.
This doesn’t have to be just crying. It could also be anger, a display of grief, a moment of fear, etc. But it should be about something (the one thing) the villain cares about most: family, a lover, friend, someone in their crew, etc.
5. Give them a moral code
This is really important. If your villain just throws away all their morals and goes on random sprees of immorality, readers won’t be able accept them as a complex human.
They don’t need to have a widely accepted set of morals. They can be twisted if your villain is twisted. But there should be some boundaries they establish, especially if you want to show them being vulnerable. There needs to be something they just can’t accept as moral.