Alt Sankt Johann es una comuna suiza del cantón de San Galo, ubicada en el distrito de Toggenburgo.
Limita al norte con la comuna de Nesslau-Krummenau, al noreste con Wildhaus, al este con Grabs, al sur con Walenstadt y Quarten, y al oeste con Amden y Stein.