Shelby is located in Cleveland County (of which it is the county seat) between Gastonia and Forest City along US Highway 74 on the banks of the First Broad River near Kings Mountain, Boiling Springs, and Moss Lake. The population estimate for July 1, 1998 was 15,568, an increase of 108 since 1990.