Город лежит на восточном побережье Шотландии (территория Среднешотландской низменности) на южном берегу залива Ферт-оф-Форт.
Для Эдинбурга, равно как и в целом для Шотландии, характерен умеренный морской климат — относительно мягкий, несмотря на то, что город расположен на довольно высокой северной широте. По сравнению с лежащими на той же широте Москвой и Лабрадором (Ньюфаундленд), зимы в Эдинбурге достаточно теплые, с температурой, редко опускающейся ниже 0°C. Летом в Эдинбурге сохраняется относительно прохладная погода с температурой, не превышающей 23°C. Также для Эдинбурга характерные частые ливни (количество осадков более-менее равномерно распределяется по месяцам) и юго-западный ветер. В октябре и марте значительное влияние на погоду в городе оказывают атлантические циклоны — так называемые Европейские бури.