Se localiza al oeste del Estado en las coordenadas 19º48' de latitud norte y 102º42' de longitud oeste, a una altura de 1,630 metros sobre el nivel del mar. Limita al norte con Jiquilpan al noroeste con Villamar, al este y sur con Tocumbo, al oeste y suroeste con el Estado de Jalisco. Su distancia a la capital del Estado es de 223 km.
Tiene una superficie de 505.28 km2 y representa el 0.91 por ciento de la superficie del Estado.
El relieve está constituido por el sistema volcánico transversal, sierra de San Angel; cerros de la Corona, Verde, Blanco, del Pinal; y el valle de Cotija.
Su hidrografía se integra por los ríos de Cotija, Tajo, Ejes y Agostadero.
El clima es tropical y templado con lluvias en verano. Tiene precipitación pluvial de 900.0 milímetros y temperaturas que oscilan de 0.0 a 40.0º centígrados.
En el municipio predominan los bosques: bosque mixto y bosque tropical deciduo. Su fauna la conforman el venado, zorro, conejo, liebre, ardilla, tlacuache, tejón, tuza, armadillo, coyote, garza, pato y pez bagre.
La superficie forestal de maderables es ocupada por encino y pino, y en el caso de la no maderable, por matorrales de distintas especies.
Los suelos del municipio datan de los periodos cenozoico, terciario y plioceno; corresponden principalmente a los del tipo chernozem y chesnut. Su uso es primordialmente forestal y en menor proporción ganadero y agrícola.