Placenames in the German language area can be classified by the language from which they originate, and by era.

German names from prehistoric and medieval times

Suffixes 

 -ach ("river"). Examples: Echternach, Salzach.
 -au (from Slavic suffix -ov, -ów). Examples: village and town names' suffixes on former Polabian Slavs territories: Lübbenau, Plau. See also: German naming convention of Polish town names during World War II as an analogy.
 -au, -aue (related to rivers or water), see German words Au or Aue. This meaning of -au (earlier spelling ow, owe, ouwe) describes settlements by streams and rivers. Example: Passau, the town Aue, rivers named Aue.
 -bach or Low German -bek ("stream"; cf. English beck, bach, batch). Examples: Amorbach, Ansbach Reinbek, Wandsbek.
 -berg, -bergen ("mountain"). Examples: Bamberg, Heidelberg, Nürnberg (Nuremberg), Königsberg ("king's mountain", now Kaliningrad), Landesbergen. Also reduced -burg, e.g. in Bromberg ← Brahenburg.
 -brücken or -brück ("bridge"). Examples: Saarbrücken, Osnabrück, Innsbruck.
 -bühl, or -bühel ("hill"). Examples: Dinkelsbühl, Kitzbühel.
 -burg ("keep"; cf. English bury, borough, burgh). Examples: Hamburg, Augsburg, Luxembourg, Regensburg (on the river Regen), Salzburg ("Salt City", a Medieval name), Straßburg (Strasbourg).
 -dorf or -torf,  Low German dorp/torp ("village") cf. English "Thorpe". Example: Düsseldorf, Reinickendorf, Kleinblittersdorf.
 -ey ("island"; cf. English ey, ea, Low German oog). Example: Norderney, Hacheney. 
 -egg ("ridge", Switzerland and western Austria), Example: Scheidegg, Schönegg, Felsenegg, Oberlangenegg
 -feld or -felde ("field"). Examples: Bielefeld, Mansfeld, Saalfeld.
 -furt ("ford"). Examples: Erfurt, Frankfurt, Klagenfurt.
 -hagen ("hedged field or wood"). Example: Hanshagen.
 -halde oder -halden ("hillside", "slope"; cf. Norwegian Halden). Examples: Haldensee, Osshalden near Crailsheim.
 -hausen ("houses"). Examples: Mülhausen (Mulhouse), Mühlhausen, Recklinghausen, Schaffhausen.
 -haven, or -hafen ("haven","harbor", "port"). Examples: Wilhelmshaven, Bremerhaven, Friedrichshafen.
 -heim (South and Central Germany, Switzerland, Alsace), -ham or -am (Bavaria and Austria), -hem or -em (West), -um (North Germany) ("home", "settlement"; cf. English ham and Hamlet (place)). Examples: Alkersum, Bochum, Borkum, Pforzheim, Kirchham, Schiltigheim, Mannheim, Mülheim, Hildesheim, Bad Windsheim.
 -hof, -hoff or -hofen ("farmhouse(s)"; cf. English hope). Examples: Hof, Bechhofen, Diedenhofen (Thionville).
 -hufe ("hide"). Example: Grünhufe.
 -hut ("guard"). Examples: Landshut, Waldshut.
 -ing or -ingen, -ungen, -ung, -ens (meaning "descendants of", used with a personal name as the first part; cf. English ing as in Reading). Examples: Göttingen, Esslingen, Straubing, Esens.
 -kirchen or -kirch ("church", cf. English kirk, church. Dutch kerk). Examples: Feldkirch, Gelsenkirchen, Neunkirchen.
 Low German -oog (Northwestern) or -öhe, -oie, -ee (Northeastern) ("small island"; cf. English ey, ea). Examples: Dutch Schiermonnikoog, Hiddensee.
 -ow (from Slavic suffix -ov, -ów). Examples: village and town names' suffixes on former Polabian Slavs territories: Bützow, Neubukow, Stäbelow, Malchow, Teterow, Güstrow.
 -roth, -rath, -rode, -reuth, or -rade ("clearing"; cf. English rod, rode, royde). Examples: Roth, Bayreuth, Overath, Wernigerode. It can also be used as the prefix Rade-: Radebeul, Radevormwald.
 -stadt,  -stedt, -stätt, or -stetten ("settlement", "town", "place"; cf. English stead). Examples: Darmstadt, Eichstätt, Ingolstadt, Neustadt.
-stein ("stone", "rock", "castle"). Examples: Allenstein, Bartenstein, Königstein. 
 -tal or -thal ("valley", "dale"). Examples: Wuppertal, Roßtal, St. Joachimsthal.
 -wald or -walde ("forest"; cf. English weald, wold). Examples: Greifswald, Creutzwald, Regenwalde.
 -wang, -wangen, or -wängle ("meadow"; cf. Norwegian vang. English wang). Examples: Feuchtwangen, Ellwangen, Nesselwängle.
 -wend, or -winden (meaning small Slavic settlements in Germanic surroundings). Examples: Bernhardwinden near Ansbach, Wenden near Ebhausen.
 -werder, -werth, -wörth, or -ort ("island", "holm"). Example: Donauwörth, Finkenwerder, Kaiserswerth, Ruhrort.

Prefixes 

Prefixes can be used to distinguish nearby settlements with an otherwise same name. They can be attached or stand alone. Both settlements that are to be distinguished can have opposing prefixes (e.g. Niederschönhausen and Hohenschönhausen), but it is also common to attach the prefix only to one of them (e.g. Stettin and Neustettin).

Alt-, Alten- or Low German Olden- ("old"). Examples: Alt Eberstein, Altenberg, Oldenburg.
Groß- or Großen- ("greater"). Example: Groß Kiesow, Großenhain.
Hoh-, Hohen-, Höch- or Hoch- ("high(er)", "upper"). Examples: Hohenschönhausen, Hohkönigsburg, Höchstadt.
Klein- or Low German Lütten- ("little"). Example: Klein Kiesow.
Neu-, Neuen- or Low German Nien- ("new"). Example: Neuburg am Inn, Neuenkirchen, Nienburg.
Nieder- ("lower"; cf. English nether). Example: Niederschönhausen.
Ober- ("upper", "higher"), or Oberst- ("uppermost", "highest"). Example: Oberhausen, Oberwesel, Oberstdorf.
Wendisch-, Windisch- (Slovene)  ("Wendish") . Example: Wendisch Baggendorf, Windischgarsten. This sometimes refers (particularly in present and former Austrian territories) to the original language of the inhabitants. Other examples: Böhmisch Krummau (Česky Krumlov), Unter-Deutschau (Nemška Loka).
Unter- ("lower"; literally "under"). Example: Unterliederbach.

Prefixes can also have a descriptive character. Examples are Lichten- or Lichter- ("open range", e.g. Lichtenhagen), Schön- or Schöne- ("nice", e.g. Schönwalde), Grün- or Grüne- ("green", e.g. Grunwald).

Prefixes can also be used to indicate an (earlier) possession of the site. Examples are Kirch- ("ecclesial possession", e.g. Kirch Jesar), Bischofs- ("a bishop's possession", e.g. Bischofswerda), Grafen- ("a count's possession", e.g. Grafenwöhr), Königs- ("the king's", e.g. Königs Wusterhausen, Königsberg), Kron- (possession of the crown, e.g. Kronstadt, Rügenwalde (once belonging to the princes of Rügen).

The prefix Bad ("bath") indicates the place is an officially acknowledged spa. See Bad Kissingen, Bad Pyrmont, etc. Some places, like Aachen, do not use it although they could.

Often the name of the village founder or of the first settler constitute the first part of the place name (e.g. Oettingen, the founder was Otto; Gerolfingen, the founder was Gerolf, Rappoltsweiler, the founder was Ratbald or Ratbert). Mostly in the former Ostsiedlung area, the locator's name was sometimes included as the first part of the name (e.g. Hanshagen, the locator was Hans).

Attachments 

Some settlements have the name of a river or the province attached to their name to distinguish it from an (even distant) one carrying the same name. The distinguishing word can be added in parentheses, or connected to the name with prepositions an der/am ("at"), ob der ("upon"), auf ("on") or in/im ("in"), or separated by a slash. Examples are:
Frankfurt am Main
Frankfurt (Oder) (also written Frankfurt an der Oder or Frankfurt/Oder)
Freiburg im Breisgau
Rothenburg ob der Tauber
Bergen auf Rügen
Lauenburg in Pommern (former German name of the Polish town)
Kochel am See ("at the lake", without the specific name of the lake)
Kirchheim unter Teck ("under the castle Teck")
Lahr/Schwarzwald, etc.

Often, attachments or prepositions are abbreviated in the official names, e.g. Berg b.Neumarkt i.d.OPf. ("Berg bei Neumarkt in der Oberpfalz"), or compare Landau in der Pfalz and Landau a.d.Isar, or Langenfeld (Rheinland) and Stolberg (Rhld.)

Sometimes, a descriptive word is attached to a new settlement, that was once budding of another one and except for the attached word has the same name.

(...)-Siedlung ("settlement")
(...)-Hof ("farm"), sometimes carrying an additional Roman number (e.g. Sanz Hof IV)
(...)-Ausbau ("expansion")

Others 

The old Germanic Gaue districts were established by Charlemagne; earlier derivations were Gowe" and "Gouwe. One can still find the old Gouwe (Gau) for example in Haspengouw (Dutch name of Hesbaye) or Gäu as in Allgäu.

German names from modern times 
They usually follow the established patterns.
 Wuppertal ("Wupper dale/valley"), Karl-Marx-Stadt ("Karl Marx city", name for Chemnitz during the DDR era), Wilhelmshaven ("William's haven/harbor", referring to King William I of Prussia).

German place names derived from other languages 

 Celtic names, used in prehistoric times in the southern and western parts of the German language area. Examples: Mainz (from Latin Moguntiacum, derived from a Celtic name), Remagen (from Celtic Rigomagos ("king's field"), Latinized as Rigomagus), Wien (Vienna) (from Celtic Windobona ("fair bottom country") [Latinized as Vindobona] or Celtic Wedunia ("forest brook") [Latinized as Vedunia]), Zürich (Zurich) (from the Celtic word turicon, derived from turus; the old name of the town in its Romanized form was Turicum.)
 Latin names:
 from classical times, when the southern and western parts of the German language area belonged to the Roman Empire. Examples: Koblenz (from Confluentes "joining rivers"), Köln (Cologne) (from Colonia "colony"),  Aachen (from Aquae "springs"), Augsburg and Augst (from Augusta "city of Augustus" and the Germanic suffix -burg).
 from medieval times, when Latin was the language of church and administration. Examples: München (Munich) (from monachus, "monk", ultimately from Greek μοναχός - monachos), Münster (from monasterium, "monastery", ultimately from Greek μοναστήριον - monastērion), Neumünster, Fraumünster, Grossmünster. See also minster.
 Slavic names: Prior to the medieval Ostsiedlung, Slavic languages like Polabian, Sorbian, Pomeranian, and Slovenian were spoken in the eastern parts of the Holy Roman Empire. The German settlers and administration in many cases adopted existing Wendish placenames, for example Rostock (from Old Polabian rostok, "river fork"), Dresden (from Sorbian Drežďany), and Berlin (possibly from a Polabian word meaning "Swamp"). For the same reason, many German placenames ending in -anz (e.g. Ummanz), -gard (e.g. Burg Stargard), -gast (e.g. Wolgast), -itz (e.g. Lancken-Granitz), -ow (e.g. Gützkow), and -vitz or -witz (e.g. Malschwitz) have Slavic roots. Due to spelling and pronunciation changes over the centuries, the original Wendish term in most cases is not preserved. Also, some placenames combine a German with a Wendish term (e.g. Altentreptow). The German suffix -au can be related to the Slavic -ow and -ov when derived from the Old German spelling (u= w =double u; e.g. Prenzlau was earlier spelled Prenzlow).
 Scandinavian names: The region of Southern Schleswig was part of Duchy of Schleswig on the Jutland peninsula, which belonged to the Crown of Denmark until Prussia and Austria declared war on Denmark in 1864, leading to dozens of placenames of Danish origin, except in North Frisia and the southernmost area. Typical Scandinavian endings include -by, -bøl, -trup, -lund, -ved, -toft (in German form: -by, -büll, -trup, -lund, -witt, -toft). In some cases the South Jutlandic form has been eradicated from the Standard Danish variety of the name, but is still visible in the Germanised version:

In many other cases the Germanised versions are out of etymological context. Examples include the Danish ending -næs (peninsula) being replaced by -nitz, an unrelated Slavic ending which is common in eastern Germany. Such arbitrary translations were often made by the central Prussian government after the whole of Slesvig was ceded to Prussia after the war of 1864.

The South Jutlandic name of the town of Schleswig (Slesvig), from which the region derives its name, was Sljasvig with the stress on the second syllable.

See also
 Germanic toponymy
 Celtic toponymy
 German exonyms
 German names for Central European towns
 List of English exonyms for German toponyms
 List of European exonyms

References

External links 
 Grundwörter in Ortsnamen 
 http://www.isoglosse.de/2015/07/cluster-von-toponymsuffixen-in-deutschland/ clusters of toponym suffixes in Germany
 https://ssz.fr/places/#// Placename pattern visualization using regular expressions

Place name etymologies
Toponymy
Names of places in Germany
Geography of Luxembourg
Names of places in Austria
Names of places in Italy
Geography of Liechtenstein
Geography of Switzerland