Tiene una superficie de 364.85 kilómetros cuadrados, que lo ubican en la posición 19 entre los municipios poblanos y representan el 1,19% de la superficie de Puebla.