Este municipio se localiza en la región de la Sierra Norte en el estado de Oaxaca, colinda al norte con los municipios de Santiago Comaltepec y Ayotzintepec, al sur con Guelatao de Juárez, San Miguel Amatlán, Capulalpam de Méndez, San Miguel Yotao y San Pedro Yaneri, en la parte oeste se encuentran los municipios de San Pablo Macuiltianguis, San Juan Atepec, San Juan Evangelista Analco y Santa María Jaltianguis, finalmente al este colinda con los municipios de Santiago Jocotepec, Santiago Camotlán, Santiago Lalopa, San Juan Yaeé y con Tanetze de Zaragoza. Posee una extensión terriorial de 548.60 kilómetros cuadrados y una altura promedio de 2,030 metros sobre el nivel del mar.