Rapperswil (520 m.ü.M.), auf einem fruchtbaren Plateau zwischen Seeland und Unteremmental gelegen, ist ein weitläufiges, recht komplexes Gemeindewesen, das sich aus den Orten Bangerten, Bittwil, Dieterswil, Frauchwil, Lätti, Moosaffoltern, Rapperswil, Ruppoldsried, Seewil, Vogelsang, Wierezwil und Zimlisberg zusammensetzt.
Rapperswil grenzt an den Kanton Solothurn und an die Gemeinden Deisswil, Grossaffoltern, Iffwil, Messen, Münchenbuchsee, Jegenstorf, Schnottwil, Schüpfen, Wengi und Zuzwil.