Este municipio se localiza en la región noroeste de la entidad, cuenta con una extensión territorial de 110.99 kilómetros cuadrados y una altitud promedio de 540 metros sobre el nivel del mar. Colinda al norte con el municipio de Huachinango, tanto al sur como al oriente con Zacatlán y al poniente colinda con el estado de Hidalgo.