According to the United States Census Bureau, the town has a total area of , of which are land and (2.06%) is water.
Shutesbury lies along the southern border of Franklin County, along the border of Hampshire County.