Storm Lake is a city in and the county seat of Buena Vista County, Iowa, United States. The population was 11,269 in the 2020 census, an increase from 10,076 in the 2000 census.