Home › Missouri › Rankings › Best places to live Glendale, #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
All towns Small towns (2,500–9,999) #1 St. Louis County · 6,060 people A+ Strongest: jobs & income A+ , health A+ · lowest: cost of living C
C Cost– SafetyA+ SchoolsA+ HealthA+ JobsA− WalkB− Hazards
38.52° N · 90.34° W #2 St. Louis County · 2,670 people A+ Strongest: jobs & income A , cost of living A− · lowest: hazard risk C+
A− Cost– SafetyB+ SchoolsA− HealthA JobsB+ WalkC+ Hazards
#3 Lafayette County · 5,721 people A+ Strongest: safety A , jobs & income A · lowest: walkability C
A− CostA SafetyB+ SchoolsB HealthA JobsC WalkA− 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.
# Town Score Grade What drives it
1 Glendale St. Louis County · 6,060 people 77.0 top 0.6% A+ Strongest: jobs & income A+ , health A+ · lowest: cost of living C 2 Green Park St. Louis County · 2,670 people 76.8 top 0.7% A+ Strongest: jobs & income A , cost of living A− · lowest: hazard risk C+ 3 Odessa Lafayette County · 5,721 people 75.2 top 1.3% A+ Strongest: safety A , jobs & income A · lowest: walkability C 4 Cottleville St. Charles County · 6,717 people 71.6 top 4.5% A+ Strongest: safety A+ , jobs & income A+ · lowest: hazard risk D 5 Ballwin St. Louis County · 30,901 people 71.5 top 4.6% A+ Strongest: jobs & income A , health A · lowest: cost of living C 6 Greenwood Jackson County · 6,315 people 70.9 top 5.4% A Strongest: jobs & income A+ , safety A · lowest: walkability C− 7 Kearney Clay County · 11,296 people 70.7 top 5.8% A Strongest: schools A , jobs & income A · lowest: hazard risk C+ 8 Webster Groves St. Louis County · 23,450 people 70.5 top 6.0% A Strongest: health A+ , schools A+ · lowest: cost of living D 9 Savannah Andrew County · 5,107 people 70.4 top 6.2% A Strongest: cost of living A , schools A− · lowest: walkability B− 10 Palmyra Marion County · 3,649 people 69.4 top 7.7% A Strongest: cost of living A− , walkability A− · lowest: health B− 11 Crestwood St. Louis County · 12,207 people 69.3 top 8.0% A Strongest: jobs & income A+ , health A · lowest: hazard risk C 12 Nixa Christian County · 26,597 people 69.2 top 8.0% A Strongest: schools A+ , safety A− · lowest: cost of living C+ 13 Olivette St. Louis County · 8,937 people 68.9 top 8.6% A Strongest: schools A+ , jobs & income A · lowest: cost of living D 14 Clayton St. Louis County · 17,807 people 68.8 top 8.8% A Strongest: walkability A+ , schools A+ · lowest: cost of living D− 15 Ashland Boone County · 5,221 people 68.3 top 9.6% A Strongest: health A , jobs & income A · lowest: walkability C− 16 Pleasant Valley Clay County · 2,747 people 67.9 top 10.3% A Strongest: jobs & income A , cost of living A− · lowest: health C+ 17 Crystal City Jefferson County · 4,694 people 67.9 top 10.3% A Strongest: cost of living A , schools A− · lowest: health C 18 Ladue St. Louis County · 8,934 people 67.9 top 10.4% A Strongest: jobs & income A+ , health A+ · lowest: cost of living D 19 Oronogo Jasper County · 3,204 people 67.7 top 10.7% A Strongest: schools A , safety A · lowest: hazard risk C− 20 Sappington unincorporated, St. Louis County · 7,367 people 67.3 top 11.7% A Strongest: schools A , health A− · lowest: cost of living C 21 Wildwood St. Louis County · 34,955 people 67.0 top 12.4% A Strongest: jobs & income A+ , health A+ · lowest: cost of living D 22 Maryland Heights St. Louis County · 27,559 people 67.0 top 12.4% A Strongest: jobs & income A , schools A · lowest: safety C+ 23 O'Fallon St. Charles County · 96,101 people 66.8 top 12.8% A Strongest: jobs & income A , schools A · lowest: hazard risk C− 24 Smithville Clay County · 11,160 people 66.6 top 13.1% A Strongest: jobs & income A , schools A · lowest: walkability C+ 25 Affton unincorporated, St. Louis County · 19,052 people 66.4 top 13.6% A Strongest: jobs & income A , cost of living A− · lowest: hazard risk C 26 St. Paul St. Charles County · 3,849 people 66.3 top 13.7% A Strongest: jobs & income A+ , schools A · lowest: hazard risk D 27 Chesterfield St. Louis County · 49,309 people 66.0 top 14.5% A Strongest: jobs & income A+ , health A+ · lowest: cost of living D 28 Town and Country St. Louis County · 11,619 people 65.8 top 14.9% A Strongest: jobs & income A+ , health A+ · lowest: cost of living D 29 Rock Hill St. Louis County · 4,668 people 65.7 top 15.2% A− Strongest: schools A+ , jobs & income A · lowest: cost of living C− 30 Higginsville Lafayette County · 4,770 people 65.7 top 15.3% A− Strongest: cost of living A , hazard risk A− · lowest: schools C+ 31 Lake St. Louis St. Charles County · 19,129 people 65.4 top 15.8% A− Strongest: jobs & income A , schools A · lowest: cost of living C− 32 Concord unincorporated, St. Louis County · 18,368 people 65.3 top 16.0% A− Strongest: jobs & income A , health B+ · lowest: hazard risk C 33 Manchester St. Louis County · 18,069 people 65.3 top 16.1% A− Strongest: health A , schools A · lowest: cost of living C 34 Kirkwood St. Louis County · 29,331 people 65.2 top 16.1% A− Strongest: schools A+ , jobs & income A · lowest: cost of living C− 35 Ellisville St. Louis County · 10,315 people 65.2 top 16.2% A− Strongest: schools A , health A · lowest: cost of living D 36 California Moniteau County · 4,523 people 64.7 top 17.4% A− Strongest: cost of living A , schools A− · lowest: health C 37 Centralia Boone County · 4,767 people 64.6 top 17.8% A− Strongest: cost of living A , schools A− · lowest: jobs & income C 38 Clarkson Valley St. Louis County · 2,540 people 64.4 top 18.2% A− Strongest: jobs & income A+ , health A+ · lowest: cost of living D 39 High Ridge unincorporated, Jefferson County · 3,714 people 63.6 top 20.1% A− Strongest: cost of living A , jobs & income A− · lowest: hazard risk C− 40 Mehlville unincorporated, St. Louis County · 29,805 people 63.6 top 20.2% A− Strongest: jobs & income A− , cost of living B+ · lowest: hazard risk C 41 Dardenne Prairie St. Charles County · 15,032 people 63.6 top 20.2% A− Strongest: jobs & income A+ , schools A · lowest: hazard risk D 42 Parkville Platte County · 9,093 people 63.5 top 20.4% A− Strongest: jobs & income A+ , health A− · lowest: cost of living C− 43 St. Peters St. Charles County · 61,479 people 63.4 top 20.5% A− Strongest: schools A , jobs & income A · lowest: hazard risk C 44 Fenton St. Louis County · 4,060 people 63.4 top 20.6% A− Strongest: schools A , health A− · lowest: cost of living C− 45 Battlefield Greene County · 6,361 people 63.4 top 20.7% A− Strongest: jobs & income A , health A− · lowest: walkability C− 46 Eureka St. Louis County · 13,422 people 63.0 top 21.5% A− Strongest: schools A , health A− · lowest: hazard risk C− 47 Pleasant Hill Cass County · 8,956 people 63.0 top 21.5% A− Strongest: schools A− , safety B+ · lowest: walkability C+ 48 Brentwood St. Louis County · 8,079 people 62.9 top 21.8% A− Strongest: schools A+ , health A+ · lowest: safety D 49 Willard Greene County · 6,904 people 62.8 top 21.9% A− Strongest: schools A− , jobs & income B+ · lowest: walkability C 50 Frontenac St. Louis County · 3,790 people 62.8 top 22.0% A− Strongest: schools A+ , health A+ · lowest: cost of living C− 51 Jackson Cape Girardeau County · 16,033 people 62.5 top 22.6% A− Strongest: schools A− , cost of living B+ · lowest: hazard risk C− 52 Marceline Township Linn County · 2,589 people 62.3 top 23.1% A− Strongest: cost of living A+ , schools A+ · lowest: health C− 53 Lawson Ray County · 2,541 people 62.3 top 23.2% A− Strongest: schools A , cost of living A− · lowest: health C 54 Wentzville St. Charles County · 49,495 people 61.9 top 24.3% A− Strongest: jobs & income A , schools A · lowest: cost of living C 55 Weldon Spring St. Charles County · 5,301 people 61.8 top 24.6% A− Strongest: schools A+ , jobs & income A · lowest: cost of living D 56 Knob Noster Johnson County · 2,997 people 61.7 top 24.8% A− Strongest: schools A− , cost of living A− · lowest: walkability C− 57 Lake Lotawana Jackson County · 2,756 people 61.6 top 25.2% B+ Strongest: jobs & income A , schools A · lowest: cost of living D 58 Oakville unincorporated, St. Louis County · 35,333 people 61.6 top 25.3% B+ Strongest: jobs & income A− , health A− · lowest: hazard risk C− 59 Canton Lewis County · 2,763 people 61.5 top 25.5% B+ Strongest: cost of living A+ , safety A · lowest: jobs & income D 60 St. Charles St. Charles County · 72,561 people 61.5 top 25.5% B+ Strongest: jobs & income A− , health B+ · lowest: hazard risk C− 61 Herculaneum Jefferson County · 5,402 people 61.5 top 25.6% B+ Strongest: jobs & income A , schools A · lowest: hazard risk C− 62 Arnold Jefferson County · 20,994 people 61.4 top 25.8% B+ Strongest: jobs & income A− , cost of living A− · lowest: hazard risk C− 63 Sunset Hills St. Louis County · 9,075 people 61.3 top 26.2% B+ Strongest: jobs & income A , health A · lowest: cost of living D 64 Ozark Christian County · 23,544 people 61.2 top 26.4% B+ Strongest: schools A , safety B+ · lowest: cost of living C+ 65 Creve Coeur St. Louis County · 18,480 people 61.2 top 26.4% B+ Strongest: jobs & income A+ , schools A · lowest: cost of living D− 66 Liberty Clay County · 31,319 people 60.9 top 27.1% B+ Strongest: schools A− , health A− · lowest: safety C+ 67 Clever Christian County · 3,143 people 60.9 top 27.3% B+ Strongest: jobs & income A− , schools B+ · lowest: walkability C 68 Maplewood St. Louis County · 8,033 people 60.4 top 28.3% B+ Strongest: walkability A+ , schools A · lowest: safety D− 69 Republic Greene County · 22,404 people 60.3 top 28.7% B+ Strongest: schools A , hazard risk B · lowest: health C+ 70 Lemay unincorporated, St. Louis County · 16,228 people 60.2 top 28.9% B+ Strongest: cost of living A , walkability A− · lowest: hazard risk C− 71 Washington Franklin County · 15,906 people 59.7 top 30.0% B+ Strongest: cost of living A− , walkability A− · lowest: hazard risk C− 72 Fayette Howard County · 2,848 people 59.6 top 30.5% B+ Strongest: cost of living A , walkability A · lowest: schools C 73 Festus Jefferson County · 14,066 people 59.6 top 30.5% B+ Strongest: schools A+ , cost of living A− · lowest: health C 74 Holts Summit Callaway County · 4,773 people 59.4 top 30.8% B+ Strongest: jobs & income A− , cost of living A− · lowest: walkability D 75 Raymore Cass County · 26,633 people 59.4 top 30.9% B+ Strongest: jobs & income A , health B+ · lowest: cost of living C+ 76 Grain Valley Jackson County · 16,908 people 59.4 top 31.0% B+ Strongest: schools A , jobs & income A− · lowest: cost of living C+ 77 Rogersville Webster County · 5,754 people 58.3 top 33.7% B+ Strongest: safety B+ , schools B+ · lowest: health C+ 78 Des Peres St. Louis County · 9,102 people 58.1 top 34.4% B+ Strongest: jobs & income A+ , health A+ · lowest: safety D 79 Troy Lincoln County · 15,201 people 58.0 top 34.7% B+ Strongest: cost of living A− , schools B · lowest: health C 80 Wright City Warren County · 5,854 people 58.0 top 34.7% B+ Strongest: cost of living A− , schools A− · lowest: walkability C− 81 Lee's Summit Jackson County · 107,514 people 57.6 top 35.8% B Strongest: schools A , jobs & income A · lowest: cost of living C− 82 Polk Township Nodaway County · 13,673 people 57.4 top 36.4% B Strongest: schools B+ , walkability B+ · lowest: jobs & income C 83 Ste. Genevieve Ste. Genevieve County · 5,065 people 57.2 top 36.7% B Strongest: cost of living A , schools A− · lowest: hazard risk C− 84 Blue Springs Jackson County · 61,632 people 57.1 top 37.0% B Strongest: schools A , jobs & income A− · lowest: safety C 85 Country Club Andrew County · 2,512 people 57.0 top 37.4% B Strongest: schools A− , jobs & income B+ · lowest: walkability C− 86 Fort Leonard Wood unincorporated, Pulaski County · 15,432 people 56.7 top 38.0% B Strongest: health A− , walkability A− · lowest: cost of living C 87 Brookfield Linn County · 4,083 people 56.5 top 38.6% B Strongest: cost of living A+ , schools A− · lowest: health C− 88 Terre du Lac unincorporated, St. Francois County · 2,516 people 56.4 top 38.8% B Strongest: cost of living A− , schools B+ · lowest: walkability C− 89 Gladstone Clay County · 27,497 people 56.3 top 39.1% B Strongest: schools A− , jobs & income B+ · lowest: safety C 90 Shrewsbury St. Louis County · 6,231 people 56.3 top 39.1% B Strongest: walkability A , health A · lowest: safety D 91 Barnhart unincorporated, Jefferson County · 5,785 people 55.9 top 40.4% B Strongest: jobs & income A , health B · lowest: hazard risk C− 92 Chillicothe Livingston County · 9,114 people 55.9 top 40.5% B Strongest: cost of living A , schools A · lowest: health D 93 Gray Summit unincorporated, Franklin County · 2,991 people 55.8 top 40.6% B Strongest: cost of living A− , jobs & income A− · lowest: hazard risk C− 94 Maryville Nodaway County · 10,092 people 55.8 top 40.7% B Strongest: walkability A− , schools B+ · lowest: jobs & income C− 95 Cuba Crawford County · 3,288 people 55.7 top 40.8% B Strongest: schools A− , cost of living A− · lowest: health D− 96 Richmond Heights St. Louis County · 9,093 people 55.6 top 41.1% B Strongest: schools A+ , health A+ · lowest: safety D− 97 Platte City Platte County · 4,911 people 55.3 top 41.8% B Strongest: schools A− , jobs & income B+ · lowest: walkability C+ 98 Oak Grove Jackson County · 9,370 people 55.2 top 42.0% B Strongest: hazard risk B+ , schools B+ · lowest: health C 99 Murphy unincorporated, Jefferson County · 8,285 people 55.1 top 42.3% B Strongest: cost of living A , jobs & income B · lowest: hazard risk D 100 Moscow Mills Lincoln County · 4,388 people 54.9 top 43.1% B Strongest: safety A− , cost of living B+ · lowest: walkability D 101 Grand River Township DeKalb County · 3,258 people 54.8 top 43.3% B Strongest: cost of living B+ , schools B+ · lowest: health C− 102 Peculiar Cass County · 6,365 people 54.7 top 43.4% B Strongest: jobs & income A− , health B · lowest: walkability C 103 Valley Park St. Louis County · 6,767 people 54.7 top 43.6% B Strongest: schools A , health A− · lowest: hazard risk D 104 Hillsboro Jefferson County · 3,493 people 54.5 top 43.9% B Strongest: cost of living B+ , schools B · lowest: hazard risk C 105 Monroe City Monroe County · 2,714 people 54.1 top 45.0% B Strongest: schools B+ , cost of living B+ · lowest: health C− 106 Carl Junction Jasper County · 8,484 people 54.0 top 45.5% B− Strongest: jobs & income B+ , schools B+ · lowest: hazard risk C 107 Eldon Miller County · 4,785 people 53.9 top 45.6% B− Strongest: schools A− , hazard risk B+ · lowest: health C− 108 Mount Vernon Lawrence County · 4,835 people 53.9 top 45.6% B− Strongest: cost of living A− , walkability B+ · lowest: health D 109 Warrensburg Johnson County · 20,283 people 53.9 top 45.7% B− Strongest: walkability A− , hazard risk A− · lowest: safety C− 110 Jefferson City Cole County · 42,489 people 52.9 top 48.6% B− Strongest: cost of living A− , walkability B+ · lowest: safety C− 111 Bethany Harrison County · 2,956 people 52.2 bottom 49.4% B− Strongest: walkability A− , cost of living A− · lowest: health C− 112 Trenton Grundy County · 5,557 people 52.0 bottom 48.8% B− Strongest: walkability A , cost of living A · lowest: health D 113 Marshfield Webster County · 8,078 people 51.9 bottom 48.6% B− Strongest: cost of living A , walkability A− · lowest: safety C− 114 Imperial unincorporated, Jefferson County · 5,488 people 51.6 bottom 47.9% B− Strongest: jobs & income B+ , cost of living B · lowest: hazard risk C 115 Buckner Jackson County · 2,891 people 51.5 bottom 47.7% B− Strongest: cost of living A− , hazard risk B · lowest: safety C+ 116 Liberty Township Stoddard County · 14,741 people 51.4 bottom 47.4% B− Strongest: cost of living A− , schools A− · lowest: health D 117 Pike Township Stoddard County · 3,577 people 51.4 bottom 47.2% B− Strongest: cost of living A+ , schools A− · lowest: jobs & income D 118 Bowling Green Pike County · 4,472 people 51.4 bottom 47.2% B− Strongest: cost of living A− , walkability A− · lowest: jobs & income D 119 Kirksville Adair County · 17,863 people 51.3 bottom 47.1% B− Strongest: cost of living A , walkability A− · lowest: jobs & income C− 120 Castor Township Stoddard County · 4,651 people 51.1 bottom 46.6% B− Strongest: cost of living A , schools A− · lowest: health D 121 Forsyth Taney County · 2,752 people 50.3 bottom 44.5% C+ Strongest: schools A− , walkability B+ · lowest: hazard risk C− 122 Fulton Callaway County · 12,853 people 50.2 bottom 44.0% C+ Strongest: walkability A− , cost of living A− · lowest: jobs & income C− 123 Union Franklin County · 13,445 people 50.2 bottom 44.0% C+ Strongest: cost of living A , walkability B · lowest: safety D 124 Owensville Gasconade County · 2,802 people 49.8 bottom 43.2% C+ Strongest: cost of living A , safety B · lowest: health D 125 Strafford Greene County · 2,789 people 49.7 bottom 42.9% C+ Strongest: schools A− , cost of living A− · lowest: safety C− 126 St. James Phelps County · 3,925 people 49.6 bottom 42.6% C+ Strongest: hazard risk A− , walkability A− · lowest: jobs & income D 127 Warrenton Warren County · 9,667 people 49.6 bottom 42.4% C+ Strongest: cost of living A− , safety B+ · lowest: health C− 128 Macon Macon County · 5,532 people 49.5 bottom 42.2% C+ Strongest: cost of living A , walkability B+ · lowest: schools D 129 Duck Creek Township Stoddard County · 3,016 people 49.1 bottom 41.1% C+ Strongest: cost of living A , schools A− · lowest: health D 130 Pevely Jefferson County · 6,239 people 48.9 bottom 40.6% C+ Strongest: walkability B+ , cost of living B · lowest: hazard risk C− 131 Pacific Franklin County · 7,824 people 48.9 bottom 40.6% C+ Strongest: jobs & income A− , cost of living B · lowest: hazard risk D 132 Marshall Saline County · 13,766 people 48.9 bottom 40.6% C+ Strongest: walkability A− , hazard risk A− · lowest: jobs & income C− 133 Excelsior Springs Clay County · 10,819 people 48.9 bottom 40.5% C+ Strongest: cost of living A− , walkability B+ · lowest: safety C− 134 Licking Texas County · 2,958 people 48.7 bottom 40.1% C+ Strongest: safety A− , cost of living B+ · lowest: jobs & income D− 135 Cameron Clinton County · 7,341 people 48.7 bottom 40.1% C+ Strongest: cost of living A , schools B+ · lowest: jobs & income C− 136 Webb City Jasper County · 13,459 people 48.7 bottom 40.0% C+ Strongest: schools A , cost of living B · lowest: safety C 137 Louisiana Pike County · 3,208 people 48.5 bottom 39.3% C+ Strongest: cost of living A , walkability A− · lowest: jobs & income D− 138 Bolivar Polk County · 11,994 people 47.6 bottom 36.9% C+ Strongest: schools B+ , walkability B+ · lowest: jobs & income C− 139 Ava Douglas County · 3,231 people 47.6 bottom 36.7% C+ Strongest: safety B+ , schools B+ · lowest: jobs & income D 140 Harrisonville Cass County · 10,040 people 47.4 bottom 36.4% C+ Strongest: cost of living A , walkability B+ · lowest: safety C− 141 Montgomery City Montgomery County · 2,782 people 47.2 bottom 35.9% C+ Strongest: cost of living A− , hazard risk B+ · lowest: jobs & income C− 142 Columbia Boone County · 130,851 people 47.1 bottom 35.6% C+ Strongest: walkability A , health B+ · lowest: safety C− 143 Hollister Taney County · 4,690 people 46.9 bottom 35.3% C+ Strongest: cost of living B+ , schools B · lowest: hazard risk D 144 Tipton Moniteau County · 2,766 people 46.2 bottom 33.4% C Strongest: cost of living A+ , walkability A− · lowest: jobs & income D 145 Park Hills St. Francois County · 8,753 people 46.1 bottom 33.2% C Strongest: cost of living A− , walkability B+ · lowest: hazard risk C− 146 Dexter Stoddard County · 7,851 people 46.1 bottom 33.2% C Strongest: cost of living A− , schools A− · lowest: health D 147 Villa Ridge unincorporated, Franklin County · 2,835 people 45.9 bottom 32.7% C Strongest: cost of living A− , schools B− · lowest: walkability D 148 Rolla Phelps County · 20,588 people 45.9 bottom 32.6% C Strongest: walkability A− , hazard risk A− · lowest: jobs & income D 149 Sullivan Franklin County · 6,942 people 45.7 bottom 32.2% C Strongest: cost of living A , walkability A− · lowest: safety D 150 Scott City Scott County · 4,593 people 45.7 bottom 32.0% C Strongest: cost of living A− , jobs & income B− · lowest: hazard risk D 151 Neosho Newton County · 14,078 people 45.6 bottom 32.0% C Strongest: cost of living A , walkability B · lowest: health C− 152 North Kansas City Clay County · 5,613 people 45.6 bottom 32.0% C Strongest: walkability A− , schools A− · lowest: safety D− 153 St. Robert Pulaski County · 5,602 people 45.6 bottom 31.9% C Strongest: schools B+ , hazard risk B · lowest: jobs & income C− 154 Buffalo Dallas County · 3,550 people 45.2 bottom 30.8% C Strongest: cost of living A+ , safety B · lowest: jobs & income D 155 Mountain Grove Wright County · 4,754 people 45.1 bottom 30.6% C Strongest: walkability B+ , schools B+ · lowest: health D− 156 Belton Cass County · 26,193 people 45.1 bottom 30.5% C Strongest: hazard risk B , walkability B · lowest: safety C 157 Hannibal Marion County · 16,804 people 45.0 bottom 30.2% C Strongest: cost of living A− , walkability A− · lowest: health D 158 St. Ann St. Louis County · 12,617 people 44.9 bottom 29.9% C Strongest: walkability A , cost of living A− · lowest: schools C− 159 Carrollton Carroll County · 3,499 people 44.8 bottom 29.6% C Strongest: walkability A , cost of living A− · lowest: jobs & income D 160 Whiteman AFB unincorporated, Johnson County · 3,517 people 44.6 bottom 29.3% C Strongest: hazard risk A , schools A− · lowest: cost of living D 161 Boonville Cooper County · 7,867 people 44.5 bottom 28.9% C Strongest: cost of living A− , hazard risk B · lowest: jobs & income C− 162 Lexington Lafayette County · 4,568 people 44.1 bottom 28.1% C Strongest: cost of living A , hazard risk B+ · lowest: jobs & income D 163 Richmond Ray County · 5,968 people 43.9 bottom 27.7% C Strongest: cost of living A , walkability A− · lowest: health D 164 Versailles Morgan County · 2,713 people 43.8 bottom 27.4% C Strongest: cost of living A , hazard risk A− · lowest: health D 165 Sedalia Pettis County · 22,621 people 43.5 bottom 26.7% C Strongest: walkability B+ , cost of living B+ · lowest: health D 166 Waynesville Pulaski County · 5,558 people 43.2 bottom 25.9% C Strongest: schools B+ , health B · lowest: jobs & income C− 167 De Soto Jefferson County · 6,527 people 43.1 bottom 25.8% C Strongest: cost of living A+ , schools B+ · lowest: health D− 168 University City St. Louis County · 34,657 people 43.1 bottom 25.6% C Strongest: walkability A+ , health A− · lowest: schools D 169 Chaffee Scott County · 3,017 people 43.0 bottom 25.4% C Strongest: cost of living A , safety B− · lowest: schools C− 170 Aurora Lawrence County · 7,686 people 42.9 bottom 25.2% C Strongest: cost of living A− , walkability B · lowest: health D− 171 Osage Beach Camden County · 5,079 people 42.7 bottom 24.7% C− Strongest: walkability B+ , schools B+ · lowest: health C− 172 Vandalia Audrain County · 3,029 people 42.7 bottom 24.6% C− Strongest: cost of living A , hazard risk B− · lowest: health C− 173 Center Township Vernon County · 9,550 people 42.5 bottom 24.2% C− Strongest: walkability A− , cost of living B · lowest: health D 174 Mexico Audrain County · 11,558 people 42.5 bottom 24.2% C− Strongest: cost of living A , walkability B · lowest: jobs & income D 175 Mount Pleasant Township Bates County · 5,093 people 42.2 bottom 23.7% C− Strongest: cost of living A− , hazard risk B+ · lowest: jobs & income D− 176 Springfield Greene County · 169,847 people 42.1 bottom 23.6% C− Strongest: walkability A− , hazard risk B+ · lowest: safety D− 177 Portageville New Madrid County · 2,702 people 41.8 bottom 23.0% C− Strongest: schools A , cost of living B− · lowest: health D− 178 Monett Barry County · 10,248 people 41.5 bottom 22.2% C− Strongest: schools B , cost of living B · lowest: health D 179 Florissant St. Louis County · 51,124 people 41.4 bottom 22.0% C− Strongest: walkability A− , cost of living B · lowest: schools D 180 Camdenton Camden County · 4,050 people 41.3 bottom 21.8% C− Strongest: walkability A− , schools B+ · lowest: health D 181 Black Jack St. Louis County · 6,547 people 41.1 bottom 21.3% C− Strongest: walkability A− , jobs & income B+ · lowest: schools D 182 Dellwood St. Louis County · 4,825 people 41.1 bottom 21.3% C− Strongest: walkability A , cost of living A− · lowest: health D 183 Cassville Barry County · 3,301 people 41.0 bottom 21.1% C− Strongest: cost of living A , walkability A− · lowest: safety D 184 Sugar Creek Jackson County · 3,209 people 40.8 bottom 20.7% C− Strongest: cost of living A , walkability B · lowest: health D 185 Normandy St. Louis County · 4,380 people 40.8 bottom 20.7% C− Strongest: walkability A+ , cost of living A+ · lowest: schools D− 186 Salem Dent County · 4,674 people 40.6 bottom 20.2% C− Strongest: cost of living A , schools C+ · lowest: health D 187 Carthage Jasper County · 15,895 people 40.5 bottom 20.1% C− Strongest: walkability B , hazard risk B · lowest: health D− 188 Fredericktown Madison County · 4,584 people 40.4 bottom 19.7% C− Strongest: walkability A− , cost of living A− · lowest: jobs & income D 189 Mountain View Howell County · 2,661 people 40.3 bottom 19.6% C− Strongest: cost of living A− , schools B · lowest: jobs & income D− 190 Potosi Washington County · 2,568 people 40.1 bottom 19.3% C− Strongest: schools A , cost of living B+ · lowest: safety D− 191 Poplar Bluff Butler County · 16,295 people 40.0 bottom 19.1% C− Strongest: walkability B+ , schools B+ · lowest: health D− 192 Sherrill Township Texas County · 5,574 people 40.0 bottom 19.0% C− Strongest: cost of living B+ , schools B · lowest: jobs & income D− 193 Bonne Terre St. Francois County · 6,636 people 39.9 bottom 18.9% C− Strongest: cost of living A , walkability B+ · lowest: health D 194 Northwoods St. Louis County · 3,579 people 39.9 bottom 18.8% C− Strongest: walkability A , cost of living B+ · lowest: schools D− 195 Old Jamestown unincorporated, St. Louis County · 20,651 people 39.8 bottom 18.7% C− Strongest: jobs & income B+ , walkability B · lowest: schools D 196 Farmington St. Francois County · 19,226 people 39.8 bottom 18.6% C− Strongest: schools A− , walkability B · lowest: health D 197 Desloge St. Francois County · 4,819 people 39.3 bottom 17.7% C− Strongest: cost of living A , walkability B+ · lowest: health D 198 Windsor Henry County · 2,869 people 39.2 bottom 17.6% C− Strongest: cost of living A , walkability B+ · lowest: health D− 199 Independence Township Dunklin County · 11,792 people 39.1 bottom 17.3% C− Strongest: cost of living A , walkability B · lowest: health D− 200 Kansas City Jackson County · 521,220 people 39.0 bottom 17.2% C− Strongest: walkability A , hazard risk B+ · lowest: safety D− 201 Windsor Township Henry County · 3,454 people 38.9 bottom 16.8% C− Strongest: cost of living A , walkability B · lowest: health D 202 Independence Jackson County · 121,675 people 38.9 bottom 16.8% C− Strongest: walkability B+ , cost of living B+ · lowest: safety D 203 Cape Girardeau Cape Girardeau County · 40,977 people 38.8 bottom 16.7% C− Strongest: walkability B+ , cost of living B · lowest: hazard risk D 204 East Prairie Mississippi County · 2,841 people 38.2 bottom 15.4% C− Strongest: cost of living A , safety B · lowest: health D− 205 Clinton Henry County · 9,504 people 37.6 bottom 14.6% D Strongest: walkability B+ , cost of living B+ · lowest: safety D 206 Overland St. Louis County · 15,474 people 37.4 bottom 14.3% D Strongest: cost of living B+ , walkability B+ · lowest: schools D 207 Pine Lawn St. Louis County · 2,682 people 37.3 bottom 14.1% D Strongest: walkability A+ , cost of living A− · lowest: health D− 208 Riverside Platte County · 4,581 people 37.3 bottom 14.1% D Strongest: schools A− , hazard risk B− · lowest: safety D− 209 Byrnes Mill Jefferson County · 3,183 people 37.2 bottom 13.9% D Strongest: cost of living B− , schools B− · lowest: hazard risk D 210 City Township Barton County · 4,337 people 37.0 bottom 13.5% D Strongest: cost of living B , schools B− · lowest: health D− 211 Bridgeton St. Louis County · 11,277 people 36.9 bottom 13.4% D Strongest: walkability B+ , jobs & income B+ · lowest: safety D− 212 Perryville Perry County · 8,593 people 36.8 bottom 13.2% D Strongest: walkability B+ , cost of living B− · lowest: jobs & income D 213 Jennings St. Louis County · 13,093 people 36.5 bottom 12.8% D Strongest: walkability A+ , cost of living A− · lowest: health D− 214 Hazelwood St. Louis County · 24,849 people 35.3 bottom 10.9% D Strongest: walkability A− , cost of living B · lowest: safety D 215 Lamar Barton County · 4,337 people 35.2 bottom 10.8% D Strongest: cost of living B , schools B− · lowest: health D− 216 Moberly Randolph County · 13,719 people 35.2 bottom 10.7% D Strongest: hazard risk B+ , cost of living B · lowest: health D 217 Nevada Vernon County · 8,404 people 34.9 bottom 10.5% D Strongest: walkability A , cost of living B+ · lowest: safety D 218 Butler Bates County · 4,317 people 34.9 bottom 10.4% D Strongest: cost of living A− , hazard risk B+ · lowest: health D− 219 Branson Taney County · 12,921 people 34.6 bottom 10.1% D Strongest: schools A− , walkability A− · lowest: safety D− 220 West Plains Howell County · 12,780 people 34.5 bottom 10.0% D Strongest: schools B+ , cost of living B− · lowest: health D 221 St. Clair Franklin County · 4,813 people 34.1 bottom 9.5% D Strongest: cost of living B+ , hazard risk B · lowest: health D 222 Raytown Jackson County · 29,154 people 34.0 bottom 9.5% D Strongest: hazard risk A− , cost of living B+ · lowest: safety D 223 St. Joseph Buchanan County · 71,001 people 33.8 bottom 9.2% D Strongest: hazard risk B+ , cost of living B+ · lowest: safety D 224 Sikeston Scott County · 15,983 people 33.8 bottom 9.1% D Strongest: walkability B+ , cost of living B · lowest: safety D− 225 Spanish Lake unincorporated, St. Louis County · 17,873 people 33.6 bottom 8.8% D Strongest: walkability B+ , cost of living B · lowest: health D− 226 Union Township Dunklin County · 3,242 people 33.4 bottom 8.7% D Strongest: cost of living A− , schools C · lowest: health D− 227 St. Louis St. Louis city · 278,144 people 33.2 bottom 8.3% D Strongest: walkability A+ , cost of living B · lowest: safety D− 228 Piney Township Texas County · 5,071 people 32.8 bottom 7.8% D Strongest: cost of living B+ , hazard risk C+ · lowest: health D 229 Kennett Dunklin County · 10,118 people 32.6 bottom 7.6% D Strongest: cost of living A , walkability B+ · lowest: health D− 230 El Dorado Springs Cedar County · 3,642 people 32.4 bottom 7.4% D Strongest: hazard risk B , walkability B · lowest: health D 231 Lebanon Laclede County · 15,663 people 32.4 bottom 7.4% D Strongest: schools B− , cost of living B− · lowest: jobs & income D 232 Cotton Hill Township Dunklin County · 4,700 people 32.2 bottom 7.1% D Strongest: cost of living A , walkability B · lowest: health D− 233 Joplin Jasper County · 53,930 people 32.0 bottom 6.8% D Strongest: walkability A− , cost of living B · lowest: safety D 234 Burdine Township Texas County · 3,327 people 31.6 bottom 6.5% D Strongest: cost of living B+ , walkability C · lowest: health D 235 Berkeley St. Louis County · 8,026 people 31.6 bottom 6.5% D Strongest: walkability A , cost of living B+ · lowest: safety D− 236 Ferguson St. Louis County · 17,953 people 30.8 bottom 5.7% D Strongest: walkability A+ , cost of living B+ · lowest: health D− 237 Woodson Terrace St. Louis County · 3,902 people 30.6 bottom 5.5% D Strongest: walkability B , cost of living B · lowest: health D 238 New Madrid New Madrid County · 2,586 people 30.4 bottom 5.3% D Strongest: cost of living B+ , jobs & income C+ · lowest: hazard risk D 239 Malden Dunklin County · 3,493 people 30.4 bottom 5.3% D Strongest: cost of living A− , walkability B+ · lowest: health D− 240 Glasgow Village unincorporated, St. Louis County · 5,504 people 30.4 bottom 5.3% D Strongest: walkability A , cost of living B · lowest: health D− 241 Grandview Jackson County · 26,653 people 30.3 bottom 5.2% D Strongest: cost of living B+ , walkability B− · lowest: safety D 242 Breckenridge Hills St. Louis County · 4,350 people 30.2 bottom 5.0% D Strongest: walkability A , cost of living B+ · lowest: schools D 243 St. John St. Louis County · 6,441 people 29.7 bottom 4.5% D− Strongest: walkability B+ , cost of living B · lowest: health D 244 Pagedale St. Louis County · 2,511 people 29.6 bottom 4.4% D− Strongest: walkability A , cost of living A− · lowest: schools D− 245 Bellefontaine Neighbors St. Louis County · 10,368 people 28.1 bottom 3.3% D− Strongest: walkability A , cost of living B+ · lowest: health D− 246 Charleston Mississippi County · 4,731 people 26.0 bottom 2.0% D− Strongest: cost of living A− , walkability B+ · lowest: health D− 247 Caruthersville Pemiscot County · 5,211 people 14.4 bottom 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