El municipio se localiza en la porción septentrional de la Sierra Norte de Puebla; está conformada por sierras más o menos individuales paralelas comprimidas las unas con las otras suelen formar grandes o pequeñas altiplanicies intermontañas que aparecen frecuentemente escalonadas hacia la costa. Tiene una superficie de 70.88 kilómetros cuadrados.