La població de Sant Joan de les Abadesses es troba situada a la comarca del Ripollès a 775 m d'altitud sobre el nivell del mar. Ocupa el centre d'una vall del Prepirineu, travessada pel riu Ter i encerclada per muntanyes altes com les de la Serra Cavallera.
El terme municipal té una extensió de 53.41 km2 i limita amb Ripoll a l'oest, Vallfogona del Ripollès al sud, la Vall de Bianya i Sant Pau de Segúries a l'est, Camprodon al nord i Ogassa al nord-est.