Salem is located in
Washington County (of which it is the county seat) south of Columbus at the junction of Highways 56 and 135. Salem is on the banks of the Blue River.
The population estimate for July 1, 1998 was 6,385, an increase of 766 since 1990.