This is probably a really dumb question, but here goes:
I've been playing my SSP 1.10.2 custom world for a little while now. My spawn happened to be right near a village on the edge of a river, lovely place, so I set up shop there. I even put a megatorch roughly in the middle, to help avoid hostile mob spawns, and have tried to light up the surrounding area too. But I have noticed that gradually, the number of villagers seemed to dwindle! I haven't seen any of them being massacred by zombles, not seen any zombie villagers about, though occasionally some houses don't seem to have doors when I thought they did. But yes, my local village appears to be deserted now! I've gone into the nether a few times, never for too long, and gone wandering out to find things like cactus, sometimes being gone for an hour or more real time.
Does anyone have any ideas why this might be, and how I can solve it? Could it be just that the villagers over the hill from me were in fact murderfied and I didn't notice? Or do villagers wander off? I've tried to make sure all the houses around have doors on, in the hope that will encourage them to breed, but that doesn't seem to have helped.
I could try and find another village and capture the inhabitants in golden lassos, but I'm worried that the same thing will happen again! I'm almost tempted to add CraftTweaker in and put in an expensive recipe for villager spawn eggs...
I found this in my 1.7.4 world as well. Turns out they villagers were being derps and taking small amounts of fall damage from a ledge, over and over and over and over and over.......
Check for places they can get to and fall from. They are idiots..
As of 1.8, Villagers will only breed if "willing". Once they have bred, they will no longer be willing until either a player trades with them (first time a trade is opened or roughly 1 in 5 trades after that) or if they have a surplus of food in their inventory. A farmer with excess food will drop food for other villagers to encourage breeding, but if you have no farmer for whatever reason, continued villager breeding is highly player dependant. This change was made to help prevent infinite villager farming at a Vanilla level.
Unfortunately, this means a single cactus or slight fall can doom a village to certain death due to their complete lack of useful AI unless a player takes the time to shake hands and kiss babies every now and again. Frankly, it's more hassle than it's worth.