According to the United States Census Bureau, the town has a total area of , of which is land and , or 0.96%, is water [REF].
Shelburne lies along the eastern banks of the Deerfield River, which flows along the town's southern and western border.