庄上镇,隶属于山西省吕梁市柳林县,地处柳林县东南部,东与陈家湾镇接壤,南与金家庄镇为邻,西南与高家沟乡相连,西连穆村镇,北接柳林镇,距柳林县城约5千米,区域总面积83.5平方千米。
1949年,庄上镇境域属离石县第四区;2001年1月,杨家峪乡与庄上乡合并为庄上镇。截至2018年末,庄上镇户籍人口为17343人。截至2020年6月,庄上镇下辖14个行政村,镇人民政府驻庄上村。
2018年,庄上镇有工业企业4个,其中规模以上3个,有营业面积超过50平方米以上的综合商店或超市2个。