How to keep the villagers out of your house in Minecraft?
Instead of facing straight on to the doorway while placing the door, stand off to the side. You'll know you've done it right if the door places in an open position instead of a closed position. This will make it so when the door is "open" it will actually be closed, and when it is "closed" it will actually be open. This will confuse the villagers to the point that they will be unable to open the doors to get into your house.
Use a fence gate or iron door instead of a regular wooden door. Villagers can only open standard wooden doors.
Another option would be to build a small patio or deck in front of your house, and use the trapdoors as your decking. The trick is to have your house 1 block above the surrounding area, place down a block in front of your door, put a trapdoor on top of that. You can remove the block below. A player can jump up onto the trapdoor, but a villager generally won't or can't jump onto anything higher then 1 block.
Build a fancy 2x2 or 3x3 redstone piston door.
Advantages:
- Villagers won't recognise your house if you don't have wooden door.
- As villagers don't flick levers or buttons they won't enter your house