Se ubica en las coordenadas 96°44' longitud oeste, 17°02' latitud norte y a una altura de 1,530 metros sobre el nivel del mar. Limita al norte con Oaxaca de Juárez; al sur con Cuilapam de Gurrero, Animas Trujano y San Raymundo Jalpan; al oriente con San Agustín de las Juntas; al poniente con Cuilapam de Guerrero y San Pedro Ixtlahuaca. La superficie total del municipio es de 48.09 km²