A good fantasy city name does a quiet, invisible job: it convinces the reader that the place existed before the story started and will keep existing after it ends. A bad one does the opposite — it reminds you that someone sat down and made it up. The difference is rarely talent. It's that real place-names follow patterns, and invented ones usually don't. Once you can see the patterns, you can use them.
Why most invented city names fall flat
Three failure modes account for the majority of weak names. The first is the random-syllable name — 'Xandareth', 'Vyrloth' — which has sound but no sense, and so feels generated rather than grown. The second is the on-the-nose name — 'Dragonspire', 'Frostholm' — which can work in small doses but turns a map into a theme park when every town is named for its most dramatic feature. The third, and most common, is the inconsistent map: a 'Riverwood' next to a 'Qzthrak' next to a 'Saint Mary's Hollow', three naming traditions that could not plausibly share a continent.
How real place-names actually work
Open a map of almost any region and you'll find that settlement names are overwhelmingly built from two parts: a feature and a settlement-word. The feature is something the first settlers could see or use — a river, a ford, a hill, a stand of birch, a cold spring. The settlement-word says what kind of place grew there — a stead, a fort, a harbour, a homestead, a hamlet. English '-ton', '-ham', '-by', '-borough'; Norse '-bý', '-staðr', '-borg'; they all do this. 'Oxford' is just the ford where oxen crossed. 'Birkby' is the village by the birches. The meaning is mundane, and that's exactly why it feels real.
This gives you a simple, reliable formula: pick a believable feature, attach a settlement-word from a single consistent tradition, and let the meaning be ordinary. 'Stone-fort', 'oak-dale', 'cold-spring-stead' — these read as places people actually named, because they're named the way people actually name places.
Match the name to the size of the place
A capital and a hamlet should not sound the same. Grand cities carry grand settlement-words — fortress, stronghold, harbour, great-hall — and often older, worn-down forms, because important places have been around long enough for their names to erode. Small villages keep humble, transparent names: a farm, a copse, a meadow. If you're naming a sprawling fortified capital, reach for the imposing roots; if you're naming the village your hero left behind, keep it small and plain. Using the wrong scale is one of the fastest ways to break the illusion.
Generate grand city & stronghold names →Generate small town & village names →Keep one culture's names consistent
Real naming traditions are regional. The places settled by one people tend to share sounds and suffixes, which is why you can often guess a town's history from its name alone. You can use this deliberately: give each culture in your world its own small kit of feature-words and settlement-words, and the names will cohere into something that feels like a real linguistic region. When the reader crosses from one culture's lands into another's, the shift in the names should be felt before it's explained.
A quick checklist before you commit
- Can you say it out loud on the first try? If not, simplify — real town names are usually easy to pronounce.
- Does it mean something concrete, even if mundane? 'Cold-spring' beats 'Vyxhal'.
- Does the scale match? Grand roots for cities, humble ones for villages.
- Does it fit its culture's other names? One tradition per region.
- Is it free of real-world trademarks and existing fictional places? Keep it original.
If you'd rather start from a list of names that already follow these rules, every name in our generators is built from real Old Norse roots and comes with its literal meaning — so you can see the 'feature + settlement-word' logic at work and pick the ones that fit your map. For realms and nations rather than single settlements, the kingdom generator applies the same idea at a larger scale.
Generate kingdom & realm names →