Раздельно пишутся те географические названия, отдельные части которых эквивалентны обычным словам и образуют обычные синтаксические сочетания: Ясная Поляна, Центральные Каракумы, Белая Колпъ, Красная Глинка, Большое Невольничье озеро, ср. также микротопонимы: Под вязом, У скалы, К левому берегу.
Через дефис пишутся топонимы, отдельные компоненты которых составляют синтаксически необычные для русского языка сочетания: Павлово-Блины, Гуляй-Борисовка, Переславль-Залесский, Битюг-Матрёновка. Сюда же относятся заимствованные иноязычные названия, отдельные части которых, будучи понятными словами языка-источника, не являются словами русского языка, вследствие чего взаимоотношения их русскому читателю неясны: Терен-Кудук, Ферт-оф-Форт, Ойрот-Тура, Кочкор-Ата, Йошкар-Ола.
Существует группа топонимов, включающих предлог на: Ни-колъское-на-Черемшане, Ростов-на-Дону, Покров-на-Нерли и т. п. С точки зрения русского языка это обычные сочетания слов: Ростов на Дону. Однако во всех географических пособиях эти названия пишутся с двумя дефисами, поскольку компонент «на Дону» считается составной частью топонима, а не простым указанием на местоположение г. Ростова и иных населенных пунктов.
Слитно пишутся топонимы с соединительными гласными, образованные на базе определительных словосочетаний: Красноар-мейск (Красная Армия),. Малоярославец (Малый Ярославец); через дефис пишутся топонимы, образованные на базе сочинительных словосочетаний: Петровско-Разумовское, Илъинское-Хованское. К сожалению, правило это недостаточно хорошо реализуется, поскольку нередко за исходный момент при написании принималась не структура топонима, а отдельные топоосновы в словарном порядке. В результате топонимы с начальными компонентами ново-, старо-, верхне-, нижне-, центрально-, средне-, севера- (северно-), вападо- (западно-), юго- (южно-), восточно- до сих пор не имеют единого написания. Различными актами и постановлениями местных органов власти за отдельными объектами закреплено индивидуальное написание, не подчиняющееся никаким языковым нормам: Южно-Курильск и Южно-Сахалинск, Северо-Задонск и Севе-роуралъск. Как будто бы намечается тенденция к выравниванию: писать названия, являющиеся по своему грамматическому характеру именами существительными, слитно: Северодонецк, Северодвинск, Североморск, Восточносибирск, а названия, являющиеся именами прилагательными,- через дефис: Южно-Енисейский, Юго-Камский, Восточно-Коунрадский. Но пока это только тенденция. На практике исключения можно обнаружить на каждом шагу. Более или менее единообразно написание лишь топонимов с начальными компонентами красно-, бело-, сине-, семи-: Красноград, Красногорский, Краснознаменское, Велокуракино, Велоозерский, Новобелока-тай, Новосинеглазовский, Семикаракорск, Семибратово, Синегорский, Синегорье.
Кроме юридической закрепленности отдельных написаний за определенными объектами от введения единого всеобщего правила удерживает еще один момент: получатся слишком длинные слова, трудные для чтения, восприятия, создастся угроза неправильной доставки грузов, корреспонденции и т. д. Однако представляется, что эта аргументация не должна быть основной. Если нормы языка требуют единого написания для топонимов Северодвинск и Северодвинское, Южноуральск и Южнокамский (без подразделения их на прилагательные и существительные), это может быть осуществлено законодательным порядком. Если при этом могут получиться слишком длинные названия, можно рекомендовать впредь подобных названий не давать.
Обозначения северо-восток, северо-запад, юго-восток, юго-запад, а также компоненты Северо-Западный, Северо-Восточный, Юго-Западный, Юго-Восточный в составе топонимов согласно давней традиции пишутся через дефис.
Старые традиционные русские топонимы, включающие компонент устъ- (т. е. устье – город или село стоит при устье реки, название которой может быть повторено в топониме), пишутся через дефис: Усть-Абакан, Усть-Каменогорск, Усть-Нера, Усть-Чарышская Пристань, Усть-Шоноша, Исключение: Устюг, Устюжна, давно превратившиеся в одно слово. Лишь по созвучию с перечисленными сближается тюркское Устюрт, не имеющее отношения к устью.
По традиции через дефис пишется Соль-Илецк, но Солъвыче-еодск, ср. Солигалич, Соликамск. Изменение написания первого топонима на Солилецк повело бы к закономерным для русского языка переразложениям внутри слова: со-ли-лецк. К сожалению, этого не понимают некоторые нормализаторы, меняющие дефисное написание тюркских, монгольских и некоторых других названий в русском языке на слитное. Чтобы избежать возникающих сложностей, они пишут ъ там, где это непонятно русскому читателю, например, в слове Акъяр или"Янъань (при дефисном написании было Ак-Яр, Ян-Ань). Но даже и в тех случаях, где ъ не требуется, происходит полное переразложение отдельных компонентов внутри слова: Кызыл-Аскер -Кы-зы-лас-кер, Кок-Узенъ -Ко-пу-зенъ из-за действия внутри русского слова закона открытых слогов.