Here are three elements we often see in town names:
If a town ends in “-by”, it was originally a farmstead or a small village where some of the Viking invaders settled. The first part of the name sometimes referred to the person who owned the farm - Grimsby was “Grim’s village”. Derby was “a village where deer were found”. The word “by” still means “town” in Danish.
If a town ends in “-ing”, it tells us about the people who lived there. Reading means “The people of Reada”, in other words “Reada’s family or tribe”. We don’t know who Reada was, but his name means “red one”, so he probably had red hair.
If a town ends in “-caster” or “-chester”, it was originally a Roman fort or town. The word comes from a Latin words “castra”, meaning a camp or fortification. The first part of the name is usually the name of the locality where the fort was built. So Lancaster, for example, is “the Roman fort on the River Lune”."
A Little Book of Language by David Crystal, page 173. (via linguaphilioist)