Gannat is situated on the D2009 (previously the Route nationale 9) between Moulins and Clermont-Ferrand), D2209 to Vichy and D998 to Néris-les-Bains. It is 18 kilometres west of Vichy and 43 kilometres north of Clermont-Ferrand.