Guest, Sign inJoin
Bethany-harrisonBethany, #1 on this list · Photo: Americasroof · CC BY-SA 3.0
Missouri rankings · Climate

Snowiest towns in Missouri

Bethany gets the most snow of Missouri’s 246 towns of 2,500+ with a snow record: about 21 inches in a normal winter at its NOAA station. Salem gets the least, about 1 inches; 0 of the 246 average 60 inches or more.

NOAA U.S. Climate Normals, 1991–2020, at each town’s nearest station with a snow record (named in each row). A described list: no letters. How grades work

#1

Bethany

Harrison County · 2,956 people
21in

7 days a year with an inch or more·Bethany station, 1 km

#T2

Country Club

Andrew County · 2,512 people
21in

7 days a year with an inch or more·Troy 3n station, 23 km

#T2

Savannah

Andrew County · 5,107 people
21in

7 days a year with an inch or more·Troy 3n station, 25 km

All 246 towns

Snow in a normal winter, most first. Towns that share a station share its figure and rank (T = tied; 211 towns here share a station).

246 towns ranked. Not here? See why a town may be missing.

#TownSnow a yearDays with 1″+NOAA station
1BethanyHarrison County · 2,956 people21 in7Bethany1.2 km
T2Country ClubAndrew County · 2,512 people21 in7Troy 3n22.7 km
T2SavannahAndrew County · 5,107 people21 in7Troy 3n25.4 km
T2St. JosephBuchanan County · 71,001 people21 in7Troy 3n24.1 km
5Grand River TownshipDeKalb County · 3,258 people21 in8Amity 4 NE14.2 km
T6Excelsior SpringsClay County · 10,819 people19 in6Kearney 3e8.2 km
T6KearneyClay County · 11,296 people19 in6Kearney 3e2.8 km
T6LawsonRay County · 2,541 people19 in6Kearney 3e11.9 km
9KirksvilleAdair County · 17,863 people19 in7Kirksville0.8 km
T10BrookfieldLinn County · 4,083 people19 in8Brookfield2.8 km
T10FultonCallaway County · 12,853 people19 in6Fulton1.1 km
T10Marceline TownshipLinn County · 2,589 people19 in8Brookfield10.8 km
T10MexicoAudrain County · 11,558 people19 in6Fulton35.4 km
T14GladstoneClay County · 27,497 people18 in6Kansas City Intl AP17.5 km
T14ParkvillePlatte County · 9,093 people18 in6Kansas City Intl AP9.5 km
T14Platte CityPlatte County · 4,911 people18 in6Kansas City Intl AP7.3 km
T14SmithvilleClay County · 11,160 people18 in6Kansas City Intl AP17.6 km
18CantonLewis County · 2,763 people18 in6Steffenville35.4 km
19ColumbiaBoone County · 130,851 people17 in5Columbia U of M0.7 km
T20CubaCrawford County · 3,288 people17 in6Rolla Missouri S&t34.7 km
T20RollaPhelps County · 20,588 people17 in6Rolla Missouri S&t1.7 km
T20St. JamesPhelps County · 3,925 people17 in6Rolla Missouri S&t15.1 km
23TrentonGrundy County · 5,557 people17 in7Trenton0.5 km
T24GreenwoodJackson County · 6,315 people17 in6Pleasant Hill Wfo7.0 km
T24HarrisonvilleCass County · 10,040 people17 in6Pleasant Hill Wfo19.3 km
T24PeculiarCass County · 6,365 people17 in6Pleasant Hill Wfo19.8 km
T24Pleasant HillCass County · 8,956 people17 in6Pleasant Hill Wfo1.1 km
T28Bellefontaine NeighborsSt. Louis County · 10,368 people17 in5St Louis Lambert Intl AP12.6 km
T28BerkeleySt. Louis County · 8,026 people17 in5St Louis Lambert Intl AP3.3 km
T28Black JackSt. Louis County · 6,547 people17 in5St Louis Lambert Intl AP10.9 km
T28Breckenridge HillsSt. Louis County · 4,350 people17 in5St Louis Lambert Intl AP4.1 km
T28BridgetonSt. Louis County · 11,277 people17 in5St Louis Lambert Intl AP4.4 km
T28ClaytonSt. Louis County · 17,807 people17 in5St Louis Lambert Intl AP12.6 km
T28DellwoodSt. Louis County · 4,825 people17 in5St Louis Lambert Intl AP8.4 km
T28FergusonSt. Louis County · 17,953 people17 in5St Louis Lambert Intl AP6.8 km
T28FlorissantSt. Louis County · 51,124 people17 in5St Louis Lambert Intl AP6.6 km
T28HazelwoodSt. Louis County · 24,849 people17 in5St Louis Lambert Intl AP5.1 km
T28JenningsSt. Louis County · 13,093 people17 in5St Louis Lambert Intl AP10.0 km
T28MaplewoodSt. Louis County · 8,033 people17 in5St Louis Lambert Intl AP16.2 km
T28NormandySt. Louis County · 4,380 people17 in5St Louis Lambert Intl AP8.1 km
T28NorthwoodsSt. Louis County · 3,579 people17 in5St Louis Lambert Intl AP9.6 km
T28Old Jamestownunincorporated, St. Louis County · 20,651 people17 in5St Louis Lambert Intl AP12.0 km
T28OlivetteSt. Louis County · 8,937 people17 in5St Louis Lambert Intl AP8.9 km
T28OverlandSt. Louis County · 15,474 people17 in5St Louis Lambert Intl AP6.3 km
T28PagedaleSt. Louis County · 2,511 people17 in5St Louis Lambert Intl AP9.8 km
T28Pine LawnSt. Louis County · 2,682 people17 in5St Louis Lambert Intl AP10.6 km
T28Richmond HeightsSt. Louis County · 9,093 people17 in5St Louis Lambert Intl AP14.0 km
T28St. AnnSt. Louis County · 12,617 people17 in5St Louis Lambert Intl AP3.1 km
T28St. JohnSt. Louis County · 6,441 people17 in5St Louis Lambert Intl AP4.8 km
T28University CitySt. Louis County · 34,657 people17 in5St Louis Lambert Intl AP10.3 km
T28Woodson TerraceSt. Louis County · 3,902 people17 in5St Louis Lambert Intl AP2.9 km
52AshlandBoone County · 5,221 people16 in5Columbia Rgnl AP1.9 km
T53Moscow MillsLincoln County · 4,388 people16 in5Elsberry 1 S26.6 km
T53TroyLincoln County · 15,201 people16 in5Elsberry 1 S26.1 km
55Monroe CityMonroe County · 2,714 people16 in6Shelbina27.1 km
T56Bowling GreenPike County · 4,472 people16 in4Bowling Green 1 E2.7 km
T56VandaliaAudrain County · 3,029 people16 in4Bowling Green 1 E27.7 km
T58MaryvilleNodaway County · 10,092 people15 in5Maryville 2e3.1 km
T58Polk TownshipNodaway County · 13,673 people15 in5Maryville 2e2.7 km
T60CentraliaBoone County · 4,767 people15 in5Moberly34.9 km
T60MaconMacon County · 5,532 people15 in5Moberly36.0 km
T60MoberlyRandolph County · 13,719 people15 in5Moberly0.1 km
63UnionFranklin County · 13,445 people14 in5Union1.0 km
64ChillicotheLivingston County · 9,114 people14 in6Chillicothe 2s2.4 km
T65Lemayunincorporated, St. Louis County · 16,228 people14 in5Cahokia8.7 km
T65LexingtonLafayette County · 4,568 people14 in5Lexington 3e1.2 km
T65RichmondRay County · 5,968 people14 in5Lexington 3e14.4 km
T65St. LouisSt. Louis city · 278,144 people14 in5Cahokia8.8 km
T69BattlefieldGreene County · 6,361 people14 in4Springfield13.2 km
T69HigginsvilleLafayette County · 4,770 people14 in5Higginsville1.9 km
T69RepublicGreene County · 22,404 people14 in4Springfield7.5 km
T69SpringfieldGreene County · 169,847 people14 in4Springfield10.5 km
T69WillardGreene County · 6,904 people14 in4Springfield6.6 km
T74CottlevilleSt. Charles County · 6,717 people14 in5Weldon Spring NWS6.2 km
T74Dardenne PrairieSt. Charles County · 15,032 people14 in5Weldon Spring NWS5.5 km
T74Lake St. LouisSt. Charles County · 19,129 people14 in5Weldon Spring NWS12.7 km
T74O'FallonSt. Charles County · 96,101 people14 in5Weldon Spring NWS9.5 km
T74St. PaulSt. Charles County · 3,849 people14 in5Weldon Spring NWS17.4 km
T74Weldon SpringSt. Charles County · 5,301 people14 in5Weldon Spring NWS2.9 km
T74WentzvilleSt. Charles County · 49,495 people14 in5Weldon Spring NWS20.6 km
T74Wright CityWarren County · 5,854 people14 in5Weldon Spring NWS34.0 km
82BoonvilleCooper County · 7,867 people13 in6Boonville1.6 km
T83BucknerJackson County · 2,891 people13 in5Independence18.0 km
T83IndependenceJackson County · 121,675 people13 in5Independence3.7 km
T83LibertyClay County · 31,319 people13 in5Independence19.8 km
T83Pleasant ValleyClay County · 2,747 people13 in5Independence18.8 km
T83Sugar CreekJackson County · 3,209 people13 in5Independence8.9 km
T88SedaliaPettis County · 22,621 people13 in4Sedalia Wtp3.5 km
T88Whiteman AFBunincorporated, Johnson County · 3,517 people13 in4Sedalia Wtp29.0 km
90CarrolltonCarroll County · 3,499 people13 in5Carrollton0.7 km
T91HannibalMarion County · 16,804 people12 in7Palmyra11.8 km
T91PalmyraMarion County · 3,649 people12 in7Palmyra3.5 km
93Knob NosterJohnson County · 2,997 people12 in5Sweet Springs25.3 km
T94AuroraLawrence County · 7,686 people12 in4Billings 1sw15.9 km
T94CleverChristian County · 3,143 people12 in4Billings 1sw9.6 km
T94Mount VernonLawrence County · 4,835 people12 in4Billings 1sw22.3 km
T94Oak GroveJackson County · 9,370 people12 in5Elm17.4 km
T94OdessaLafayette County · 5,721 people12 in5Elm15.8 km
T94WarrensburgJohnson County · 20,283 people12 in5Elm30.0 km
100PotosiWashington County · 2,568 people12 in5Potosi 4 SW7.2 km
T101EurekaSt. Louis County · 13,422 people11 in3Pacific10.9 km
T101Gray Summitunincorporated, Franklin County · 2,991 people11 in3Pacific4.8 km
T101PacificFranklin County · 7,824 people11 in3Pacific1.9 km
T101Villa Ridgeunincorporated, Franklin County · 2,835 people11 in3Pacific10.0 km
T101WildwoodSt. Louis County · 34,955 people11 in3Pacific13.5 km
T106ClintonHenry County · 9,504 people11 in4Clinton2.7 km
T106WindsorHenry County · 2,869 people11 in4Clinton26.5 km
T106Windsor TownshipHenry County · 3,454 people11 in4Clinton23.0 km
T109Kansas CityJackson County · 521,220 people11 in4Kansas City Downtown AP4.0 km
T109LickingTexas County · 2,958 people11 in3Licking 4n6.3 km
T109North Kansas CityClay County · 5,613 people11 in4Kansas City Downtown AP3.4 km
T109RiversidePlatte County · 4,581 people11 in4Kansas City Downtown AP6.5 km
T109Sherrill TownshipTexas County · 5,574 people11 in3Licking 4n6.2 km
T114Glasgow Villageunincorporated, St. Louis County · 5,504 people11 in4Edwardsville 2 W17.9 km
T114Spanish Lakeunincorporated, St. Louis County · 17,873 people11 in4Edwardsville 2 W17.9 km
116OwensvilleGasconade County · 2,802 people10 in4Freedom21.7 km
T117Burdine TownshipTexas County · 3,327 people10 in4Mtn Grove 2 N16.6 km
T117Mountain GroveWright County · 4,754 people10 in4Mtn Grove 2 N2.3 km
119FayetteHoward County · 2,848 people10 in4NEW Franklin 1w15.7 km
T120Afftonunincorporated, St. Louis County · 19,052 people10 in4Valley Park14.4 km
T120ArnoldJefferson County · 20,994 people10 in4Valley Park18.1 km
T120BallwinSt. Louis County · 30,901 people10 in4Valley Park6.5 km
T120BrentwoodSt. Louis County · 8,079 people10 in4Valley Park14.4 km
T120Byrnes MillJefferson County · 3,183 people10 in4Valley Park14.9 km
T120Concordunincorporated, St. Louis County · 18,368 people10 in4Valley Park13.3 km
T120CrestwoodSt. Louis County · 12,207 people10 in4Valley Park9.9 km
T120Des PeresSt. Louis County · 9,102 people10 in4Valley Park6.1 km
T120EllisvilleSt. Louis County · 10,315 people10 in4Valley Park9.1 km
T120FentonSt. Louis County · 4,060 people10 in4Valley Park4.8 km
T120Fort Leonard Woodunincorporated, Pulaski County · 15,432 people10 in2Waynesville 2 W11.1 km
T120FrontenacSt. Louis County · 3,790 people10 in4Valley Park10.3 km
T120GlendaleSt. Louis County · 6,060 people10 in4Valley Park10.3 km
T120Green ParkSt. Louis County · 2,670 people10 in4Valley Park13.9 km
T120High Ridgeunincorporated, Jefferson County · 3,714 people10 in4Valley Park11.3 km
T120KirkwoodSt. Louis County · 29,331 people10 in4Valley Park6.7 km
T120LadueSt. Louis County · 8,934 people10 in4Valley Park12.8 km
T120ManchesterSt. Louis County · 18,069 people10 in4Valley Park3.1 km
T120Mehlvilleunincorporated, St. Louis County · 29,805 people10 in4Valley Park16.6 km
T120Murphyunincorporated, Jefferson County · 8,285 people10 in4Valley Park7.3 km
T120Rock HillSt. Louis County · 4,668 people10 in4Valley Park12.3 km
T120Sappingtonunincorporated, St. Louis County · 7,367 people10 in4Valley Park10.9 km
T120ShrewsburySt. Louis County · 6,231 people10 in4Valley Park14.6 km
T120St. RobertPulaski County · 5,602 people10 in2Waynesville 2 W6.8 km
T120Sunset HillsSt. Louis County · 9,075 people10 in4Valley Park7.8 km
T120Valley ParkSt. Louis County · 6,767 people10 in4Valley Park0.9 km
T120WaynesvillePulaski County · 5,558 people10 in2Waynesville 2 W1.2 km
T120Webster GrovesSt. Louis County · 23,450 people10 in4Valley Park12.4 km
148LouisianaPike County · 3,208 people10 in3Louisiana1.8 km
T149CaliforniaMoniteau County · 4,523 people10 in4California0.9 km
T149TiptonMoniteau County · 2,766 people10 in4California19.7 km
T149VersaillesMorgan County · 2,713 people10 in4California33.2 km
T152ButlerBates County · 4,317 people10 in3Butler 4w5.7 km
T152Mount Pleasant TownshipBates County · 5,093 people10 in3Butler 4w5.1 km
154FredericktownMadison County · 4,584 people9 in3Fredericktown1.3 km
T155Barnhartunincorporated, Jefferson County · 5,785 people9 in3Festus11.6 km
T155Crystal CityJefferson County · 4,694 people9 in3Festus1.9 km
T155FestusJefferson County · 14,066 people9 in3Festus1.8 km
T155HerculaneumJefferson County · 5,402 people9 in3Festus2.8 km
T155HillsboroJefferson County · 3,493 people9 in3Festus14.8 km
T155Imperialunincorporated, Jefferson County · 5,488 people9 in3Festus13.4 km
T155PevelyJefferson County · 6,239 people9 in3Festus6.2 km
162De SotoJefferson County · 6,527 people9 in3De Soto4.8 km
T163BuffaloDallas County · 3,550 people9 in4Buffalo 2n2.6 km
T163St. CharlesSt. Charles County · 72,561 people9 in3St Charles Elm Pt2.1 km
T163St. PetersSt. Charles County · 61,479 people9 in3St Charles Elm Pt8.7 km
T166Holts SummitCallaway County · 4,773 people9 in4Jefferson City Wtp9.2 km
T166Jefferson CityCole County · 42,489 people9 in4Jefferson City Wtp2.1 km
168Oakvilleunincorporated, St. Louis County · 35,333 people9 in4Waterloo16.5 km
T169Bonne TerreSt. Francois County · 6,636 people9 in3Farmington18.5 km
T169DeslogeSt. Francois County · 4,819 people9 in3Farmington13.3 km
T169FarmingtonSt. Francois County · 19,226 people9 in3Farmington1.9 km
T169Park HillsSt. Francois County · 8,753 people9 in3Farmington8.2 km
T169Terre du Lacunincorporated, St. Francois County · 2,516 people9 in3Farmington22.2 km
T169West PlainsHowell County · 12,780 people9 in2W Plains1.3 km
T175BeltonCass County · 26,193 people9 in3Unity Village18.4 km
T175Blue SpringsJackson County · 61,632 people9 in3Unity Village13.2 km
T175Grain ValleyJackson County · 16,908 people9 in3Unity Village17.5 km
T175GrandviewJackson County · 26,653 people9 in3Unity Village13.2 km
T175Lake LotawanaJackson County · 2,756 people9 in3Unity Village13.0 km
T175Lee's SummitJackson County · 107,514 people9 in3Unity Village3.1 km
T175RaymoreCass County · 26,633 people9 in3Unity Village17.0 km
T175RaytownJackson County · 29,154 people9 in3Unity Village7.6 km
183LebanonLaclede County · 15,663 people8 in3Lebanon 2w3.3 km
T184CarthageJasper County · 15,895 people8 in3Neosho31.6 km
T184ChesterfieldSt. Louis County · 49,309 people8 in3St Charles 7 SSW5.7 km
T184Clarkson ValleySt. Louis County · 2,540 people8 in3St Charles 7 SSW9.2 km
T184Creve CoeurSt. Louis County · 18,480 people8 in3St Charles 7 SSW7.4 km
T184JoplinJasper County · 53,930 people8 in3Neosho26.5 km
T184MarshallSaline County · 13,766 people8 in3Marshall2.7 km
T184Maryland HeightsSt. Louis County · 27,559 people8 in3St Charles 7 SSW5.7 km
T184NeoshoNewton County · 14,078 people8 in3Neosho2.6 km
T184St. ClairFranklin County · 4,813 people8 in3Sullivan18.0 km
T184SullivanFranklin County · 6,942 people8 in3Sullivan3.1 km
T184Town and CountrySt. Louis County · 11,619 people8 in3St Charles 7 SSW7.1 km
T184Webb CityJasper County · 13,459 people8 in3Neosho32.2 km
T196WarrentonWarren County · 9,667 people8 in3Washington33.9 km
T196WashingtonFranklin County · 15,906 people8 in3Washington3.7 km
T198Carl JunctionJasper County · 8,484 people8 in3Waco 4n15.0 km
T198OronogoJasper County · 3,204 people8 in3Waco 4n16.5 km
200AvaDouglas County · 3,231 people8 in3Mansfield18.6 km
201CameronClinton County · 7,341 people8 in3Hamilton 2w16.9 km
T202Cape GirardeauCape Girardeau County · 40,977 people8 in2Jackson12.3 km
T202ChaffeeScott County · 3,017 people8 in2Jackson21.9 km
T202JacksonCape Girardeau County · 16,033 people8 in2Jackson1.2 km
T202Scott CityScott County · 4,593 people8 in2Jackson20.6 km
T206City TownshipBarton County · 4,337 people7 in2Lamar 7n11.6 km
T206LamarBarton County · 4,337 people7 in2Lamar 7n11.6 km
208BolivarPolk County · 11,994 people7 in2Stockton Dam33.0 km
T209BransonTaney County · 12,921 people7 in2Ozark Beach17.5 km
T209ForsythTaney County · 2,752 people7 in2Ozark Beach1.3 km
T209HollisterTaney County · 4,690 people7 in2Omaha 2s.19.7 km
T209NixaChristian County · 26,597 people7 in2Ozark6.2 km
T209OzarkChristian County · 23,544 people7 in2Ozark2.1 km
T214CassvilleBarry County · 3,301 people7 in2Monett 4sw22.1 km
T214MonettBarry County · 10,248 people7 in2Monett 4sw7.4 km
T216CaruthersvillePemiscot County · 5,211 people7 in3Portageville26.0 km
T216MaldenDunklin County · 3,493 people7 in3Portageville33.8 km
T216New MadridNew Madrid County · 2,586 people7 in3Portageville23.4 km
T216PortagevilleNew Madrid County · 2,702 people7 in3Portageville1.8 km
T220Center TownshipVernon County · 9,550 people6 in3Nevada Wtp4.3 km
T220Mountain ViewHowell County · 2,661 people6 in2White Church 6 NNE8.4 km
T220NevadaVernon County · 8,404 people6 in3Nevada Wtp2.2 km
T223Duck Creek TownshipStoddard County · 3,016 people5 in2Poplar Bluff27.6 km
T223Liberty TownshipStoddard County · 14,741 people5 in2Poplar Bluff34.4 km
T223Poplar BluffButler County · 16,295 people5 in2Poplar Bluff1.0 km
T226MarshfieldWebster County · 8,078 people5 in2Marshfield 4 WSW6.7 km
T226RogersvilleWebster County · 5,754 people5 in2Marshfield 4 WSW24.6 km
T226StraffordGreene County · 2,789 people5 in2Marshfield 4 WSW13.4 km
229PerryvillePerry County · 8,593 people5 in2Perryville Wtp3.9 km
T230CamdentonCamden County · 4,050 people4 in2Lakeside24.0 km
T230EldonMiller County · 4,785 people4 in2Lakeside16.8 km
T230Osage BeachCamden County · 5,079 people4 in2Lakeside7.8 km
T230Ste. GenevieveSte. Genevieve County · 5,065 people4 in2Kaskaskia Rvr Navigation Lock9.3 km
234Piney TownshipTexas County · 5,071 people4 in2Houston1.0 km
T235Castor TownshipStoddard County · 4,651 people3 in2Sikeston Pwr Stn28.4 km
T235CharlestonMississippi County · 4,731 people3 in2Sikeston Pwr Stn26.1 km
T235DexterStoddard County · 7,851 people3 in2Sikeston Pwr Stn31.7 km
T235East PrairieMississippi County · 2,841 people3 in2Sikeston Pwr Stn23.9 km
T235Pike TownshipStoddard County · 3,577 people3 in2Sikeston Pwr Stn26.2 km
T235SikestonScott County · 15,983 people3 in2Sikeston Pwr Stn3.3 km
T241Cotton Hill TownshipDunklin County · 4,700 people3 in1Saint Francis17.9 km
T241Union TownshipDunklin County · 3,242 people3 in1Saint Francis9.6 km
T243Independence TownshipDunklin County · 11,792 people3 in1Blytheville36.7 km
T243KennettDunklin County · 10,118 people3 in1Blytheville37.4 km
245El Dorado SpringsCedar County · 3,642 people2 in1Eldorado Springs0.7 km
246SalemDent County · 4,674 people1 in0Salem0.6 km

A station’s normal can differ from the town’s own when the station sits higher or lower; each town’s Climate page names its station and checks it.

Quick answers

Questions people ask

Which Missouri town gets the most snow?

Bethany (Harrison County), about 21 inches in a normal winter at the Bethany station.

What part of Missouri gets the least amount of snow?

Among towns of 2,500+, the least snow falls in Salem (Dent County, about 1 in), El Dorado Springs (Cedar County, about 2 in), Independence Township (Dunklin County, about 3 in), on NOAA’s 1991–2020 normals at each town’s station. See the towns with the least snow.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents (247 in Missouri) whose nearest station has a snow normal of an inch or more; 1 have no station with a snow record. Smaller towns show their snow on their own Climate page.

Go deeper

More Missouri lists

Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.

All Missouri rankings →
Other states

Snowiest towns in other states