According to the United States Census Bureau, the town has a total area of , of which is land and , or 0.81%, is water [REF].
The north town line is marked by Cattaraugus Creek and is the border of Erie County.