Ubicado en la región sur del estado de Puebla, cuenta con una extensión territorial de 633.22 kilómetros cuadrados y una altitud promedio de 850 metros sobre el nivel del mar. Tiene límites al norte con el municipio de Rosario, al sur con el estado de Nayarit y nuevamente se encuentra Rosario, finalmente al poniente limita con el Océano Pacífico.