 According to the United States Census Bureau, the town has a total area of , of which is land and , or 16.78%, is water.The eastern end of the town extends into Chequamegon Bay, an arm of Lake Superior.Barksdale is located northwest of the city of Ashland.