Este municipio colinda al norte con Tepic, en la zona sur con Compostela, al oriente con Santiago Ixcuintla y al poniente con el municipio de San Blas. Cuenta con una superficie territorial de 290.60 kilómetros cuadrados y una altura que va de los 760 a los 2,240 metros sobre el nivel del mar.