 The ghost town of Springdale was located in the town.Canton is located along the northern border of Buffalo County, with Pepin County to the north.According to the United States Census Bureau, the town has a total area of , of which is land and , or 0.05%, is water.