Municipio ubicado en la región noroeste de la entidad, tiene limites al norte con el municipio de Atlacomulco, al sur con los municipios de Ixtlahuaca y Jiquipilco, al este con San Bartolo Morelos, al oeste con El Oro y Temascalcingo y al suroeste con el municipio de San Felipe del Progreso. Cuenta con una extensión territorial de 276.77 kilómetros cuadrados y se encuentra a una altura de 2,720 metros sobre el nivel del mar.