El municipio de Xicotepec abarca un área de 312.3 km², se localiza entre los ríos San Marcos y Necaxa, y se ubica dentro de la Sierra norte de Puebla, que pertenece a la Sierra Madre Oriental.