Colinda al norte con San Andrés Ixtlahuaca, San Felipe Tejalapam y Santa María Atzompa; al sur con San Pablo Cuatro Venados, Santa María Peñoles y Villa de Zaachila; al oriente con Oaxaca de Juárez, Santa Cruz Xoxocotlán y Cuilapam de Guerrero; al poniente con San Felipe Tejalapam. Tiene una extensión territorial de 17.70 kilómetros cuadrados y una altura promedio de 1640 metros sobre el nivel del mar.