According to the United States Census Bureau, the borough has a total area of , all of it land. It is located on the north slope of Broad Mountain and is drained by the Mahanoy Creek into the Susquehanna River. It has a warm-summer humid continental climate (Dfb) and average monthly temperatures range from 24.8 °F in January to 70.5 °F in July. The hardiness zone is 6a.