Se localiza al noroeste del Estado, en las coordenadas 20º09' de latitud norte y 102º04' de longitud oeste, a una altura de 1,850 metros sobre el nivel del mar. Limita al norte con La Piedad, al este con Zinapáro y Penjamillo, al sur con Tlazazalca y al oeste con Zamora y Ecuandureo. Su distancia a la capital del Estado es de 147 kms.
Su superficie es de 229.21 km2 y representa el 0.39 por ciento de la superficie del Estado.
Su relieve lo constituye las atribuciones septentrionales del sistema volcánico transversal y la sierra de Purépero; los cerros: Gallinas, de la Cruz y Blanco, y en las regiones planas, la loma de Fuerte y Plan de la Noria.
Su hidrografía se constituye por arroyos intermitentes como el Grande, Huanomo, el Azul, los Cerezos, del Pino, de la Puerca y la Cañada; y manantiales de agua fría y pequeñas presas.
Su clima es templado con lluvias en verano. Tiene una precipitación pluvial anual de 800 milímetros y temperaturas que oscilan de 2.5 a 38.0º centígrados.
En el municipio domina el bosque mixto, con pino y encino; la pradera, con huisache, mezquite, nopal, pastizal y matorrales diversos. Su fauna la conforman el coyote, tejón, conejo, liebre, zorro, zorrillo, tlacuache, venado, gato montés, güilota, tarengos, citos, gorriones, mulatos, clarines, jilgueros, chuparosas, madrugadores y carpas, en los depósitos de agua.
La superficie forestal maderable es ocupada por encino; la no maderable, por arbustos de distintas especies.
Los suelos del municipio datan de los períodos cenozoico, cuaternario y plioceno; corresponden principalmente a los del tipo chernozem. Su uso es primordialmente agrícola y en menor proporción ganadero y forestal.