Craven Arms is a small market town and civil parish in the county of Shropshire, England. It is located south of the county town of Shrewsbury and north of Ludlow. The population of the town in the 2011 census was 2,289.