According to the United States Census Bureau, the town has a total area of , of which is land and , or 5.91%, is water [REF].
Wenham is bordered on the south by Beverly, on the east by Manchester-by-the-Sea, on the north by Hamilton, on the northwest by Topsfield, and on the west by Danvers.