Miasto położone w gminie Stary Sącz, w środkowej części powiatu nowosądeckiego.
Stary Sącz położony jest w płaskim dnie Kotliny Sądeckiej, w widłach rzek Dunajca i Popradu, na wysokości ok. 320 m n.p.m. Posiada powierzchnię 15,00 km² i liczy 9 013 mieszkańców, w tym 4 649 kobiet i 4 346 mężczyzn (30.06.2010). Gęstość zaludnienia wynosi 600,87 osób/km².
Miasto podzielone jest na 8 osiedli: Cyganowice, Lipie, Południe, Północ, Słoneczne, Śródmieście, Tysiąclecia, Zachód.