El municipio se localiza en el occidente de los llanos de San Juan, planicie de origen lacustre formada por una pequeña cuenca endorreica cuya parte más baja está ocupada por la laguna de Totolcingo, presentando afloraciones salinas de tequesquiste; limita al norte con las estribaciones meridionales de la Sierra Norte, al sur con los Llanos de San Andrés, al este con la sierra de Quimixtlán y al oeste con el valle de Tepeaca. Colinda al norte con Nopalucan, al sur con Mazapiltepec, al este con San José Chiapa y al oeste con Nopalucan. Tiene una superficie de 4.10 kilómetros cuadrados.