Город областного значения, при этом в рамках Онежского муниципального района образует муниципальное образование Онежское со статусом городского поселения как единственный населённый пункт в составе последнего.

Город получил своё название по реке Онега, в устье которой он расположен.

По наиболее распространённому мнению, название реки восходит к фин. eno-joki «большая река»: прасаам. *εno, кильд. jäänn, jān- «большая река», фин. eno «большая река, поток, фарватер», карел. eno «глубокое место, фарватер (в реке)».

Онега расположена на северо-западе Европейской части России в Архангельской области в устье реки Онеги.

Центр города находится в 7 км от Онежской губы Белого моря, напротив устья реки Поньги (левого притока Онеги), в 150 км к юго-западу от Архангельска, областного центра (263 км по железной дороге).

Большая часть города располагается на правом берегу реки Онеги (имеющей здесь ширину 800—1100 м), меньшая — на левом (посёлки Поньга и Легашевская запань).

Город вытянут на 7 км вдоль реки; кроме отмеченных левобережных посёлков, в нём выделяются посёлки Лесозавод (ОЛДК), Шалга, Горный, Дальний.

Часть города с преимущественно частной застройкой к востоку (выше по реке) от современного центра называется Верховьем.

Кий-остров, находящийся в Белом море напротив устья реки Онеги, также включён в город.

Климат субарктический (Dfc по Кёппену), умеренно континентальный с частыми вторжениями циклонов и большим количеством осадков; характеризуется умеренно-тёплым летом (с июня по август) и умеренно-мягкой (для северных широт) зимой.