Guest, Sign inJoin
Clarendon Hills Metra stationClarendon Hills, #1 on this list · Photo: David Wilson · CC BY 2.0
Illinois rankings · 2026

Best small towns in Illinois

Clarendon Hills ranks first of Illinois’ 410 graded small towns (2,500–9,999 residents), with an A+: health (A+) and schools (A+) are its strongest grades; cost of living (C) is its lowest. 137 of the 410 (33%) 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

Clarendon Hills

DuPage County · 8,681 people
A+

Strongest: health A+, schools A+·lowest: cost of living C

CCostASafetyA+SchoolsA+HealthAJobsA+WalkAHazards

Where they are: Three of the top 10 are in Lake County.

All 410 small 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. The rank is the town’s place among all 767 Illinois towns.

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

#TownScoreGradeWhat drives it
1Clarendon HillsDuPage County · 8,681 people80.4top 0.1%A+Strongest: health A+, schools A+·lowest: cost of living C
2Hawthorn WoodsLake County · 9,679 people80.1top 0.2%A+Strongest: safety A+, health A+·lowest: cost of living C
3Teutopolis TownshipEffingham County · 2,818 people79.5top 0.2%A+Strongest: schools A+, jobs & income A−·lowest: hazard risk B−
8RiverwoodsLake County · 3,766 people76.1top 0.9%A+Strongest: jobs & income A+, schools A+·lowest: cost of living C−
9MetamoraWoodford County · 3,857 people76.0top 0.9%A+Strongest: jobs & income A+, schools A·lowest: walkability C+
11GlencoeCook County · 8,724 people75.6top 1.1%A+Strongest: health A+, walkability A+·lowest: cost of living D−
14Sleepy HollowKane County · 3,122 people75.4top 1.2%A+Strongest: hazard risk A+, safety A+·lowest: cost of living C
15Lake BluffLake County · 5,563 people75.2top 1.3%A+Strongest: health A+, hazard risk A+·lowest: cost of living D
23RiversideCook County · 8,939 people73.4top 2.6%A+Strongest: jobs & income A+, health A+·lowest: hazard risk C−
24ItascaDuPage County · 9,488 people73.4top 2.6%A+Strongest: jobs & income A+, health A+·lowest: cost of living D
26NorthfieldCook County · 5,632 people73.4top 2.7%A+Strongest: jobs & income A+, health A+·lowest: cost of living D
28InvernessCook County · 7,418 people72.9top 3.0%A+Strongest: health A+, jobs & income A+·lowest: cost of living D
29LakewoodMcHenry County · 4,293 people72.9top 3.0%A+Strongest: jobs & income A+, safety A+·lowest: cost of living C
32ShermanSangamon County · 4,644 people72.9top 3.0%A+Strongest: jobs & income A, safety A·lowest: cost of living C
33Radnor TownshipPeoria County · 5,177 people72.9top 3.1%A+Strongest: jobs & income A+, health A·lowest: cost of living C+
35Coal CityGrundy County · 5,831 people72.7top 3.2%A+Strongest: schools A, safety A−·lowest: walkability B
37BreeseClinton County · 4,602 people72.6top 3.4%A+Strongest: safety A, schools A−·lowest: hazard risk C−
38Le RoyMcLean County · 3,465 people72.5top 3.4%A+Strongest: safety A, health A−·lowest: walkability C
39ByronOgle County · 3,777 people72.5top 3.4%A+Strongest: safety A+, walkability A−·lowest: hazard risk C−
41South BarringtonCook County · 5,071 people72.3top 3.7%A+Strongest: jobs & income A+, health A+·lowest: cost of living D
44Long GroveLake County · 8,343 people72.2top 3.8%A+Strongest: jobs & income A+, schools A+·lowest: cost of living D
48Western TownshipHenry County · 2,854 people72.0top 4.0%A+Strongest: cost of living A−, schools A−·lowest: walkability C−
50TrentonClinton County · 2,643 people71.8top 4.3%A+Strongest: safety A, walkability A−·lowest: hazard risk C−
54SmithtonSt. Clair County · 3,868 people71.5top 4.6%A+Strongest: safety A+, jobs & income A·lowest: walkability D
55Green OaksLake County · 4,082 people71.2top 4.9%A+Strongest: schools A+, health A·lowest: cost of living C−
59KildeerLake County · 4,683 people71.0top 5.2%AStrongest: health A+, schools A+·lowest: cost of living C−
60Plato TownshipKane County · 9,235 people71.0top 5.2%AStrongest: jobs & income A+, health A·lowest: walkability C+
62Deer ParkLake County · 3,647 people70.9top 5.4%AStrongest: jobs & income A+, health A+·lowest: cost of living D
63HeyworthMcLean County · 2,869 people70.9top 5.4%AStrongest: health A, safety A−·lowest: walkability C
64Williams TownshipSangamon County · 3,426 people70.8top 5.5%AStrongest: jobs & income A, schools A·lowest: walkability C
66LincolnshireLake County · 7,963 people70.8top 5.5%AStrongest: jobs & income A+, schools A+·lowest: cost of living D
72Harwood HeightsCook County · 8,761 people70.6top 6.0%AStrongest: walkability A+, jobs & income A·lowest: cost of living C
73Fox River GroveMcHenry County · 4,881 people70.5top 6.0%AStrongest: health A, safety A·lowest: hazard risk D
76DiamondGrundy County · 2,714 people70.3top 6.3%AStrongest: safety A+, schools A·lowest: walkability C
77Barrington HillsCook County · 4,086 people70.2top 6.5%AStrongest: health A, jobs & income A·lowest: cost of living D−
78Colona TownshipHenry County · 6,595 people70.2top 6.5%AStrongest: jobs & income A, cost of living A−·lowest: walkability C
81Sugar Creek TownshipClinton County · 6,723 people70.1top 6.7%AStrongest: jobs & income A−, schools A−·lowest: hazard risk C−
83North BarringtonLake County · 3,125 people70.0top 6.8%AStrongest: health A+, jobs & income A+·lowest: cost of living D
86ElburnKane County · 7,084 people69.8top 7.0%AStrongest: jobs & income A+, health A·lowest: cost of living D
89West Galena TownshipJo Daviess County · 3,143 people69.7top 7.2%AStrongest: walkability A, schools A−·lowest: hazard risk C+
90New BadenClinton County · 3,378 people69.6top 7.3%AStrongest: safety A, schools A−·lowest: hazard risk C−
96LenaStephenson County · 2,670 people69.4top 7.8%AStrongest: schools A, hazard risk A−·lowest: walkability C+
99Mount ZionMacon County · 5,880 people69.3top 7.9%AStrongest: safety A−, health A−·lowest: walkability C−
102Willow SpringsCook County · 5,788 people69.2top 8.1%AStrongest: safety A, health A·lowest: cost of living D
109Braceville TownshipGrundy County · 6,617 people68.9top 8.6%AStrongest: schools A, jobs & income A−·lowest: walkability C+
110Orland HillsCook County · 6,663 people68.9top 8.6%AStrongest: health A, walkability A·lowest: cost of living C
111Rosewood Heightsunincorporated, Madison County · 4,229 people68.9top 8.7%AStrongest: cost of living A+, jobs & income A−·lowest: hazard risk C
112GilbertsKane County · 9,082 people68.9top 8.7%AStrongest: safety A+, health A·lowest: cost of living C−
113Red BudRandolph County · 3,761 people68.7top 9.0%AStrongest: cost of living A−, walkability B+·lowest: hazard risk C
114Tremont TownshipTazewell County · 2,640 people68.6top 9.1%AStrongest: jobs & income A, health A−·lowest: walkability C+
116MascoutahSt. Clair County · 9,239 people68.6top 9.2%AStrongest: safety A, schools A·lowest: hazard risk C−
118SullivanMoultrie County · 4,310 people68.5top 9.3%AStrongest: safety A, walkability A·lowest: hazard risk C−
122St. JosephChampaign County · 3,689 people68.4top 9.4%AStrongest: jobs & income A, schools A·lowest: hazard risk D
123Chillicothe TownshipPeoria County · 8,139 people68.4top 9.4%AStrongest: cost of living A−, jobs & income A−·lowest: hazard risk C−
125West Point TownshipStephenson County · 3,095 people68.3top 9.6%AStrongest: schools A, hazard risk A−·lowest: walkability C
126Empire TownshipMcLean County · 3,960 people68.3top 9.6%AStrongest: jobs & income A−, health A−·lowest: walkability C
128Indian Head ParkCook County · 3,961 people68.0top 10.2%AStrongest: health A+, schools A·lowest: cost of living C−
129BraidwoodWill County · 6,259 people67.8top 10.5%AStrongest: hazard risk A, safety A−·lowest: walkability C
130Randolph TownshipMcLean County · 4,342 people67.8top 10.5%AStrongest: health A, schools A−·lowest: walkability C−
131Helvetia TownshipMadison County · 8,312 people67.8top 10.5%AStrongest: jobs & income A−, schools A−·lowest: hazard risk C−
132GalenaJo Daviess County · 3,210 people67.8top 10.6%AStrongest: walkability A, schools A−·lowest: hazard risk C+
134HometownCook County · 4,191 people67.7top 10.7%AStrongest: walkability A+, jobs & income A−·lowest: hazard risk C+
135Germantown HillsWoodford County · 3,436 people67.7top 10.8%AStrongest: schools A+, jobs & income A·lowest: walkability D
136Breese TownshipClinton County · 5,521 people67.6top 11.0%AStrongest: schools A−, cost of living A−·lowest: hazard risk C−
139Saline TownshipMadison County · 6,859 people67.3top 11.6%AStrongest: jobs & income A, schools A−·lowest: hazard risk C
140Palos ParkCook County · 4,805 people67.3top 11.6%AStrongest: safety A, health A·lowest: cost of living D
144LebanonSt. Clair County · 4,884 people67.1top 12.2%AStrongest: health A−, safety A−·lowest: hazard risk C
145Ball TownshipSangamon County · 7,588 people67.0top 12.3%AStrongest: jobs & income A, schools A−·lowest: hazard risk C+
150Mackinaw TownshipTazewell County · 4,231 people66.8top 12.7%AStrongest: jobs & income A, health A−·lowest: walkability C
151Lake VillaLake County · 8,692 people66.7top 12.8%AStrongest: jobs & income A, safety A−·lowest: cost of living C+
152RocktonWinnebago County · 7,870 people66.7top 12.9%AStrongest: schools A, jobs & income A·lowest: walkability C
154FairburyLivingston County · 3,597 people66.7top 13.0%AStrongest: cost of living A−, walkability A−·lowest: hazard risk D
158PaxtonFord County · 4,323 people66.5top 13.5%AStrongest: cost of living A−, hazard risk A−·lowest: jobs & income B
161Marion TownshipOgle County · 3,866 people66.3top 13.9%AStrongest: jobs & income A−, cost of living B+·lowest: walkability C−
162St. Jacob TownshipMadison County · 2,880 people66.3top 13.9%AStrongest: jobs & income A+, schools A·lowest: walkability C
165WinnebagoWinnebago County · 2,903 people66.2top 14.1%AStrongest: hazard risk A, safety A−·lowest: walkability C+
167Chatham TownshipSangamon County · 8,487 people66.1top 14.2%AStrongest: health A−, jobs & income A−·lowest: hazard risk C+
169FreeburgSt. Clair County · 4,507 people66.0top 14.6%AStrongest: schools A, health A−·lowest: hazard risk C
172Spring GroveMcHenry County · 5,526 people65.8top 14.9%AStrongest: safety A, health A−·lowest: cost of living D
174HainesvilleLake County · 3,501 people65.6top 15.4%A−Strongest: walkability A, health B+·lowest: hazard risk B−
175SandwichDeKalb County · 7,380 people65.6top 15.4%A−Strongest: safety A, hazard risk B+·lowest: cost of living B−
178MorrisonWhiteside County · 3,945 people65.5top 15.6%A−Strongest: cost of living A, health B+·lowest: schools B−
179Carthage TownshipHancock County · 2,848 people65.5top 15.7%A−Strongest: cost of living A, jobs & income B+·lowest: walkability C+
181PeotoneWill County · 4,225 people65.3top 16.0%A−Strongest: jobs & income A−, safety A−·lowest: hazard risk C
182Sugar GroveKane County · 9,381 people65.2top 16.2%A−Strongest: safety A, health A·lowest: cost of living C−
184Mound TownshipEffingham County · 3,508 people65.2top 16.2%A−Strongest: cost of living A+, walkability B+·lowest: hazard risk C+
185Patton TownshipFord County · 5,104 people65.2top 16.3%A−Strongest: cost of living A−, hazard risk A−·lowest: jobs & income B
187Indian Grove TownshipLivingston County · 4,111 people65.2top 16.4%A−Strongest: cost of living A−, walkability A−·lowest: hazard risk D
189ColonaHenry County · 4,938 people65.1top 16.6%A−Strongest: jobs & income A, cost of living A·lowest: hazard risk C−
190Olio TownshipWoodford County · 4,627 people65.1top 16.6%A−Strongest: schools A, cost of living B+·lowest: jobs & income C
195BethaltoMadison County · 9,202 people64.9top 17.1%A−Strongest: cost of living A−, safety B+·lowest: hazard risk C+
196RochesterSangamon County · 4,093 people64.8top 17.2%A−Strongest: jobs & income A, health A·lowest: walkability C−
198WillowbrookDuPage County · 9,126 people64.8top 17.3%A−Strongest: schools A, health A·lowest: cost of living D
200BeecherWill County · 4,740 people64.8top 17.3%A−Strongest: jobs & income A+, safety A·lowest: walkability C+
201TuscolaDouglas County · 4,668 people64.7top 17.3%A−Strongest: cost of living A, walkability A−·lowest: hazard risk D
207Burton TownshipMcHenry County · 4,885 people64.5top 17.8%A−Strongest: jobs & income A+, hazard risk A−·lowest: cost of living C
208Fancy Creek TownshipSangamon County · 5,806 people64.5top 17.9%A−Strongest: jobs & income A, schools A−·lowest: cost of living C
211Hamel TownshipMadison County · 2,774 people64.5top 18.0%A−Strongest: jobs & income A+, health A−·lowest: walkability D
214Worth TownshipWoodford County · 8,856 people64.4top 18.1%A−Strongest: schools A, jobs & income A·lowest: walkability D
215Round Lake ParkLake County · 7,844 people64.4top 18.1%A−Strongest: safety A, walkability A·lowest: jobs & income C+
216Brighton TownshipMacoupin County · 3,826 people64.4top 18.2%A−Strongest: cost of living A−, jobs & income B+·lowest: hazard risk B−
217Reed TownshipWill County · 6,988 people64.4top 18.2%A−Strongest: hazard risk A, schools A−·lowest: walkability C
218MillstadtSt. Clair County · 3,950 people64.3top 18.4%A−Strongest: safety A+, health A−·lowest: walkability C
221Mount Pleasant TownshipWhiteside County · 4,638 people64.2top 18.7%A−Strongest: cost of living A−, health B+·lowest: schools B−
222Scott AFBunincorporated, St. Clair County · 3,957 people64.1top 18.8%A−Strongest: jobs & income A, schools A·lowest: cost of living D
224Byron TownshipOgle County · 6,398 people64.0top 19.1%A−Strongest: schools A−, jobs & income A−·lowest: hazard risk C−
226Stookey TownshipSt. Clair County · 8,795 people64.0top 19.2%A−Strongest: walkability B+, schools B+·lowest: hazard risk C+
229AuburnSangamon County · 4,442 people63.9top 19.3%A−Strongest: cost of living A−, health B+·lowest: hazard risk C+
230EurekaWoodford County · 5,129 people63.9top 19.4%A−Strongest: schools A, walkability B+·lowest: jobs & income C
234Scott TownshipOgle County · 3,350 people63.7top 19.7%A−Strongest: cost of living A−, health B+·lowest: walkability D
235ShelbyvilleShelby County · 4,537 people63.7top 19.8%A−Strongest: walkability A, schools A−·lowest: jobs & income C
237Wonder LakeMcHenry County · 5,593 people63.7top 19.9%A−Strongest: safety A, hazard risk A−·lowest: walkability D
240West DundeeKane County · 8,570 people63.3top 20.7%A−Strongest: jobs & income A, health A·lowest: cost of living D
242Looking Glass TownshipClinton County · 6,427 people63.3top 20.8%A−Strongest: jobs & income A−, schools B+·lowest: hazard risk C−
243Robinson TownshipCrawford County · 9,399 people63.2top 20.9%A−Strongest: cost of living A, walkability B+·lowest: hazard risk C
244El Paso TownshipWoodford County · 3,376 people63.2top 21.0%A−Strongest: schools B+, cost of living B+·lowest: health B−
245Sugar Loaf TownshipSt. Clair County · 6,601 people63.2top 21.0%A−Strongest: cost of living A−, schools B+·lowest: hazard risk D
246Richwoods TownshipPeoria County · 5,771 people63.1top 21.2%A−Strongest: cost of living A, walkability A−·lowest: schools C−
249GreenvilleBond County · 7,469 people63.0top 21.5%A−Strongest: cost of living A, walkability A·lowest: jobs & income C
251Old Town TownshipMcLean County · 3,404 people62.8top 22.0%A−Strongest: health A, jobs & income A−·lowest: walkability C−
253MaryvilleMadison County · 8,413 people62.7top 22.2%A−Strongest: health A−, safety A−·lowest: walkability C
254GeneseoHenry County · 6,505 people62.7top 22.2%A−Strongest: schools A−, safety B+·lowest: walkability C+
255Frankfort Squareunincorporated, Will County · 9,560 people62.7top 22.3%A−Strongest: schools A, health A−·lowest: cost of living C
262Felix TownshipGrundy County · 4,531 people62.3top 23.1%A−Strongest: schools A, cost of living B+·lowest: hazard risk C
263Peoria HeightsPeoria County · 5,767 people62.3top 23.1%A−Strongest: cost of living A, walkability A−·lowest: schools C−
267Prairie Du Long TownshipSt. Clair County · 2,549 people62.2top 23.4%A−Strongest: jobs & income A+, schools A·lowest: hazard risk C−
268HampshireKane County · 9,266 people62.2top 23.6%A−Strongest: safety A, jobs & income A−·lowest: cost of living D−
271El PasoWoodford County · 2,723 people62.1top 23.8%A−Strongest: cost of living B+, schools B+·lowest: health C+
272CountrysideCook County · 6,260 people62.0top 24.0%A−Strongest: schools A, health A·lowest: safety C
274Gardner TownshipSangamon County · 4,551 people61.9top 24.2%A−Strongest: jobs & income A−, health A−·lowest: walkability D
276VoloLake County · 6,805 people61.9top 24.3%A−Strongest: jobs & income A+, health A·lowest: cost of living C−
277Park CityLake County · 7,893 people61.9top 24.4%A−Strongest: hazard risk A+, cost of living A·lowest: schools C
278Watson TownshipEffingham County · 3,176 people61.8top 24.5%A−Strongest: cost of living A, schools B+·lowest: walkability D
281Mount Zion TownshipMacon County · 7,018 people61.7top 24.7%A−Strongest: jobs & income A−, schools A−·lowest: walkability C−
282PinckneyvillePerry County · 4,903 people61.7top 24.8%A−Strongest: cost of living A+, safety A·lowest: hazard risk C−
283North Litchfield TownshipMontgomery County · 4,824 people61.7top 24.8%A−Strongest: walkability A−, cost of living A−·lowest: jobs & income C+
284ChillicothePeoria County · 6,033 people61.7top 24.8%A−Strongest: cost of living A−, jobs & income B+·lowest: hazard risk C−
285Sullivan TownshipMoultrie County · 6,229 people61.6top 25.2%B+Strongest: walkability A, cost of living A−·lowest: hazard risk C−
286OregonOgle County · 3,573 people61.6top 25.2%B+Strongest: cost of living A−, safety A−·lowest: jobs & income C
287Wade TownshipJasper County · 4,282 people61.6top 25.3%B+Strongest: cost of living A, schools A−·lowest: hazard risk C
288St. Joseph TownshipChampaign County · 5,436 people61.5top 25.6%B+Strongest: schools A, health A−·lowest: hazard risk D
289Saratoga TownshipGrundy County · 6,597 people61.4top 25.6%B+Strongest: schools A, jobs & income A−·lowest: hazard risk C−
291MarshallClark County · 3,880 people61.4top 25.9%B+Strongest: cost of living A, hazard risk A−·lowest: schools B−
293MonticelloPiatt County · 6,080 people61.3top 26.0%B+Strongest: jobs & income A, schools A·lowest: hazard risk C−
296Coal ValleyRock Island County · 3,859 people60.8top 27.3%B+Strongest: jobs & income A, health A−·lowest: walkability D
297JerseyvilleJersey County · 8,409 people60.8top 27.4%B+Strongest: cost of living A, schools B·lowest: safety C+
298HighwoodLake County · 5,323 people60.7top 27.5%B+Strongest: hazard risk A+, walkability A·lowest: cost of living D
299Lake BarringtonLake County · 5,130 people60.7top 27.5%B+Strongest: health A, schools A·lowest: cost of living D−
300MantenoKankakee County · 9,201 people60.7top 27.6%B+Strongest: jobs & income A, safety A−·lowest: cost of living C−
302Pin Oak TownshipMadison County · 4,533 people60.7top 27.7%B+Strongest: health A−, jobs & income A−·lowest: cost of living C−
304RivertonSangamon County · 3,471 people60.6top 28.0%B+Strongest: jobs & income A, cost of living B+·lowest: schools C
305Summit TownshipEffingham County · 3,723 people60.5top 28.1%B+Strongest: jobs & income A, cost of living B+·lowest: walkability C
306Fort Russell TownshipMadison County · 9,158 people60.5top 28.1%B+Strongest: health A−, schools A−·lowest: hazard risk C+
307PrincetonBureau County · 7,674 people60.5top 28.1%B+Strongest: walkability A, cost of living A·lowest: jobs & income C
311Elm Grove TownshipTazewell County · 2,938 people60.4top 28.5%B+Strongest: jobs & income A−, hazard risk B+·lowest: schools B−
312Buffalo TownshipOgle County · 2,617 people60.3top 28.6%B+Strongest: cost of living A, hazard risk A−·lowest: jobs & income C
316Grandwood Parkunincorporated, Lake County · 5,262 people60.1top 29.2%B+Strongest: jobs & income A+, health A+·lowest: cost of living D
317KnoxvilleKnox County · 2,810 people60.1top 29.2%B+Strongest: cost of living A−, schools B·lowest: walkability C−
318Piasa TownshipJersey County · 3,016 people60.1top 29.3%B+Strongest: cost of living A−, jobs & income B+·lowest: walkability D
321Oakbrook TerraceDuPage County · 2,792 people60.0top 29.4%B+Strongest: walkability A, health A·lowest: cost of living D
323StauntonMacoupin County · 4,932 people59.9top 29.6%B+Strongest: cost of living A, schools B·lowest: health C+
324Central TownshipBond County · 8,368 people59.9top 29.7%B+Strongest: cost of living A−, walkability A−·lowest: jobs & income C
327Bourbon TownshipDouglas County · 4,173 people59.7top 30.1%B+Strongest: cost of living A, schools B+·lowest: hazard risk D
328Green Garden TownshipWill County · 3,851 people59.7top 30.2%B+Strongest: schools A, jobs & income A−·lowest: walkability C−
329ForsythMacon County · 3,613 people59.7top 30.3%B+Strongest: health A, schools A−·lowest: cost of living C−
330Rochester TownshipSangamon County · 5,700 people59.6top 30.5%B+Strongest: jobs & income A, health A·lowest: walkability C−
331Bloomington TownshipMcLean County · 2,629 people59.6top 30.6%B+Strongest: jobs & income A, health A·lowest: walkability C−
335ArcolaDouglas County · 2,928 people59.5top 30.7%B+Strongest: cost of living A+, safety B+·lowest: hazard risk D
336Kickapoo TownshipPeoria County · 8,209 people59.4top 31.0%B+Strongest: health A, jobs & income A−·lowest: cost of living C−
338West Lincoln TownshipLogan County · 7,252 people59.4top 31.0%B+Strongest: cost of living B+, schools B+·lowest: health C+
341Oregon-Nashua TownshipOgle County · 4,748 people59.3top 31.2%B+Strongest: cost of living A−, schools B+·lowest: hazard risk C+
343McLeansboroHamilton County · 2,585 people59.3top 31.3%B+Strongest: cost of living A+, safety A·lowest: health D
345Davis JunctionOgle County · 2,566 people59.2top 31.4%B+Strongest: health B+, schools B+·lowest: walkability D
346Carlyle TownshipClinton County · 3,778 people59.1top 31.6%B+Strongest: cost of living A−, jobs & income B+·lowest: hazard risk C−
349Sangamon TownshipPiatt County · 2,533 people58.9top 32.1%B+Strongest: jobs & income A, health A−·lowest: hazard risk C−
351Broadwell TownshipLogan County · 2,860 people58.9top 32.2%B+Strongest: cost of living A, schools B+·lowest: walkability C+
353Auburn TownshipSangamon County · 5,805 people58.8top 32.4%B+Strongest: cost of living A−, health B+·lowest: hazard risk C+
354HillsboroMontgomery County · 6,184 people58.8top 32.5%B+Strongest: cost of living A, walkability B+·lowest: jobs & income C
356RobinsonCrawford County · 7,283 people58.5top 33.2%B+Strongest: cost of living A, walkability A−·lowest: safety C
357Riley TownshipMcHenry County · 3,017 people58.5top 33.3%B+Strongest: jobs & income A, hazard risk A−·lowest: walkability C−
358ChesterRandolph County · 6,847 people58.4top 33.5%B+Strongest: cost of living A+, safety A·lowest: health D
359CarlyleClinton County · 3,188 people58.3top 33.7%B+Strongest: cost of living A−, walkability B+·lowest: hazard risk C−
361Round Lake HeightsLake County · 2,580 people58.1top 34.2%B+Strongest: safety A, health B+·lowest: hazard risk C
363Millstadt TownshipSt. Clair County · 6,490 people58.1top 34.5%B+Strongest: jobs & income A−, health A−·lowest: walkability C−
365NewtonJasper County · 2,715 people57.8top 35.1%BStrongest: cost of living A, schools A−·lowest: health C
370Clear Lake TownshipSangamon County · 8,248 people57.7top 35.5%BStrongest: jobs & income A−, cost of living B+·lowest: schools C
371WilmingtonWill County · 5,614 people57.6top 35.7%BStrongest: schools A−, walkability B+·lowest: hazard risk C−
373Granville TownshipPutnam County · 2,741 people57.6top 35.8%BStrongest: cost of living A, hazard risk B·lowest: walkability C
374Pecatonica TownshipWinnebago County · 4,115 people57.5top 36.0%BStrongest: hazard risk A, health B+·lowest: walkability C
375Dunleith TownshipJo Daviess County · 3,487 people57.4top 36.2%BStrongest: cost of living B+, hazard risk B+·lowest: walkability C
376NashvilleWashington County · 3,011 people57.4top 36.3%BStrongest: cost of living A, health B+·lowest: hazard risk C−
377JohnsburgMcHenry County · 6,445 people57.3top 36.5%BStrongest: jobs & income A−, health B+·lowest: hazard risk C−
382MendotaLaSalle County · 6,894 people57.0top 37.5%BStrongest: hazard risk A, safety A−·lowest: jobs & income C−
383Bunker Hill TownshipMacoupin County · 3,086 people56.9top 37.5%BStrongest: cost of living A, jobs & income B+·lowest: schools C
384Richmond TownshipMcHenry County · 6,781 people56.9top 37.6%BStrongest: schools A−, hazard risk A−·lowest: cost of living C−
385Island LakeMcHenry County · 8,047 people56.9top 37.7%BStrongest: safety A, health A−·lowest: hazard risk D
386Washington TownshipWill County · 6,498 people56.8top 37.9%BStrongest: jobs & income A, health B·lowest: walkability C+
387PeruLaSalle County · 9,780 people56.8top 37.9%BStrongest: hazard risk A−, cost of living B+·lowest: safety C+
389Wethersfield TownshipHenry County · 3,695 people56.6top 38.3%BStrongest: cost of living A−, walkability A−·lowest: health C
390Coral TownshipMcHenry County · 3,731 people56.6top 38.3%BStrongest: jobs & income A−, schools A−·lowest: walkability C−
392Pistakee Highlandsunincorporated, McHenry County · 3,374 people56.5top 38.7%BStrongest: jobs & income A, health B+·lowest: hazard risk D
393East Lincoln TownshipLogan County · 7,589 people56.4top 38.8%BStrongest: walkability A−, schools B+·lowest: jobs & income C
396Mount Sterling TownshipBrown County · 4,448 people56.2top 39.5%BStrongest: walkability A−, cost of living A−·lowest: health C
402Neoga TownshipCumberland County · 2,719 people55.9top 40.3%BStrongest: cost of living A, jobs & income B+·lowest: schools C−
408LitchfieldMontgomery County · 6,598 people55.8top 40.6%BStrongest: walkability A−, cost of living A−·lowest: jobs & income D
411Kingston TownshipDeKalb County · 3,486 people55.5top 41.2%BStrongest: jobs & income B+, health B·lowest: walkability C−
413Mount MorrisOgle County · 2,787 people55.5top 41.3%BStrongest: cost of living A−, schools B+·lowest: health C−
414Nokomis TownshipMontgomery County · 2,751 people55.4top 41.7%BStrongest: cost of living A−, schools B+·lowest: hazard risk C
415Spring Bay TownshipWoodford County · 2,529 people55.3top 41.8%BStrongest: cost of living B+, schools B+·lowest: walkability D
417Salem TownshipMarion County · 8,785 people55.3top 42.0%BStrongest: cost of living A−, schools B+·lowest: hazard risk C−
418Lake Holidayunincorporated, LaSalle County · 5,641 people55.3top 42.0%BStrongest: jobs & income A−, hazard risk A−·lowest: walkability D
420South Wheatland TownshipMacon County · 3,859 people55.2top 42.0%BStrongest: jobs & income A−, schools B+·lowest: walkability D
421VirdenMacoupin County · 3,149 people55.2top 42.1%BStrongest: cost of living A+, walkability A·lowest: safety C
423Holiday Shoresunincorporated, Madison County · 2,782 people55.1top 42.3%BStrongest: schools A−, health B+·lowest: walkability C
425Camargo TownshipDouglas County · 3,507 people55.0top 42.5%BStrongest: cost of living A, health B·lowest: hazard risk D−
426Winnebago TownshipWinnebago County · 4,965 people55.0top 42.6%BStrongest: hazard risk A, jobs & income A−·lowest: walkability C
427MonmouthWarren County · 8,599 people54.9top 42.9%BStrongest: cost of living A, walkability A·lowest: jobs & income C
428South BeloitWinnebago County · 7,996 people54.9top 42.9%BStrongest: schools A−, cost of living B·lowest: hazard risk C−
431Moro TownshipMadison County · 3,492 people54.9top 43.0%BStrongest: schools A−, jobs & income B+·lowest: walkability C−
433Northville TownshipLaSalle County · 7,316 people54.8top 43.3%BStrongest: jobs & income A−, hazard risk A−·lowest: walkability C−
435AledoMercer County · 3,506 people54.7top 43.4%BStrongest: cost of living A−, safety B+·lowest: schools C
436PanaChristian County · 5,010 people54.7top 43.5%BStrongest: cost of living A, walkability A−·lowest: jobs & income D
438LaSalleLaSalle County · 9,388 people54.6top 43.7%BStrongest: safety A, hazard risk A·lowest: jobs & income C
439North RiversideCook County · 7,161 people54.6top 43.7%BStrongest: walkability A, schools A·lowest: safety D
441FultonWhiteside County · 3,540 people54.6top 43.8%BStrongest: safety B+, walkability B+·lowest: jobs & income C−
443Newport TownshipLake County · 6,768 people54.4top 44.2%BStrongest: hazard risk A, health B+·lowest: cost of living C−
445Clintonia TownshipDe Witt County · 7,123 people54.3top 44.4%BStrongest: cost of living A, walkability A−·lowest: schools C
447South Litchfield TownshipMontgomery County · 3,222 people54.1top 45.0%BStrongest: cost of living A, schools B+·lowest: jobs & income D
448SavoyChampaign County · 9,113 people54.1top 45.1%B−Strongest: health A, jobs & income A−·lowest: cost of living C−
451TolonoChampaign County · 3,499 people53.8top 45.8%B−Strongest: health A, schools B·lowest: walkability C−
453Mount Morris TownshipOgle County · 3,639 people53.6top 46.3%B−Strongest: schools B+, walkability B+·lowest: health C
454McLeansboro TownshipHamilton County · 3,611 people53.6top 46.4%B−Strongest: cost of living A+, walkability B+·lowest: health C−
455CartervilleWilliamson County · 5,839 people53.5top 46.8%B−Strongest: schools A−, health B+·lowest: hazard risk C−
456FlossmoorCook County · 9,358 people53.5top 46.9%B−Strongest: walkability A, health A·lowest: cost of living D
458GenoaDeKalb County · 5,547 people53.4top 47.0%B−Strongest: schools B, jobs & income B·lowest: walkability C
459RushvilleSchuyler County · 2,857 people53.3top 47.3%B−Strongest: cost of living A, walkability A−·lowest: jobs & income D
461Locust TownshipChristian County · 3,144 people53.2top 47.6%B−Strongest: cost of living A, hazard risk B·lowest: walkability C−
462Oak BrookDuPage County · 8,108 people53.2top 47.6%B−Strongest: schools A+, health A·lowest: cost of living D−
463Bowling TownshipRock Island County · 3,366 people53.2top 47.8%B−Strongest: schools B+, cost of living B·lowest: walkability D
464Poplar GroveBoone County · 5,206 people53.1top 48.1%B−Strongest: health A−, jobs & income A−·lowest: walkability D
466South JacksonvilleMorgan County · 3,195 people52.7top 49.1%B−Strongest: cost of living A, safety A−·lowest: schools D
467East DundeeKane County · 3,130 people52.7top 49.1%B−Strongest: jobs & income A−, walkability B+·lowest: cost of living C−
468Morris TownshipGrundy County · 7,356 people52.7top 49.2%B−Strongest: walkability B+, jobs & income B·lowest: hazard risk C−
469Knox TownshipKnox County · 4,785 people52.6top 49.3%B−Strongest: cost of living B+, schools B·lowest: walkability C−
470LakemoorLake County · 6,449 people52.6top 49.5%B−Strongest: jobs & income A, health A−·lowest: hazard risk C−
471RosemontCook County · 3,815 people52.5top 49.7%B−Strongest: walkability A+, hazard risk A−·lowest: safety D−
472Seward TownshipKendall County · 6,806 people52.4top 49.9%B−Strongest: jobs & income A, health A−·lowest: cost of living D
473Chebanse TownshipIroquois County · 2,782 people52.4top 49.9%B−Strongest: jobs & income B+, health B+·lowest: hazard risk C−
478Logan TownshipPeoria County · 3,205 people52.2bottom 49.5%B−Strongest: health A−, jobs & income B+·lowest: walkability D
481Grover TownshipWayne County · 3,515 people52.1bottom 49.1%B−Strongest: cost of living A, walkability B·lowest: health C−
483Catlin TownshipVermilion County · 3,002 people52.0bottom 49.0%B−Strongest: jobs & income B+, schools B·lowest: walkability C
484Spring ValleyBureau County · 5,408 people52.0bottom 48.8%B−Strongest: cost of living A−, safety B+·lowest: schools C−
485StickneyCook County · 6,897 people51.9bottom 48.7%B−Strongest: walkability A, safety A−·lowest: hazard risk D
486PawneeSangamon County · 2,686 people51.9bottom 48.7%B−Strongest: cost of living A−, health B−·lowest: walkability C−
487Fulton TownshipWhiteside County · 4,233 people51.8bottom 48.4%B−Strongest: walkability B+, schools B+·lowest: jobs & income C−
488Tolono TownshipChampaign County · 6,256 people51.8bottom 48.2%B−Strongest: health A, schools B·lowest: cost of living C−
489Oblong TownshipCrawford County · 2,730 people51.6bottom 47.8%B−Strongest: cost of living A+, walkability B−·lowest: hazard risk C
491Dunham TownshipMcHenry County · 2,783 people51.3bottom 47.2%B−Strongest: walkability A, hazard risk A·lowest: schools D
492ParisEdgar County · 8,026 people51.3bottom 47.2%B−Strongest: cost of living A, walkability A−·lowest: safety C−
493Urbana TownshipChampaign County · 7,450 people51.3bottom 47.1%B−Strongest: walkability A−, health B+·lowest: schools C−
494Blackhawk TownshipRock Island County · 9,423 people51.2bottom 46.8%B−Strongest: cost of living B+, walkability B+·lowest: schools C−
496Mercer TownshipMercer County · 3,841 people51.1bottom 46.6%B−Strongest: cost of living A−, walkability B·lowest: schools C
497FloraClay County · 4,634 people51.1bottom 46.5%B−Strongest: cost of living A−, safety B+·lowest: health C−
498OlneyRichland County · 8,347 people51.0bottom 46.3%B−Strongest: cost of living A−, walkability A−·lowest: jobs & income C−
499WadsworthLake County · 3,488 people51.0bottom 46.3%B−Strongest: hazard risk A, health A·lowest: walkability C
501Seneca TownshipMcHenry County · 2,862 people50.8bottom 45.8%B−Strongest: health B+, schools B+·lowest: cost of living D
503MarengoMcHenry County · 7,737 people50.6bottom 45.3%B−Strongest: hazard risk B+, health B+·lowest: walkability C−
508GillespieMacoupin County · 3,083 people50.3bottom 44.3%C+Strongest: cost of living A+, hazard risk B−·lowest: schools C
510OglesbyLaSalle County · 3,618 people50.2bottom 44.0%C+Strongest: cost of living B+, hazard risk B·lowest: schools C
513Casey TownshipClark County · 3,413 people50.1bottom 43.9%C+Strongest: cost of living A−, schools B−·lowest: jobs & income C
515CreteWill County · 8,345 people49.9bottom 43.4%C+Strongest: jobs & income A−, walkability B+·lowest: cost of living C
516Havana TownshipMason County · 4,170 people49.9bottom 43.2%C+Strongest: cost of living A−, walkability B·lowest: jobs & income C−
517Cincinnati TownshipTazewell County · 8,825 people49.7bottom 42.9%C+Strongest: hazard risk B, jobs & income B·lowest: walkability C
518Jackson TownshipWill County · 3,890 people49.6bottom 42.5%C+Strongest: jobs & income A, hazard risk B·lowest: schools C
519Rutland TownshipLaSalle County · 3,581 people49.5bottom 42.3%C+Strongest: walkability B+, jobs & income B−·lowest: hazard risk C−
520Creve CoeurTazewell County · 4,816 people49.4bottom 42.0%C+Strongest: hazard risk A−, cost of living A−·lowest: health C
521Long Lakeunincorporated, Lake County · 3,307 people49.4bottom 42.0%C+Strongest: walkability A−, jobs & income B·lowest: hazard risk C
525Manlius TownshipLaSalle County · 6,068 people49.3bottom 41.6%C+Strongest: walkability B, schools B·lowest: jobs & income C
527Sharon TownshipFayette County · 2,814 people49.1bottom 41.1%C+Strongest: jobs & income B, cost of living B·lowest: walkability C
528Montebello TownshipHancock County · 3,189 people49.0bottom 41.0%C+Strongest: schools B+, cost of living B·lowest: walkability D
529Otter Creek TownshipLaSalle County · 2,623 people49.0bottom 41.0%C+Strongest: cost of living A, schools B−·lowest: jobs & income C−
532MarseillesLaSalle County · 4,809 people48.7bottom 40.1%C+Strongest: safety B+, cost of living B·lowest: jobs & income D
533HarvardMcHenry County · 9,504 people48.6bottom 39.7%C+Strongest: walkability A, hazard risk A·lowest: schools D
535East AltonMadison County · 5,621 people48.5bottom 39.5%C+Strongest: cost of living A−, walkability B+·lowest: hazard risk C−
536Mount CarmelWabash County · 6,723 people48.5bottom 39.3%C+Strongest: cost of living A−, safety A−·lowest: jobs & income D
537BartonvillePeoria County · 5,804 people48.4bottom 39.1%C+Strongest: hazard risk A−, jobs & income A−·lowest: schools C−
539Hall TownshipBureau County · 8,193 people48.3bottom 38.9%C+Strongest: cost of living A−, hazard risk B+·lowest: schools C−
540MoneeWill County · 5,119 people48.3bottom 38.7%C+Strongest: jobs & income A, hazard risk A−·lowest: cost of living C
542Palmyra TownshipLee County · 2,860 people48.2bottom 38.5%C+Strongest: cost of living B+, jobs & income B−·lowest: hazard risk C
544SalemMarion County · 7,035 people48.1bottom 38.3%C+Strongest: cost of living A−, schools B+·lowest: hazard risk C−
546Cahokia TownshipMacoupin County · 3,084 people48.0bottom 37.9%C+Strongest: cost of living A+, hazard risk B·lowest: jobs & income C−
547Fairmontunincorporated, Will County · 2,617 people48.0bottom 37.8%C+Strongest: hazard risk B+, schools B+·lowest: health D
548HamiltonHancock County · 2,624 people47.9bottom 37.7%C+Strongest: schools B+, cost of living B·lowest: walkability C−
550Ellington TownshipAdams County · 2,719 people47.8bottom 37.2%C+Strongest: jobs & income A, health B+·lowest: walkability D−
551Boulder Hillunincorporated, Kendall County · 8,989 people47.8bottom 37.2%C+Strongest: schools B+, health B+·lowest: walkability C−
553Winthrop HarborLake County · 6,525 people47.4bottom 36.3%C+Strongest: hazard risk A+, jobs & income B·lowest: cost of living C
554West PeoriaPeoria County · 4,187 people47.3bottom 36.1%C+Strongest: cost of living A−, walkability B+·lowest: schools C−
555MetropolisMassac County · 5,727 people47.3bottom 36.1%C+Strongest: cost of living A−, walkability B+·lowest: hazard risk D−
556Du QuoinPerry County · 5,569 people47.2bottom 35.9%C+Strongest: cost of living A, walkability A−·lowest: jobs & income D
557DwightLivingston County · 4,005 people47.2bottom 35.8%C+Strongest: walkability A−, cost of living B+·lowest: schools C−
558CarlinvilleMacoupin County · 5,465 people47.1bottom 35.7%C+Strongest: cost of living A, walkability A−·lowest: safety D
559HillsideCook County · 8,140 people47.1bottom 35.7%C+Strongest: walkability A+, jobs & income A−·lowest: cost of living C
561BerkeleyCook County · 5,141 people47.0bottom 35.4%C+Strongest: walkability B+, safety B+·lowest: schools C−
563Mount Olive TownshipMacoupin County · 3,019 people46.9bottom 35.1%C+Strongest: cost of living A+, hazard risk B−·lowest: walkability D
564BroadviewCook County · 7,871 people46.8bottom 35.0%C+Strongest: walkability A, jobs & income B−·lowest: hazard risk C
565Squaw Grove TownshipDeKalb County · 2,717 people46.8bottom 34.9%CStrongest: health B, walkability B·lowest: cost of living C−
566CortlandDeKalb County · 4,676 people46.8bottom 34.8%CStrongest: safety A−, hazard risk A−·lowest: schools C−
570ClintonDe Witt County · 6,781 people46.4bottom 33.9%CStrongest: cost of living A, walkability A−·lowest: safety C
571GeorgetownVermilion County · 3,006 people46.4bottom 33.9%CStrongest: cost of living A, hazard risk A−·lowest: schools C−
572Kewanee TownshipHenry County · 9,494 people46.4bottom 33.9%CStrongest: cost of living A, hazard risk A−·lowest: jobs & income D
573AbingdonKnox County · 2,832 people46.4bottom 33.8%CStrongest: cost of living A−, walkability B+·lowest: jobs & income C−
576DupoSt. Clair County · 3,766 people46.1bottom 33.2%CStrongest: cost of living A−, jobs & income B−·lowest: hazard risk D
577Chouteau TownshipMadison County · 7,428 people46.1bottom 33.0%CStrongest: cost of living A+, jobs & income B·lowest: schools D−
579Makanda TownshipJackson County · 3,987 people45.9bottom 32.6%CStrongest: jobs & income B+, schools B+·lowest: walkability C−
582Harter TownshipClay County · 5,912 people45.8bottom 32.4%CStrongest: cost of living A−, schools B−·lowest: health C−
583Limestone TownshipKankakee County · 4,961 people45.8bottom 32.3%CStrongest: jobs & income A−, schools B+·lowest: walkability D−
584Amboy TownshipLee County · 2,745 people45.8bottom 32.3%CStrongest: cost of living B, schools B−·lowest: jobs & income C−
585MomenceKankakee County · 3,158 people45.6bottom 31.9%CStrongest: safety B+, cost of living B+·lowest: hazard risk D
586VandaliaFayette County · 7,108 people45.5bottom 31.7%CStrongest: walkability A−, cost of living B+·lowest: jobs & income D
587Grant TownshipVermilion County · 5,364 people45.5bottom 31.5%CStrongest: walkability A, cost of living A−·lowest: jobs & income D
588East Eldorado TownshipSaline County · 5,182 people45.5bottom 31.3%CStrongest: cost of living A, walkability B−·lowest: jobs & income D
589Melrose TownshipAdams County · 5,506 people45.4bottom 31.2%CStrongest: health B+, jobs & income B·lowest: walkability D
590Blount TownshipVermilion County · 3,322 people45.4bottom 31.2%CStrongest: jobs & income A, schools B·lowest: walkability D−
591Lewistown TownshipFulton County · 2,562 people45.3bottom 31.0%CStrongest: cost of living A, hazard risk B+·lowest: schools D
592Farmington TownshipFulton County · 3,094 people45.1bottom 30.5%CStrongest: walkability B+, hazard risk B·lowest: schools C−
599Dodds TownshipJefferson County · 2,682 people44.7bottom 29.5%CStrongest: cost of living A, jobs & income C+·lowest: walkability C−
602Mission TownshipLaSalle County · 3,738 people44.4bottom 28.7%CStrongest: health B, jobs & income B−·lowest: walkability C−
605MilanRock Island County · 5,028 people44.1bottom 28.1%CStrongest: cost of living A−, walkability A−·lowest: schools D
607RochelleOgle County · 9,498 people44.1bottom 28.0%CStrongest: cost of living B+, walkability B−·lowest: schools C−
609Springfield TownshipSangamon County · 5,485 people44.0bottom 27.8%CStrongest: cost of living A, walkability B+·lowest: schools D−
610Goode TownshipFranklin County · 2,606 people43.8bottom 27.3%CStrongest: cost of living A, schools B−·lowest: jobs & income D
614PittsfieldPike County · 4,041 people43.4bottom 26.5%CStrongest: cost of living A−, walkability B−·lowest: jobs & income D
615Stone ParkCook County · 4,477 people43.4bottom 26.4%CStrongest: safety A, walkability A−·lowest: hazard risk D
616EldoradoSaline County · 3,579 people43.4bottom 26.3%CStrongest: cost of living A, walkability B+·lowest: health D
617BushnellMcDonough County · 2,600 people43.4bottom 26.3%CStrongest: cost of living A+, walkability B+·lowest: schools D
621Caledonia TownshipBoone County · 7,246 people43.1bottom 25.7%CStrongest: health A−, hazard risk B+·lowest: walkability D
622Spring Garden TownshipJefferson County · 2,522 people43.1bottom 25.6%CStrongest: cost of living A, schools C·lowest: walkability D
625BeardstownCass County · 5,691 people42.7bottom 24.8%C−Strongest: cost of living A, walkability B+·lowest: hazard risk D
627Chemung TownshipMcHenry County · 9,102 people42.6bottom 24.6%C−Strongest: walkability A, hazard risk A·lowest: schools D
628Whitmore TownshipMacon County · 4,127 people42.4bottom 24.1%C−Strongest: hazard risk B, cost of living B·lowest: walkability C−
629HarrisburgSaline County · 7,922 people42.4bottom 24.0%C−Strongest: safety A−, walkability B+·lowest: jobs & income D−
631Drummer TownshipFord County · 3,914 people42.3bottom 23.7%C−Strongest: schools A−, hazard risk B·lowest: jobs & income D
634FairfieldWayne County · 4,794 people41.9bottom 23.1%C−Strongest: cost of living A, walkability A−·lowest: health C−
635Tyrone TownshipFranklin County · 4,582 people41.8bottom 22.9%C−Strongest: cost of living A, schools C+·lowest: jobs & income D
637Canteen TownshipSt. Clair County · 7,714 people41.8bottom 22.8%C−Strongest: cost of living A, walkability A−·lowest: health D
641SavannaCarroll County · 2,699 people41.6bottom 22.4%C−Strongest: walkability A−, cost of living B+·lowest: hazard risk D
642Yellowhead TownshipKankakee County · 2,549 people41.5bottom 22.3%C−Strongest: walkability B, jobs & income B−·lowest: hazard risk C−
644Gibson CityFord County · 3,371 people41.5bottom 22.2%C−Strongest: schools A−, hazard risk B·lowest: jobs & income D
645CaseyvilleSt. Clair County · 4,402 people41.3bottom 21.8%C−Strongest: cost of living B+, walkability B·lowest: hazard risk D
648South Ottawa TownshipLaSalle County · 8,299 people41.0bottom 21.2%C−Strongest: cost of living B−, jobs & income C+·lowest: hazard risk C−
649StegerWill County · 9,352 people40.9bottom 20.8%C−Strongest: walkability A, hazard risk B+·lowest: schools D
651HavanaMason County · 2,799 people40.5bottom 20.1%C−Strongest: walkability A−, cost of living A−·lowest: jobs & income D
653PosenCook County · 5,405 people40.4bottom 19.8%C−Strongest: walkability A−, health B−·lowest: hazard risk D
655HoopestonVermilion County · 4,676 people40.4bottom 19.7%C−Strongest: walkability A, cost of living A−·lowest: jobs & income D
657Brookside TownshipClinton County · 4,522 people40.4bottom 19.7%C−Strongest: cost of living A, walkability B·lowest: jobs & income D−
659Rock FallsWhiteside County · 8,521 people40.1bottom 19.2%C−Strongest: walkability A−, cost of living A−·lowest: safety D
660ChristopherFranklin County · 2,607 people40.0bottom 19.1%C−Strongest: cost of living A, walkability C+·lowest: jobs & income D
661Savanna TownshipCarroll County · 3,324 people39.9bottom 18.9%C−Strongest: walkability B+, cost of living B+·lowest: hazard risk D
665Ludlow TownshipChampaign County · 4,076 people39.5bottom 18.2%C−Strongest: hazard risk B, jobs & income B·lowest: schools C−
669Carmi TownshipWhite County · 6,003 people39.3bottom 17.8%C−Strongest: cost of living B, schools B−·lowest: health C−
673Georgetown TownshipVermilion County · 7,100 people38.9bottom 16.9%C−Strongest: cost of living A−, hazard risk B+·lowest: schools D
677AnnaUnion County · 4,096 people38.4bottom 15.9%C−Strongest: walkability A−, cost of living B+·lowest: health D
678Shiloh TownshipJefferson County · 6,449 people38.3bottom 15.8%C−Strongest: cost of living B−, health C+·lowest: walkability C
679Oakwood TownshipVermilion County · 3,048 people38.3bottom 15.7%C−Strongest: cost of living B, hazard risk B−·lowest: walkability C−
680GlenwoodCook County · 8,416 people38.2bottom 15.5%C−Strongest: walkability A, health B−·lowest: schools C−
683LawrencevilleLawrence County · 4,356 people37.8bottom 14.9%DStrongest: walkability A, cost of living A·lowest: jobs & income D−
684Cedar TownshipKnox County · 2,942 people37.7bottom 14.8%DStrongest: cost of living B+, walkability B−·lowest: schools C−
685Candlewick Lakeunincorporated, Boone County · 5,448 people37.7bottom 14.8%DStrongest: hazard risk B+, jobs & income B·lowest: walkability C−
686Lafayette TownshipColes County · 4,678 people37.5bottom 14.4%DStrongest: jobs & income B, cost of living B−·lowest: hazard risk C−
687Lawrence TownshipLawrence County · 6,190 people37.5bottom 14.4%DStrongest: cost of living A−, walkability A−·lowest: jobs & income D
688South Chicago HeightsCook County · 3,884 people37.5bottom 14.4%DStrongest: hazard risk A+, walkability A·lowest: safety C−
689BentonFranklin County · 6,558 people37.2bottom 13.9%DStrongest: cost of living B+, walkability B−·lowest: health C−
690Benton TownshipFranklin County · 8,535 people37.2bottom 13.8%DStrongest: cost of living B+, walkability B·lowest: health C−
691LynwoodCook County · 9,297 people37.0bottom 13.5%DStrongest: walkability B, jobs & income B·lowest: hazard risk D
692CarmiWhite County · 4,623 people36.8bottom 13.3%DStrongest: cost of living B−, schools B−·lowest: health D
694Johnston CityWilliamson County · 3,313 people36.7bottom 13.1%DStrongest: cost of living B+, walkability B−·lowest: jobs & income D
696SilvisRock Island County · 7,979 people36.6bottom 12.8%DStrongest: hazard risk A−, cost of living B·lowest: safety D
699Bonus TownshipBoone County · 4,390 people36.2bottom 12.2%DStrongest: hazard risk B, jobs & income B·lowest: walkability D
700BurnhamCook County · 3,919 people36.2bottom 12.1%DStrongest: walkability A+, cost of living B−·lowest: schools C−
701SpartaRandolph County · 4,022 people36.0bottom 12.0%DStrongest: cost of living B+, walkability B+·lowest: jobs & income D
703WatsekaIroquois County · 4,510 people36.0bottom 11.8%DStrongest: walkability B+, cost of living B·lowest: health D−
705University ParkWill County · 7,019 people35.9bottom 11.7%DStrongest: walkability A−, hazard risk B−·lowest: health C
706Olympia FieldsCook County · 4,593 people35.7bottom 11.5%DStrongest: walkability A+, health B+·lowest: cost of living D−
710Harrisburg TownshipSaline County · 9,656 people35.5bottom 11.3%DStrongest: cost of living B+, walkability B·lowest: jobs & income D
711Ingalls Parkunincorporated, Will County · 3,015 people35.5bottom 11.2%DStrongest: walkability A, cost of living C+·lowest: schools C−
717Murphysboro TownshipJackson County · 9,333 people34.5bottom 10.0%DStrongest: walkability B−, cost of living B−·lowest: hazard risk D
718Six Mile TownshipFranklin County · 3,450 people34.4bottom 10.0%DStrongest: cost of living A, jobs & income C−·lowest: schools D
723WestvilleVermilion County · 3,029 people33.8bottom 9.2%DStrongest: cost of living A−, hazard risk B+·lowest: schools D
726Ganeer TownshipKankakee County · 3,161 people33.4bottom 8.6%DStrongest: walkability B−, cost of living C+·lowest: hazard risk D
727Middleport TownshipIroquois County · 3,603 people33.4bottom 8.6%DStrongest: cost of living B+, walkability B·lowest: jobs & income D−
728DixmoorCook County · 2,951 people33.3bottom 8.5%DStrongest: walkability A+, cost of living B−·lowest: schools D
729Denning TownshipFranklin County · 4,628 people33.2bottom 8.4%DStrongest: cost of living A−, walkability B·lowest: schools D
730West FrankfortFranklin County · 7,105 people33.2bottom 8.4%DStrongest: cost of living A−, walkability A−·lowest: health D
735Sauk VillageCook County · 9,624 people32.8bottom 7.8%DStrongest: walkability A, cost of living B−·lowest: health D
738RobbinsCook County · 4,588 people32.3bottom 7.2%DStrongest: walkability A, cost of living B−·lowest: health D
741Cherry ValleyWinnebago County · 2,887 people31.9bottom 6.8%DStrongest: health B+, hazard risk B·lowest: schools D
744Frankfort TownshipFranklin County · 6,265 people31.2bottom 6.0%DStrongest: cost of living A−, walkability B−·lowest: schools D
745Aroma TownshipKankakee County · 4,827 people31.0bottom 5.9%DStrongest: jobs & income B−, cost of living B−·lowest: hazard risk D−
747York TownshipCarroll County · 2,757 people30.7bottom 5.6%DStrongest: cost of living B+, hazard risk C+·lowest: walkability D−
748Ridgewoodunincorporated, Will County · 2,795 people30.5bottom 5.4%DStrongest: hazard risk B−, walkability B−·lowest: health D
749MurphysboroJackson County · 6,977 people30.4bottom 5.3%DStrongest: walkability B+, cost of living B·lowest: safety D
750Venice TownshipMadison County · 4,523 people30.4bottom 5.3%DStrongest: cost of living B+, walkability B−·lowest: schools D−
752Foster TownshipMadison County · 3,871 people30.3bottom 5.2%DStrongest: jobs & income B, hazard risk C+·lowest: walkability D
753Calumet ParkCook County · 6,772 people30.0bottom 4.8%D−Strongest: walkability A+, cost of living C+·lowest: safety D
755Flora TownshipBoone County · 3,011 people29.9bottom 4.7%D−Strongest: hazard risk B−, health B−·lowest: schools C−
756MadisonMadison County · 3,063 people29.6bottom 4.4%D−Strongest: cost of living A−, walkability C·lowest: schools D−
759Pontoon BeachMadison County · 5,887 people28.5bottom 3.7%D−Strongest: cost of living B−, walkability B−·lowest: schools D−
760TiltonVermilion County · 2,537 people28.4bottom 3.6%D−Strongest: cost of living A−, hazard risk B·lowest: schools D−
762Owen TownshipWinnebago County · 3,601 people27.7bottom 3.1%D−Strongest: jobs & income A, cost of living C·lowest: walkability D−
764Somerset TownshipJackson County · 3,940 people26.9bottom 2.6%D−Strongest: jobs & income C+, schools C·lowest: hazard risk 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 Illinois. 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 small town in Illinois?

Among 410 graded towns of 2,500 to 9,999 residents, Clarendon Hills (DuPage County) ranks first, with an A+; health (A+) and schools (A+) are its strongest grades; cost of living (C) is its lowest. Hawthorn Woods and Teutopolis Township follow.

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 Illinois. The full method is on How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500 to 9,999 residents with an overall grade (410 in Illinois). 517 smaller places have subject grades only; 1 town of 2,500+ lack enough data for a grade; Larger towns are on the best places to live list. Every town is on the Illinois page.

Go deeper

More Illinois lists

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

All Illinois rankings →
Other states

Best small towns in other states