Minecraft wiki entry for Before_Village_%26_Pillage, associated text: Minecart: The player builds a minecart track from the village to the destination, then pushes a villager into the cart and pushes the cart to the destination.
Water path: The player creates a tunnel or walled path with no exits along the way, and then with two water buckets, uses water to push villagers down the path a few blocks at a time, using the empty bucket to retrieve the water block furthest back. A soul sand bubble column can be used to move villagers upward.
Boat: A simple way to transport a single villager over ground is to push one into a boat and then drive the boat, which can be rowed (albeit slowly) over land. A boat can move upward by using a piston in the ground or creating an upward bubble column. The player can also drive the boat up to the step, place a second boat on the step, break the first boat (without hitting the villager) to cause the villager to move to the second boat. In Bedrock Edition, a boat can be pulled up using a lead.
Houses: There is an easier way to transport villagers, rather than pushing them in a minecart, boat or using the water tunnel. Firstly find a village, and destroy all wooden doors except one to gather the villagers there. Then move the villagers by creating fake houses. As long as these meet the house requirements, the villagers will 'follow' the doors. The easiest way to do this is to place a door with 2 blocks stacked up behind it, removing the old door so that the villagers will follow and continuing the process again and again. For a visual representation, watch the following video from 1:20 to 3:33.