Guest, Sign inJoin
McPherson-Holland HouseGlendale, #1 on this list · McPherson-Holland House · Photo: Jon Roanhaus · CC BY-SA 3.0
Missouri rankings · 2026

Best places to live in Missouri

Glendale ranks first of Missouri’s 247 graded towns, with an A+: jobs & income (A+) and health (A+) are its strongest grades; cost of living (C) is its lowest. 56 of the 247 (23%) grade A− or better nationally, against 25% of U.S. towns.

The overall grade, sorted: cost of living, safety, schools, health, jobs & income, walkability and hazard risk, from Census, FBI, state, CDC, EPA and FEMA data. How grades work

#1

Glendale

St. Louis County · 6,060 people
A+

Strongest: jobs & income A+, health A+·lowest: cost of living C

CCost–SafetyA+SchoolsA+HealthA+JobsA−WalkB−Hazards
#2

Green Park

St. Louis County · 2,670 people
A+

Strongest: jobs & income A, cost of living A−·lowest: hazard risk C+

A−Cost–SafetyB+SchoolsA−HealthAJobsB+WalkC+Hazards
#3

Odessa

Lafayette County · 5,721 people
A+

Strongest: safety A, jobs & income A·lowest: walkability C

A−CostASafetyB+SchoolsBHealthAJobsCWalkA−Hazards

Where they are: Four of the top 10 are in St. Louis County. The top small town (2,500–9,999 residents) is Glendale, #1 overall.

All 247 towns

Overall score, highest first. The score (0–100) blends the seven livability grades and sets the order; the letter places that score among every U.S. town of 2,500+, and A+ is the top 5%, so neighbors on the list often share a letter. Each town links to its page, where the grade sheet shows every subject.

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

#TownScoreGradeWhat drives it
1GlendaleSt. Louis County · 6,060 people77.0top 0.6%A+Strongest: jobs & income A+, health A+·lowest: cost of living C
2Green ParkSt. Louis County · 2,670 people76.8top 0.7%A+Strongest: jobs & income A, cost of living A−·lowest: hazard risk C+
3OdessaLafayette County · 5,721 people75.2top 1.3%A+Strongest: safety A, jobs & income A·lowest: walkability C
4CottlevilleSt. Charles County · 6,717 people71.6top 4.5%A+Strongest: safety A+, jobs & income A+·lowest: hazard risk D
5BallwinSt. Louis County · 30,901 people71.5top 4.6%A+Strongest: jobs & income A, health A·lowest: cost of living C
6GreenwoodJackson County · 6,315 people70.9top 5.4%AStrongest: jobs & income A+, safety A·lowest: walkability C−
7KearneyClay County · 11,296 people70.7top 5.8%AStrongest: schools A, jobs & income A·lowest: hazard risk C+
8Webster GrovesSt. Louis County · 23,450 people70.5top 6.0%AStrongest: health A+, schools A+·lowest: cost of living D
9SavannahAndrew County · 5,107 people70.4top 6.2%AStrongest: cost of living A, schools A−·lowest: walkability B−
10PalmyraMarion County · 3,649 people69.4top 7.7%AStrongest: cost of living A−, walkability A−·lowest: health B−
11CrestwoodSt. Louis County · 12,207 people69.3top 8.0%AStrongest: jobs & income A+, health A·lowest: hazard risk C
12NixaChristian County · 26,597 people69.2top 8.0%AStrongest: schools A+, safety A−·lowest: cost of living C+
13OlivetteSt. Louis County · 8,937 people68.9top 8.6%AStrongest: schools A+, jobs & income A·lowest: cost of living D
14ClaytonSt. Louis County · 17,807 people68.8top 8.8%AStrongest: walkability A+, schools A+·lowest: cost of living D−
15AshlandBoone County · 5,221 people68.3top 9.6%AStrongest: health A, jobs & income A·lowest: walkability C−
16Pleasant ValleyClay County · 2,747 people67.9top 10.3%AStrongest: jobs & income A, cost of living A−·lowest: health C+
17Crystal CityJefferson County · 4,694 people67.9top 10.3%AStrongest: cost of living A, schools A−·lowest: health C
18LadueSt. Louis County · 8,934 people67.9top 10.4%AStrongest: jobs & income A+, health A+·lowest: cost of living D
19OronogoJasper County · 3,204 people67.7top 10.7%AStrongest: schools A, safety A·lowest: hazard risk C−
20Sappingtonunincorporated, St. Louis County · 7,367 people67.3top 11.7%AStrongest: schools A, health A−·lowest: cost of living C
21WildwoodSt. Louis County · 34,955 people67.0top 12.4%AStrongest: jobs & income A+, health A+·lowest: cost of living D
22Maryland HeightsSt. Louis County · 27,559 people67.0top 12.4%AStrongest: jobs & income A, schools A·lowest: safety C+
23O'FallonSt. Charles County · 96,101 people66.8top 12.8%AStrongest: jobs & income A, schools A·lowest: hazard risk C−
24SmithvilleClay County · 11,160 people66.6top 13.1%AStrongest: jobs & income A, schools A·lowest: walkability C+
25Afftonunincorporated, St. Louis County · 19,052 people66.4top 13.6%AStrongest: jobs & income A, cost of living A−·lowest: hazard risk C
26St. PaulSt. Charles County · 3,849 people66.3top 13.7%AStrongest: jobs & income A+, schools A·lowest: hazard risk D
27ChesterfieldSt. Louis County · 49,309 people66.0top 14.5%AStrongest: jobs & income A+, health A+·lowest: cost of living D
28Town and CountrySt. Louis County · 11,619 people65.8top 14.9%AStrongest: jobs & income A+, health A+·lowest: cost of living D
29Rock HillSt. Louis County · 4,668 people65.7top 15.2%A−Strongest: schools A+, jobs & income A·lowest: cost of living C−
30HigginsvilleLafayette County · 4,770 people65.7top 15.3%A−Strongest: cost of living A, hazard risk A−·lowest: schools C+
31Lake St. LouisSt. Charles County · 19,129 people65.4top 15.8%A−Strongest: jobs & income A, schools A·lowest: cost of living C−
32Concordunincorporated, St. Louis County · 18,368 people65.3top 16.0%A−Strongest: jobs & income A, health B+·lowest: hazard risk C
33ManchesterSt. Louis County · 18,069 people65.3top 16.1%A−Strongest: health A, schools A·lowest: cost of living C
34KirkwoodSt. Louis County · 29,331 people65.2top 16.1%A−Strongest: schools A+, jobs & income A·lowest: cost of living C−
35EllisvilleSt. Louis County · 10,315 people65.2top 16.2%A−Strongest: schools A, health A·lowest: cost of living D
36CaliforniaMoniteau County · 4,523 people64.7top 17.4%A−Strongest: cost of living A, schools A−·lowest: health C
37CentraliaBoone County · 4,767 people64.6top 17.8%A−Strongest: cost of living A, schools A−·lowest: jobs & income C
38Clarkson ValleySt. Louis County · 2,540 people64.4top 18.2%A−Strongest: jobs & income A+, health A+·lowest: cost of living D
39High Ridgeunincorporated, Jefferson County · 3,714 people63.6top 20.1%A−Strongest: cost of living A, jobs & income A−·lowest: hazard risk C−
40Mehlvilleunincorporated, St. Louis County · 29,805 people63.6top 20.2%A−Strongest: jobs & income A−, cost of living B+·lowest: hazard risk C
41Dardenne PrairieSt. Charles County · 15,032 people63.6top 20.2%A−Strongest: jobs & income A+, schools A·lowest: hazard risk D
42ParkvillePlatte County · 9,093 people63.5top 20.4%A−Strongest: jobs & income A+, health A−·lowest: cost of living C−
43St. PetersSt. Charles County · 61,479 people63.4top 20.5%A−Strongest: schools A, jobs & income A·lowest: hazard risk C
44FentonSt. Louis County · 4,060 people63.4top 20.6%A−Strongest: schools A, health A−·lowest: cost of living C−
45BattlefieldGreene County · 6,361 people63.4top 20.7%A−Strongest: jobs & income A, health A−·lowest: walkability C−
46EurekaSt. Louis County · 13,422 people63.0top 21.5%A−Strongest: schools A, health A−·lowest: hazard risk C−
47Pleasant HillCass County · 8,956 people63.0top 21.5%A−Strongest: schools A−, safety B+·lowest: walkability C+
48BrentwoodSt. Louis County · 8,079 people62.9top 21.8%A−Strongest: schools A+, health A+·lowest: safety D
49WillardGreene County · 6,904 people62.8top 21.9%A−Strongest: schools A−, jobs & income B+·lowest: walkability C
50FrontenacSt. Louis County · 3,790 people62.8top 22.0%A−Strongest: schools A+, health A+·lowest: cost of living C−
51JacksonCape Girardeau County · 16,033 people62.5top 22.6%A−Strongest: schools A−, cost of living B+·lowest: hazard risk C−
52Marceline TownshipLinn County · 2,589 people62.3top 23.1%A−Strongest: cost of living A+, schools A+·lowest: health C−
53LawsonRay County · 2,541 people62.3top 23.2%A−Strongest: schools A, cost of living A−·lowest: health C
54WentzvilleSt. Charles County · 49,495 people61.9top 24.3%A−Strongest: jobs & income A, schools A·lowest: cost of living C
55Weldon SpringSt. Charles County · 5,301 people61.8top 24.6%A−Strongest: schools A+, jobs & income A·lowest: cost of living D
56Knob NosterJohnson County · 2,997 people61.7top 24.8%A−Strongest: schools A−, cost of living A−·lowest: walkability C−
57Lake LotawanaJackson County · 2,756 people61.6top 25.2%B+Strongest: jobs & income A, schools A·lowest: cost of living D
58Oakvilleunincorporated, St. Louis County · 35,333 people61.6top 25.3%B+Strongest: jobs & income A−, health A−·lowest: hazard risk C−
59CantonLewis County · 2,763 people61.5top 25.5%B+Strongest: cost of living A+, safety A·lowest: jobs & income D
60St. CharlesSt. Charles County · 72,561 people61.5top 25.5%B+Strongest: jobs & income A−, health B+·lowest: hazard risk C−
61HerculaneumJefferson County · 5,402 people61.5top 25.6%B+Strongest: jobs & income A, schools A·lowest: hazard risk C−
62ArnoldJefferson County · 20,994 people61.4top 25.8%B+Strongest: jobs & income A−, cost of living A−·lowest: hazard risk C−
63Sunset HillsSt. Louis County · 9,075 people61.3top 26.2%B+Strongest: jobs & income A, health A·lowest: cost of living D
64OzarkChristian County · 23,544 people61.2top 26.4%B+Strongest: schools A, safety B+·lowest: cost of living C+
65Creve CoeurSt. Louis County · 18,480 people61.2top 26.4%B+Strongest: jobs & income A+, schools A·lowest: cost of living D−
66LibertyClay County · 31,319 people60.9top 27.1%B+Strongest: schools A−, health A−·lowest: safety C+
67CleverChristian County · 3,143 people60.9top 27.3%B+Strongest: jobs & income A−, schools B+·lowest: walkability C
68MaplewoodSt. Louis County · 8,033 people60.4top 28.3%B+Strongest: walkability A+, schools A·lowest: safety D−
69RepublicGreene County · 22,404 people60.3top 28.7%B+Strongest: schools A, hazard risk B·lowest: health C+
70Lemayunincorporated, St. Louis County · 16,228 people60.2top 28.9%B+Strongest: cost of living A, walkability A−·lowest: hazard risk C−
71WashingtonFranklin County · 15,906 people59.7top 30.0%B+Strongest: cost of living A−, walkability A−·lowest: hazard risk C−
72FayetteHoward County · 2,848 people59.6top 30.5%B+Strongest: cost of living A, walkability A·lowest: schools C
73FestusJefferson County · 14,066 people59.6top 30.5%B+Strongest: schools A+, cost of living A−·lowest: health C
74Holts SummitCallaway County · 4,773 people59.4top 30.8%B+Strongest: jobs & income A−, cost of living A−·lowest: walkability D
75RaymoreCass County · 26,633 people59.4top 30.9%B+Strongest: jobs & income A, health B+·lowest: cost of living C+
76Grain ValleyJackson County · 16,908 people59.4top 31.0%B+Strongest: schools A, jobs & income A−·lowest: cost of living C+
77RogersvilleWebster County · 5,754 people58.3top 33.7%B+Strongest: safety B+, schools B+·lowest: health C+
78Des PeresSt. Louis County · 9,102 people58.1top 34.4%B+Strongest: jobs & income A+, health A+·lowest: safety D
79TroyLincoln County · 15,201 people58.0top 34.7%B+Strongest: cost of living A−, schools B·lowest: health C
80Wright CityWarren County · 5,854 people58.0top 34.7%B+Strongest: cost of living A−, schools A−·lowest: walkability C−
81Lee's SummitJackson County · 107,514 people57.6top 35.8%BStrongest: schools A, jobs & income A·lowest: cost of living C−
82Polk TownshipNodaway County · 13,673 people57.4top 36.4%BStrongest: schools B+, walkability B+·lowest: jobs & income C
83Ste. GenevieveSte. Genevieve County · 5,065 people57.2top 36.7%BStrongest: cost of living A, schools A−·lowest: hazard risk C−
84Blue SpringsJackson County · 61,632 people57.1top 37.0%BStrongest: schools A, jobs & income A−·lowest: safety C
85Country ClubAndrew County · 2,512 people57.0top 37.4%BStrongest: schools A−, jobs & income B+·lowest: walkability C−
86Fort Leonard Woodunincorporated, Pulaski County · 15,432 people56.7top 38.0%BStrongest: health A−, walkability A−·lowest: cost of living C
87BrookfieldLinn County · 4,083 people56.5top 38.6%BStrongest: cost of living A+, schools A−·lowest: health C−
88Terre du Lacunincorporated, St. Francois County · 2,516 people56.4top 38.8%BStrongest: cost of living A−, schools B+·lowest: walkability C−
89GladstoneClay County · 27,497 people56.3top 39.1%BStrongest: schools A−, jobs & income B+·lowest: safety C
90ShrewsburySt. Louis County · 6,231 people56.3top 39.1%BStrongest: walkability A, health A·lowest: safety D
91Barnhartunincorporated, Jefferson County · 5,785 people55.9top 40.4%BStrongest: jobs & income A, health B·lowest: hazard risk C−
92ChillicotheLivingston County · 9,114 people55.9top 40.5%BStrongest: cost of living A, schools A·lowest: health D
93Gray Summitunincorporated, Franklin County · 2,991 people55.8top 40.6%BStrongest: cost of living A−, jobs & income A−·lowest: hazard risk C−
94MaryvilleNodaway County · 10,092 people55.8top 40.7%BStrongest: walkability A−, schools B+·lowest: jobs & income C−
95CubaCrawford County · 3,288 people55.7top 40.8%BStrongest: schools A−, cost of living A−·lowest: health D−
96Richmond HeightsSt. Louis County · 9,093 people55.6top 41.1%BStrongest: schools A+, health A+·lowest: safety D−
97Platte CityPlatte County · 4,911 people55.3top 41.8%BStrongest: schools A−, jobs & income B+·lowest: walkability C+
98Oak GroveJackson County · 9,370 people55.2top 42.0%BStrongest: hazard risk B+, schools B+·lowest: health C
99Murphyunincorporated, Jefferson County · 8,285 people55.1top 42.3%BStrongest: cost of living A, jobs & income B·lowest: hazard risk D
100Moscow MillsLincoln County · 4,388 people54.9top 43.1%BStrongest: safety A−, cost of living B+·lowest: walkability D
101Grand River TownshipDeKalb County · 3,258 people54.8top 43.3%BStrongest: cost of living B+, schools B+·lowest: health C−
102PeculiarCass County · 6,365 people54.7top 43.4%BStrongest: jobs & income A−, health B·lowest: walkability C
103Valley ParkSt. Louis County · 6,767 people54.7top 43.6%BStrongest: schools A, health A−·lowest: hazard risk D
104HillsboroJefferson County · 3,493 people54.5top 43.9%BStrongest: cost of living B+, schools B·lowest: hazard risk C
105Monroe CityMonroe County · 2,714 people54.1top 45.0%BStrongest: schools B+, cost of living B+·lowest: health C−
106Carl JunctionJasper County · 8,484 people54.0top 45.5%B−Strongest: jobs & income B+, schools B+·lowest: hazard risk C
107EldonMiller County · 4,785 people53.9top 45.6%B−Strongest: schools A−, hazard risk B+·lowest: health C−
108Mount VernonLawrence County · 4,835 people53.9top 45.6%B−Strongest: cost of living A−, walkability B+·lowest: health D
109WarrensburgJohnson County · 20,283 people53.9top 45.7%B−Strongest: walkability A−, hazard risk A−·lowest: safety C−
110Jefferson CityCole County · 42,489 people52.9top 48.6%B−Strongest: cost of living A−, walkability B+·lowest: safety C−
111BethanyHarrison County · 2,956 people52.2bottom 49.4%B−Strongest: walkability A−, cost of living A−·lowest: health C−
112TrentonGrundy County · 5,557 people52.0bottom 48.8%B−Strongest: walkability A, cost of living A·lowest: health D
113MarshfieldWebster County · 8,078 people51.9bottom 48.6%B−Strongest: cost of living A, walkability A−·lowest: safety C−
114Imperialunincorporated, Jefferson County · 5,488 people51.6bottom 47.9%B−Strongest: jobs & income B+, cost of living B·lowest: hazard risk C
115BucknerJackson County · 2,891 people51.5bottom 47.7%B−Strongest: cost of living A−, hazard risk B·lowest: safety C+
116Liberty TownshipStoddard County · 14,741 people51.4bottom 47.4%B−Strongest: cost of living A−, schools A−·lowest: health D
117Pike TownshipStoddard County · 3,577 people51.4bottom 47.2%B−Strongest: cost of living A+, schools A−·lowest: jobs & income D
118Bowling GreenPike County · 4,472 people51.4bottom 47.2%B−Strongest: cost of living A−, walkability A−·lowest: jobs & income D
119KirksvilleAdair County · 17,863 people51.3bottom 47.1%B−Strongest: cost of living A, walkability A−·lowest: jobs & income C−
120Castor TownshipStoddard County · 4,651 people51.1bottom 46.6%B−Strongest: cost of living A, schools A−·lowest: health D
121ForsythTaney County · 2,752 people50.3bottom 44.5%C+Strongest: schools A−, walkability B+·lowest: hazard risk C−
122FultonCallaway County · 12,853 people50.2bottom 44.0%C+Strongest: walkability A−, cost of living A−·lowest: jobs & income C−
123UnionFranklin County · 13,445 people50.2bottom 44.0%C+Strongest: cost of living A, walkability B·lowest: safety D
124OwensvilleGasconade County · 2,802 people49.8bottom 43.2%C+Strongest: cost of living A, safety B·lowest: health D
125StraffordGreene County · 2,789 people49.7bottom 42.9%C+Strongest: schools A−, cost of living A−·lowest: safety C−
126St. JamesPhelps County · 3,925 people49.6bottom 42.6%C+Strongest: hazard risk A−, walkability A−·lowest: jobs & income D
127WarrentonWarren County · 9,667 people49.6bottom 42.4%C+Strongest: cost of living A−, safety B+·lowest: health C−
128MaconMacon County · 5,532 people49.5bottom 42.2%C+Strongest: cost of living A, walkability B+·lowest: schools D
129Duck Creek TownshipStoddard County · 3,016 people49.1bottom 41.1%C+Strongest: cost of living A, schools A−·lowest: health D
130PevelyJefferson County · 6,239 people48.9bottom 40.6%C+Strongest: walkability B+, cost of living B·lowest: hazard risk C−
131PacificFranklin County · 7,824 people48.9bottom 40.6%C+Strongest: jobs & income A−, cost of living B·lowest: hazard risk D
132MarshallSaline County · 13,766 people48.9bottom 40.6%C+Strongest: walkability A−, hazard risk A−·lowest: jobs & income C−
133Excelsior SpringsClay County · 10,819 people48.9bottom 40.5%C+Strongest: cost of living A−, walkability B+·lowest: safety C−
134LickingTexas County · 2,958 people48.7bottom 40.1%C+Strongest: safety A−, cost of living B+·lowest: jobs & income D−
135CameronClinton County · 7,341 people48.7bottom 40.1%C+Strongest: cost of living A, schools B+·lowest: jobs & income C−
136Webb CityJasper County · 13,459 people48.7bottom 40.0%C+Strongest: schools A, cost of living B·lowest: safety C
137LouisianaPike County · 3,208 people48.5bottom 39.3%C+Strongest: cost of living A, walkability A−·lowest: jobs & income D−
138BolivarPolk County · 11,994 people47.6bottom 36.9%C+Strongest: schools B+, walkability B+·lowest: jobs & income C−
139AvaDouglas County · 3,231 people47.6bottom 36.7%C+Strongest: safety B+, schools B+·lowest: jobs & income D
140HarrisonvilleCass County · 10,040 people47.4bottom 36.4%C+Strongest: cost of living A, walkability B+·lowest: safety C−
141Montgomery CityMontgomery County · 2,782 people47.2bottom 35.9%C+Strongest: cost of living A−, hazard risk B+·lowest: jobs & income C−
142ColumbiaBoone County · 130,851 people47.1bottom 35.6%C+Strongest: walkability A, health B+·lowest: safety C−
143HollisterTaney County · 4,690 people46.9bottom 35.3%C+Strongest: cost of living B+, schools B·lowest: hazard risk D
144TiptonMoniteau County · 2,766 people46.2bottom 33.4%CStrongest: cost of living A+, walkability A−·lowest: jobs & income D
145Park HillsSt. Francois County · 8,753 people46.1bottom 33.2%CStrongest: cost of living A−, walkability B+·lowest: hazard risk C−
146DexterStoddard County · 7,851 people46.1bottom 33.2%CStrongest: cost of living A−, schools A−·lowest: health D
147Villa Ridgeunincorporated, Franklin County · 2,835 people45.9bottom 32.7%CStrongest: cost of living A−, schools B−·lowest: walkability D
148RollaPhelps County · 20,588 people45.9bottom 32.6%CStrongest: walkability A−, hazard risk A−·lowest: jobs & income D
149SullivanFranklin County · 6,942 people45.7bottom 32.2%CStrongest: cost of living A, walkability A−·lowest: safety D
150Scott CityScott County · 4,593 people45.7bottom 32.0%CStrongest: cost of living A−, jobs & income B−·lowest: hazard risk D
151NeoshoNewton County · 14,078 people45.6bottom 32.0%CStrongest: cost of living A, walkability B·lowest: health C−
152North Kansas CityClay County · 5,613 people45.6bottom 32.0%CStrongest: walkability A−, schools A−·lowest: safety D−
153St. RobertPulaski County · 5,602 people45.6bottom 31.9%CStrongest: schools B+, hazard risk B·lowest: jobs & income C−
154BuffaloDallas County · 3,550 people45.2bottom 30.8%CStrongest: cost of living A+, safety B·lowest: jobs & income D
155Mountain GroveWright County · 4,754 people45.1bottom 30.6%CStrongest: walkability B+, schools B+·lowest: health D−
156BeltonCass County · 26,193 people45.1bottom 30.5%CStrongest: hazard risk B, walkability B·lowest: safety C
157HannibalMarion County · 16,804 people45.0bottom 30.2%CStrongest: cost of living A−, walkability A−·lowest: health D
158St. AnnSt. Louis County · 12,617 people44.9bottom 29.9%CStrongest: walkability A, cost of living A−·lowest: schools C−
159CarrolltonCarroll County · 3,499 people44.8bottom 29.6%CStrongest: walkability A, cost of living A−·lowest: jobs & income D
160Whiteman AFBunincorporated, Johnson County · 3,517 people44.6bottom 29.3%CStrongest: hazard risk A, schools A−·lowest: cost of living D
161BoonvilleCooper County · 7,867 people44.5bottom 28.9%CStrongest: cost of living A−, hazard risk B·lowest: jobs & income C−
162LexingtonLafayette County · 4,568 people44.1bottom 28.1%CStrongest: cost of living A, hazard risk B+·lowest: jobs & income D
163RichmondRay County · 5,968 people43.9bottom 27.7%CStrongest: cost of living A, walkability A−·lowest: health D
164VersaillesMorgan County · 2,713 people43.8bottom 27.4%CStrongest: cost of living A, hazard risk A−·lowest: health D
165SedaliaPettis County · 22,621 people43.5bottom 26.7%CStrongest: walkability B+, cost of living B+·lowest: health D
166WaynesvillePulaski County · 5,558 people43.2bottom 25.9%CStrongest: schools B+, health B·lowest: jobs & income C−
167De SotoJefferson County · 6,527 people43.1bottom 25.8%CStrongest: cost of living A+, schools B+·lowest: health D−
168University CitySt. Louis County · 34,657 people43.1bottom 25.6%CStrongest: walkability A+, health A−·lowest: schools D
169ChaffeeScott County · 3,017 people43.0bottom 25.4%CStrongest: cost of living A, safety B−·lowest: schools C−
170AuroraLawrence County · 7,686 people42.9bottom 25.2%CStrongest: cost of living A−, walkability B·lowest: health D−
171Osage BeachCamden County · 5,079 people42.7bottom 24.7%C−Strongest: walkability B+, schools B+·lowest: health C−
172VandaliaAudrain County · 3,029 people42.7bottom 24.6%C−Strongest: cost of living A, hazard risk B−·lowest: health C−
173Center TownshipVernon County · 9,550 people42.5bottom 24.2%C−Strongest: walkability A−, cost of living B·lowest: health D
174MexicoAudrain County · 11,558 people42.5bottom 24.2%C−Strongest: cost of living A, walkability B·lowest: jobs & income D
175Mount Pleasant TownshipBates County · 5,093 people42.2bottom 23.7%C−Strongest: cost of living A−, hazard risk B+·lowest: jobs & income D−
176SpringfieldGreene County · 169,847 people42.1bottom 23.6%C−Strongest: walkability A−, hazard risk B+·lowest: safety D−
177PortagevilleNew Madrid County · 2,702 people41.8bottom 23.0%C−Strongest: schools A, cost of living B−·lowest: health D−
178MonettBarry County · 10,248 people41.5bottom 22.2%C−Strongest: schools B, cost of living B·lowest: health D
179FlorissantSt. Louis County · 51,124 people41.4bottom 22.0%C−Strongest: walkability A−, cost of living B·lowest: schools D
180CamdentonCamden County · 4,050 people41.3bottom 21.8%C−Strongest: walkability A−, schools B+·lowest: health D
181Black JackSt. Louis County · 6,547 people41.1bottom 21.3%C−Strongest: walkability A−, jobs & income B+·lowest: schools D
182DellwoodSt. Louis County · 4,825 people41.1bottom 21.3%C−Strongest: walkability A, cost of living A−·lowest: health D
183CassvilleBarry County · 3,301 people41.0bottom 21.1%C−Strongest: cost of living A, walkability A−·lowest: safety D
184Sugar CreekJackson County · 3,209 people40.8bottom 20.7%C−Strongest: cost of living A, walkability B·lowest: health D
185NormandySt. Louis County · 4,380 people40.8bottom 20.7%C−Strongest: walkability A+, cost of living A+·lowest: schools D−
186SalemDent County · 4,674 people40.6bottom 20.2%C−Strongest: cost of living A, schools C+·lowest: health D
187CarthageJasper County · 15,895 people40.5bottom 20.1%C−Strongest: walkability B, hazard risk B·lowest: health D−
188FredericktownMadison County · 4,584 people40.4bottom 19.7%C−Strongest: walkability A−, cost of living A−·lowest: jobs & income D
189Mountain ViewHowell County · 2,661 people40.3bottom 19.6%C−Strongest: cost of living A−, schools B·lowest: jobs & income D−
190PotosiWashington County · 2,568 people40.1bottom 19.3%C−Strongest: schools A, cost of living B+·lowest: safety D−
191Poplar BluffButler County · 16,295 people40.0bottom 19.1%C−Strongest: walkability B+, schools B+·lowest: health D−
192Sherrill TownshipTexas County · 5,574 people40.0bottom 19.0%C−Strongest: cost of living B+, schools B·lowest: jobs & income D−
193Bonne TerreSt. Francois County · 6,636 people39.9bottom 18.9%C−Strongest: cost of living A, walkability B+·lowest: health D
194NorthwoodsSt. Louis County · 3,579 people39.9bottom 18.8%C−Strongest: walkability A, cost of living B+·lowest: schools D−
195Old Jamestownunincorporated, St. Louis County · 20,651 people39.8bottom 18.7%C−Strongest: jobs & income B+, walkability B·lowest: schools D
196FarmingtonSt. Francois County · 19,226 people39.8bottom 18.6%C−Strongest: schools A−, walkability B·lowest: health D
197DeslogeSt. Francois County · 4,819 people39.3bottom 17.7%C−Strongest: cost of living A, walkability B+·lowest: health D
198WindsorHenry County · 2,869 people39.2bottom 17.6%C−Strongest: cost of living A, walkability B+·lowest: health D−
199Independence TownshipDunklin County · 11,792 people39.1bottom 17.3%C−Strongest: cost of living A, walkability B·lowest: health D−
200Kansas CityJackson County · 521,220 people39.0bottom 17.2%C−Strongest: walkability A, hazard risk B+·lowest: safety D−
201Windsor TownshipHenry County · 3,454 people38.9bottom 16.8%C−Strongest: cost of living A, walkability B·lowest: health D
202IndependenceJackson County · 121,675 people38.9bottom 16.8%C−Strongest: walkability B+, cost of living B+·lowest: safety D
203Cape GirardeauCape Girardeau County · 40,977 people38.8bottom 16.7%C−Strongest: walkability B+, cost of living B·lowest: hazard risk D
204East PrairieMississippi County · 2,841 people38.2bottom 15.4%C−Strongest: cost of living A, safety B·lowest: health D−
205ClintonHenry County · 9,504 people37.6bottom 14.6%DStrongest: walkability B+, cost of living B+·lowest: safety D
206OverlandSt. Louis County · 15,474 people37.4bottom 14.3%DStrongest: cost of living B+, walkability B+·lowest: schools D
207Pine LawnSt. Louis County · 2,682 people37.3bottom 14.1%DStrongest: walkability A+, cost of living A−·lowest: health D−
208RiversidePlatte County · 4,581 people37.3bottom 14.1%DStrongest: schools A−, hazard risk B−·lowest: safety D−
209Byrnes MillJefferson County · 3,183 people37.2bottom 13.9%DStrongest: cost of living B−, schools B−·lowest: hazard risk D
210City TownshipBarton County · 4,337 people37.0bottom 13.5%DStrongest: cost of living B, schools B−·lowest: health D−
211BridgetonSt. Louis County · 11,277 people36.9bottom 13.4%DStrongest: walkability B+, jobs & income B+·lowest: safety D−
212PerryvillePerry County · 8,593 people36.8bottom 13.2%DStrongest: walkability B+, cost of living B−·lowest: jobs & income D
213JenningsSt. Louis County · 13,093 people36.5bottom 12.8%DStrongest: walkability A+, cost of living A−·lowest: health D−
214HazelwoodSt. Louis County · 24,849 people35.3bottom 10.9%DStrongest: walkability A−, cost of living B·lowest: safety D
215LamarBarton County · 4,337 people35.2bottom 10.8%DStrongest: cost of living B, schools B−·lowest: health D−
216MoberlyRandolph County · 13,719 people35.2bottom 10.7%DStrongest: hazard risk B+, cost of living B·lowest: health D
217NevadaVernon County · 8,404 people34.9bottom 10.5%DStrongest: walkability A, cost of living B+·lowest: safety D
218ButlerBates County · 4,317 people34.9bottom 10.4%DStrongest: cost of living A−, hazard risk B+·lowest: health D−
219BransonTaney County · 12,921 people34.6bottom 10.1%DStrongest: schools A−, walkability A−·lowest: safety D−
220West PlainsHowell County · 12,780 people34.5bottom 10.0%DStrongest: schools B+, cost of living B−·lowest: health D
221St. ClairFranklin County · 4,813 people34.1bottom 9.5%DStrongest: cost of living B+, hazard risk B·lowest: health D
222RaytownJackson County · 29,154 people34.0bottom 9.5%DStrongest: hazard risk A−, cost of living B+·lowest: safety D
223St. JosephBuchanan County · 71,001 people33.8bottom 9.2%DStrongest: hazard risk B+, cost of living B+·lowest: safety D
224SikestonScott County · 15,983 people33.8bottom 9.1%DStrongest: walkability B+, cost of living B·lowest: safety D−
225Spanish Lakeunincorporated, St. Louis County · 17,873 people33.6bottom 8.8%DStrongest: walkability B+, cost of living B·lowest: health D−
226Union TownshipDunklin County · 3,242 people33.4bottom 8.7%DStrongest: cost of living A−, schools C·lowest: health D−
227St. LouisSt. Louis city · 278,144 people33.2bottom 8.3%DStrongest: walkability A+, cost of living B·lowest: safety D−
228Piney TownshipTexas County · 5,071 people32.8bottom 7.8%DStrongest: cost of living B+, hazard risk C+·lowest: health D
229KennettDunklin County · 10,118 people32.6bottom 7.6%DStrongest: cost of living A, walkability B+·lowest: health D−
230El Dorado SpringsCedar County · 3,642 people32.4bottom 7.4%DStrongest: hazard risk B, walkability B·lowest: health D
231LebanonLaclede County · 15,663 people32.4bottom 7.4%DStrongest: schools B−, cost of living B−·lowest: jobs & income D
232Cotton Hill TownshipDunklin County · 4,700 people32.2bottom 7.1%DStrongest: cost of living A, walkability B·lowest: health D−
233JoplinJasper County · 53,930 people32.0bottom 6.8%DStrongest: walkability A−, cost of living B·lowest: safety D
234Burdine TownshipTexas County · 3,327 people31.6bottom 6.5%DStrongest: cost of living B+, walkability C·lowest: health D
235BerkeleySt. Louis County · 8,026 people31.6bottom 6.5%DStrongest: walkability A, cost of living B+·lowest: safety D−
236FergusonSt. Louis County · 17,953 people30.8bottom 5.7%DStrongest: walkability A+, cost of living B+·lowest: health D−
237Woodson TerraceSt. Louis County · 3,902 people30.6bottom 5.5%DStrongest: walkability B, cost of living B·lowest: health D
238New MadridNew Madrid County · 2,586 people30.4bottom 5.3%DStrongest: cost of living B+, jobs & income C+·lowest: hazard risk D
239MaldenDunklin County · 3,493 people30.4bottom 5.3%DStrongest: cost of living A−, walkability B+·lowest: health D−
240Glasgow Villageunincorporated, St. Louis County · 5,504 people30.4bottom 5.3%DStrongest: walkability A, cost of living B·lowest: health D−
241GrandviewJackson County · 26,653 people30.3bottom 5.2%DStrongest: cost of living B+, walkability B−·lowest: safety D
242Breckenridge HillsSt. Louis County · 4,350 people30.2bottom 5.0%DStrongest: walkability A, cost of living B+·lowest: schools D
243St. JohnSt. Louis County · 6,441 people29.7bottom 4.5%D−Strongest: walkability B+, cost of living B·lowest: health D
244PagedaleSt. Louis County · 2,511 people29.6bottom 4.4%D−Strongest: walkability A, cost of living A−·lowest: schools D−
245Bellefontaine NeighborsSt. Louis County · 10,368 people28.1bottom 3.3%D−Strongest: walkability A, cost of living B+·lowest: health D−
246CharlestonMississippi County · 4,731 people26.0bottom 2.0%D−Strongest: cost of living A−, walkability B+·lowest: health D−
247CaruthersvillePemiscot County · 5,211 people14.4bottom 0.1%D−Strongest: walkability B+, cost of living C·lowest: health D−
Method

How this list is made

Each town’s overall grade blends seven livability grades: cost of living (weight 18), safety (18), schools (16), health (14), jobs & income (12), walkability (8) and hazard risk (4). A town needs 2,500+ residents and three of the first four. Letters are national, so an A here means the same as an A in any state; the list is the same towns in the same order, ranked within Missouri. Towns without their own FBI figures are graded on the rest and their page says why.

Data years: crime 2023–2025 (FBI), Census ACS 2020–2024, CDC PLACES 2025, state school tests. How grades work

Quick answers

Questions people ask

What is the best place to live in Missouri?

Glendale (St. Louis County) ranks first of 247 graded towns, with an A+; jobs & income (A+) and health (A+) are its strongest grades; cost of living (C) is its lowest. Green Park and Odessa follow.

What is the best small town in Missouri?

Among towns of 2,500 to 9,999 residents, Glendale ranks first (A+), then Green Park and Odessa.

How are these towns ranked?

By the overall grade, which blends seven livability grades from public data. The letter is national; the rank is within Missouri. The full method is on How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents with an overall grade (247 in Missouri). 172 smaller places have subject grades only; Every town is on the Missouri 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

Best places to live in other states