Municipio localizado en la región norte del estado, colinda al norte con los municipios de Tecuala, Rosamorada, Ruíz y Tuxpan, al sur con San Blas, al oriente con Tepic y El Nayar y al poniente con el Océano Pacífico. Posee una extensión territorial de 1,831.92 kilómetros cuadrados y una altura promedio de 40 metros sobre el nivel del mar.