El municipio abarca 97.59 km² y se encuentra a una altitud promedio de 1320 m s. n. m., oscilando entre 2600 y 1200 m s. n. m.7
Colinda al norte con los municipios de San Mateo Peñasco, San Bartolomé Yucuañe y Santa María Tataltepec; al este con San Mateo Sindihui y Santa María Tataltepec; al sur con San Pedro Tijaltepec, y al oeste con Santa María Yosuyúa y San Pablo Tijaltepec.
El clima del municipio es semicálido subhúmedo con lluvias en verano en el 90% de su territorio, templado subhúmedo con lluvias en verano en el 7% y cálido subhúmedo con lluvias en verano en el 3% restante. El rango de temperatura es de 16 a 24 grados Celsius y el rango de precipitación es de 800 a 1200 mm.