Batak est une petite ville de moyenne montagne, située à 1036m d'altitude, dans la vallée de la rivière Stara réka, dans les contreforts nord des Rhodopes occidentales, en Bulgarie de sud. Elle se trouve à 55km au sud de Plovdiv, 35km au sud de Pazardjik, 15km de Rakitovo et 27km de Vélingrad.
Batak est sise dans une cuvette créée par les hauteurs environnantes qui cumulent entre 100 et 200m. Derrière elles se dressent les cimes de la montagne Batachka et quelques-uns parmi les plus grands monts des Rhodopes occidentales - Batachki snejnik (2082m) et Golyama sutkya (2185m).