Город находится на равнинной территории в центре Марийской низменности, в 50 км к северу от Волги, на южной границе таёжной зоны в районе смешанных лесов, на берегах реки Малая Кокшага, разделяющей город на две части. Площадь города составляет 101,8 кв. км