Best suburbs of Chicago

We scored all 177 towns and communities of 10,000+ people in the Chicago-Naperville-Elgin, IL-IN metro area on what most people weigh when they pick a suburb: what homes cost compared with local pay, household income, poverty, commute times, education, homeownership and how many families with kids live there. Libertyville, Campton Hills and New Lenox come out on top.

Justice: #177, score 16Worth: #176, score 21Bridgeview: #175, score 22Riverdale: #174, score 23Richton Park: #173, score 23Chicago Ridge: #172, score 23Summit: #171, score 24Fox Lake: #170, score 24Alsip: #169, score 25Blue Island: #168, score 25DeKalb: #167, score 25Lyons: #166, score 26Maywood: #165, score 26Calumet City: #164, score 26Cicero: #163, score 27Elmwood Park: #162, score 28Melrose Park: #161, score 28Forest Park: #160, score 29Norridge: #159, score 29Merrillville: #158, score 29Berwyn: #157, score 29Palos Hills: #156, score 30Hickory Hills: #155, score 31River Grove: #154, score 32Chicago Heights: #153, score 32Niles: #152, score 32Northlake: #151, score 33Dolton: #150, score 33Burbank: #149, score 34Evanston: #148, score 34Crestwood: #147, score 35Markham: #146, score 35Franklin Park: #145, score 35Harvey: #144, score 35Crest Hill: #143, score 35Park Forest: #142, score 35Westmont: #141, score 35Valparaiso: #140, score 35Midlothian: #139, score 36Oak Park: #138, score 36Prospect Heights: #137, score 37Oak Lawn: #136, score 37Hammond: #135, score 38Bensenville: #134, score 39Lansing: #133, score 39Schererville: #132, score 39Gary: #131, score 39Zion: #130, score 40Orland Park: #129, score 40Huntley: #128, score 41South Holland: #127, score 42Hobart: #126, score 42Addison: #125, score 42Schiller Park: #124, score 43Country Club Hills: #123, score 43East Chicago: #122, score 43Palatine: #121, score 43Skokie: #120, score 43Wheeling: #119, score 44Waukegan: #118, score 44Hazel Crest: #117, score 45Morris: #116, score 45Elk Grove Village: #115, score 45Lake Station: #114, score 46Wood Dale: #113, score 46Bellwood: #112, score 46Matteson: #111, score 46Highland: #110, score 46Woodridge: #109, score 46Lisle: #108, score 47McHenry: #107, score 47Glendale Heights: #106, score 47North Chicago: #105, score 47Portage: #104, score 47Des Plaines: #103, score 47Hanover Park: #102, score 48Lowell: #101, score 49Carol Stream: #100, score 49Mount Prospect: #99, score 49Lincolnwood: #98, score 50Griffith: #97, score 50Cedar Lake: #96, score 50West Chicago: #95, score 50Oak Forest: #94, score 50Schaumburg: #93, score 50Elgin: #92, score 50Palos Heights: #91, score 51Beach Park: #90, score 51Round Lake Beach: #89, score 51Tinley Park: #88, score 51Joliet: #87, score 51Bloomingdale: #86, score 52Rolling Meadows: #85, score 52Carpentersville: #84, score 52Chesterton: #83, score 53Sycamore: #82, score 53Streamwood: #81, score 53Lombard: #80, score 53Downers Grove: #79, score 53Hoffman Estates: #78, score 53La Grange Park: #77, score 54Villa Park: #76, score 54Darien: #75, score 54Morton Grove: #74, score 54Arlington Heights: #73, score 54River Forest: #72, score 55Warrenville: #71, score 55Westchester: #70, score 55Brookfield: #69, score 55Woodstock: #68, score 55Burr Ridge: #67, score 56Plano: #66, score 56Dyer: #65, score 56Glen Ellyn: #64, score 56Lemont: #63, score 57Homewood: #62, score 57Montgomery: #61, score 57Wheaton: #60, score 57Aurora: #59, score 57Bolingbrook: #58, score 58Antioch: #57, score 59Wilmette: #56, score 59Lockport: #55, score 59Mundelein: #54, score 59Glenview: #53, score 59Barrington: #52, score 60Evergreen Park: #51, score 60North Aurora: #50, score 60Lake Forest: #49, score 60Yorkville: #48, score 60Park Ridge: #47, score 60Gages Lake: #46, score 61Mokena: #45, score 61Munster: #44, score 61Homer Glen: #43, score 61Vernon Hills: #42, score 61St. Charles: #41, score 61Crown Point: #40, score 61Crystal Lake: #39, score 61Round Lake: #38, score 62Shorewood: #37, score 62Batavia: #36, score 62Northbrook: #35, score 62Winnetka: #34, score 63Romeoville: #33, score 63Wauconda: #32, score 64La Grange: #31, score 64Elmhurst: #30, score 64Naperville: #29, score 64Roselle: #28, score 65Hinsdale: #27, score 67Gurnee: #26, score 67Channahon: #25, score 68Lake in the Hills: #24, score 68Highland Park: #23, score 69Buffalo Grove: #22, score 69Frankfort: #21, score 70South Elgin: #20, score 70Manhattan: #19, score 71Lake Zurich: #18, score 71Geneva: #17, score 71Grayslake: #16, score 71St. John: #15, score 71Plainfield: #14, score 71Cary: #13, score 72Minooka: #12, score 73Algonquin: #11, score 73Bartlett: #10, score 73Winfield: #9, score 74Lindenhurst: #8, score 74Deerfield: #7, score 74Pingree Grove: #6, score 75Oswego: #5, score 75Western Springs: #4, score 76New Lenox: #3, score 77Campton Hills: #2, score 78Libertyville: #1, score 781. Libertyville2. Campton Hills3. New Lenox4. Western Springs5. Oswego6. Pingree Grove7. Deerfield8. Lindenhurst9. Winfield10. BartlettChicago
top 10 upper half lower half Chicago. Dot size shows population.

The top 25

#PlaceScorePopulationMedian homeHome vs incomeHousehold incomeCommutePovertyMiles away
1Libertyville, IL7820,701$512,0003.1×$165,66725.9 min4.2%34
2Campton Hills, IL7810,894$547,5002.6×$209,13434.1 min2.9%38
3New Lenox, IL7728,893$399,9002.8×$140,86532.7 min1.5%27
4Western Springs, IL7613,588$739,4003.2×$230,25531.0 min1.3%11
5Oswego, IL7539,948$344,5002.8×$123,79231.5 min2.6%35
6Pingree Grove, IL7512,545$320,8002.8×$114,29432.4 min1.2%42
7Deerfield, IL7419,642$623,4003.4×$181,66027.8 min2.8%24
8Lindenhurst, IL7414,810$294,1002.2×$131,47434.1 min4.1%44
9Winfield, IL7410,146$386,3002.8×$135,79528.8 min3.2%24
10Bartlett, IL7340,855$375,7002.8×$133,24029.7 min4.2%27
11Algonquin, IL7330,824$351,0002.6×$134,52530.6 min4.1%40
12Minooka, IL7312,899$315,6002.7×$115,44531.8 min2.6%41
13Cary, IL7217,932$309,8002.7×$113,02628.4 min4.8%39
14Plainfield, IL7150,043$431,4003.0×$144,00033.3 min4.2%32
15St. John, IN7124,841$406,3003.1×$131,46731.2 min2.1%30
16Grayslake, IL7121,140$309,5002.7×$113,97227.2 min6.3%39
17Geneva, IL7121,138$441,4003.1×$144,34127.8 min3.8%33
18Lake Zurich, IL7119,868$435,3003.2×$135,96827.6 min3.4%32
19Manhattan, IL7110,943$332,6002.6×$128,52237.5 min4.2%33
20South Elgin, IL7025,656$339,1002.7×$127,20328.2 min6.4%34
21Frankfort, IL7021,365$481,2003.1×$154,37535.2 min3.2%25
22Buffalo Grove, IL6942,812$412,3003.2×$129,39526.3 min7.2%27
23Highland Park, IL6930,767$607,3003.6×$168,09427.5 min4.2%25
24Lake in the Hills, IL6828,590$321,9002.7×$117,15132.0 min4.1%40
25Channahon, IL6814,530$327,9002.7×$119,49430.3 min5.9%41
Show all 177 places
#PlaceScorePopulationMedian homeHome vs incomeHousehold incomeCommutePovertyMiles away
26Gurnee, IL6730,458$344,3002.9×$119,62827.4 min5.2%39
27Hinsdale, IL6717,573$1,053,7004.2×$250,000+31.6 min2.9%13
28Roselle, IL6522,756$344,7003.1×$111,31827.1 min4.1%23
29Naperville, IL64153,114$540,2003.5×$155,10530.5 min4.4%25
30Elmhurst, IL6446,111$545,4003.6×$149,64429.1 min3.3%14
31La Grange, IL6415,935$594,3003.7×$159,92928.5 min4.6%10
32Wauconda, IL6413,993$278,6002.5×$111,23931.3 min6.2%38
33Romeoville, IL6341,281$257,1002.4×$106,32532.3 min5.5%26
34Winnetka, IL6312,518$1,337,8005.4×$250,000+32.6 min1.6%19
35Northbrook, IL6234,744$652,3004.1×$157,78226.8 min4.3%22
36Batavia, IL6226,586$387,4003.2×$120,05628.9 min5.5%32
37Shorewood, IL6218,536$337,8002.8×$122,10534.7 min5.2%35
38Round Lake, IL6218,526$278,6002.5×$111,97731.3 min9.0%41
39Crystal Lake, IL6142,288$311,4002.9×$108,41829.3 min6.8%43
40Crown Point, IN6135,616$294,8002.9×$101,68629.0 min6.8%34
41St. Charles, IL6133,594$377,4003.3×$114,30027.0 min4.4%33
42Vernon Hills, IL6126,825$412,3003.4×$121,94326.9 min6.1%31
43Homer Glen, IL6124,873$418,8003.1×$136,67835.8 min4.3%21
44Munster, IN6123,504$334,3003.0×$110,18728.1 min6.0%22
45Mokena, IL6119,897$401,4003.2×$123,88930.5 min4.5%23
46Gages Lake, IL6110,819$310,5003.0×$103,31826.1 min7.0%39
47Park Ridge, IL6038,463$551,2003.9×$142,98629.1 min2.9%15
48Yorkville, IL6026,730$335,3003.1×$108,51334.0 min3.3%40
49Lake Forest, IL6019,731$938,3004.0×$235,08131.3 min3.5%29
50North Aurora, IL6019,406$342,1003.0×$114,30526.5 min6.3%34
51Evergreen Park, IL6019,283$267,5002.8×$95,71932.1 min4.0%8
52Barrington, IL6010,586$582,5003.9×$147,98930.5 min4.6%31
53Glenview, IL5947,711$609,6004.3×$143,05627.1 min6.0%19
54Mundelein, IL5932,680$309,7002.9×$108,34027.9 min8.2%35
55Lockport, IL5927,822$316,0002.8×$111,98135.3 min6.8%25
56Wilmette, IL5927,459$810,6004.3×$190,66234.6 min3.2%17
57Antioch, IL5915,000$306,7002.8×$108,89930.4 min7.9%48
58Bolingbrook, IL5874,803$314,7002.9×$108,40030.0 min9.2%24
59Aurora, IL57181,505$274,8002.9×$93,63327.2 min9.5%32
60Wheaton, IL5754,065$455,7003.8×$120,00825.7 min5.6%22
61Montgomery, IL5721,978$299,5002.9×$103,73433.4 min6.7%36
62Homewood, IL5718,773$221,1002.2×$100,13933.1 min9.4%19
63Lemont, IL5718,513$468,8003.8×$123,37034.8 min3.1%19
64Glen Ellyn, IL5628,750$544,0003.9×$140,93829.1 min6.3%20
65Dyer, IN5616,273$322,2003.0×$107,15929.4 min6.2%25
66Plano, IL5612,677$230,7002.7×$86,27127.5 min10.2%45
67Burr Ridge, IL5611,179$700,4004.5×$156,82929.2 min3.9%14
68Woodstock, IL5525,740$245,7003.0×$82,75824.6 min6.0%50
69Brookfield, IL5518,879$332,4003.0×$110,29532.7 min5.4%8
70Westchester, IL5516,300$327,3003.3×$98,95427.4 min5.0%11
71Warrenville, IL5515,211$286,1002.9×$100,32127.4 min11.3%26
72River Forest, IL5511,393$687,3004.7×$146,78632.5 min2.7%8
73Arlington Heights, IL5476,216$414,5003.6×$116,72327.7 min6.0%24
74Morton Grove, IL5424,582$389,1003.5×$111,11628.4 min7.3%15
75Darien, IL5422,032$398,7003.6×$111,21528.7 min4.2%17
76Villa Park, IL5421,888$329,0003.5×$95,01526.8 min4.7%15
77La Grange Park, IL5413,453$439,8003.7×$120,40829.0 min4.9%10
78Hoffman Estates, IL5350,858$351,9003.3×$106,80628.5 min7.1%28
79Downers Grove, IL5350,365$449,8003.9×$115,11427.8 min5.5%18
80Lombard, IL5344,399$335,7003.3×$100,36225.6 min7.2%17
81Streamwood, IL5338,277$271,2002.7×$101,21830.1 min10.2%28
82Sycamore, IL5319,083$265,7003.2×$84,12026.3 min8.1%52
83Chesterton, IN5314,635$300,9003.3×$91,06025.6 min9.3%36
84Carpentersville, IL5237,045$234,1002.7×$86,91728.2 min10.3%37
85Rolling Meadows, IL5223,690$326,2003.3×$98,51425.5 min8.5%24
86Bloomingdale, IL5222,476$376,5003.7×$102,92827.0 min5.5%22
87Joliet, IL51152,241$265,8002.9×$92,20128.8 min11.1%33
88Tinley Park, IL5155,140$299,9002.9×$105,18933.7 min5.0%20
89Round Lake Beach, IL5126,902$199,2002.3×$86,05930.4 min14.8%43
90Beach Park, IL5114,114$245,8002.9×$85,66427.7 min8.5%43
91Palos Heights, IL5112,084$367,1003.4×$108,74029.9 min5.2%13
92Elgin, IL50115,476$273,0003.0×$90,28228.2 min9.8%36
93Schaumburg, IL5077,249$330,4003.4×$97,51427.8 min5.7%24
94Oak Forest, IL5026,792$255,1002.8×$91,99031.8 min6.5%16
95West Chicago, IL5025,296$336,8003.4×$99,92726.3 min13.0%28
96Cedar Lake, IN5016,789$282,0003.4×$83,38131.7 min3.5%34
97Griffith, IN5016,137$210,1002.7×$76,63628.3 min7.1%25
98Lincolnwood, IL5013,039$496,4004.5×$109,73128.5 min6.3%12
99Mount Prospect, IL4955,395$397,4003.9×$101,72025.9 min6.6%20
100Carol Stream, IL4939,315$335,0003.3×$102,30928.1 min6.4%24
101Lowell, IN4911,853$248,0003.0×$84,02432.7 min5.5%40
102Hanover Park, IL4836,568$274,2003.0×$91,76329.1 min12.5%26
103Des Plaines, IL4758,772$335,6003.4×$97,87528.2 min6.0%18
104Portage, IN4738,634$224,2002.9×$76,27627.3 min11.6%31
105North Chicago, IL4734,050$159,6002.7×$60,17216.8 min24.5%34
106Glendale Heights, IL4732,655$261,7003.0×$86,54526.7 min10.3%21
107McHenry, IL4729,217$266,5003.1×$86,31529.0 min4.7%46
108Lisle, IL4723,432$406,8003.8×$107,47927.7 min5.9%21
109Woodridge, IL4634,028$363,7003.6×$101,00029.8 min5.5%20
110Highland, IN4623,409$233,3003.0×$78,06225.6 min11.6%23
111Matteson, IL4618,543$250,6002.6×$95,45733.8 min9.7%23
112Bellwood, IL4618,116$230,0002.9×$79,51327.8 min11.7%10
113Wood Dale, IL4614,081$318,9003.5×$91,38227.8 min6.7%18
114Lake Station, IN4612,977$137,4002.3×$59,59126.8 min15.4%29
115Elk Grove Village, IL4531,885$347,1003.7×$94,17525.5 min7.9%20
116Morris, IL4514,669$247,4003.2×$76,71121.5 min7.7%50
117Hazel Crest, IL4513,024$185,3002.7×$68,39326.8 min24.0%18
118Waukegan, IL4487,940$190,9002.7×$71,91926.1 min15.3%38
119Wheeling, IL4438,391$266,2003.1×$85,20525.7 min10.0%24
120Skokie, IL4366,544$387,2004.1×$95,33727.9 min9.7%14
121Palatine, IL4365,842$355,6003.6×$97,81927.7 min8.2%27
122East Chicago, IN4325,610$105,4002.5×$42,12520.8 min26.3%18
123Country Club Hills, IL4316,215$192,0002.6×$75,19731.0 min10.1%19
124Schiller Park, IL4311,317$275,0003.9×$69,69624.8 min2.5%13
125Addison, IL4235,758$341,3003.8×$90,43125.6 min8.7%18
126Hobart, IN4229,298$215,2002.9×$75,16026.5 min10.0%31
127South Holland, IL4220,749$217,2002.5×$85,28034.1 min14.4%17
128Huntley, IL4129,132$334,3003.8×$88,53629.5 min8.6%45
129Orland Park, IL4057,954$367,2003.7×$98,91033.8 min7.3%18
130Zion, IL4024,447$183,8002.9×$63,10427.7 min16.0%44
131Gary, IN3967,289$94,7002.4×$38,73125.9 min33.1%24
132Schererville, IN3929,825$314,9003.5×$89,46631.3 min7.7%27
133Lansing, IL3928,068$177,0002.3×$75,56932.6 min14.0%20
134Bensenville, IL3918,525$272,0003.4×$79,51525.8 min7.6%16
135Hammond, IN3875,712$159,9002.9×$55,50425.7 min19.1%18
136Oak Lawn, IL3756,450$281,2003.4×$83,91130.8 min9.6%9
137Prospect Heights, IL3715,552$346,5004.1×$85,00826.0 min7.3%22
138Oak Park, IL3652,823$465,5004.2×$110,82031.6 min7.4%6
139Midlothian, IL3613,841$207,0003.0×$70,00028.8 min9.8%15
140Valparaiso, IN3535,177$267,3003.8×$69,87224.8 min14.9%41
141Westmont, IL3524,155$379,1004.3×$88,09026.6 min9.8%15
142Park Forest, IL3521,079$115,3001.9×$61,07231.8 min17.6%25
143Crest Hill, IL3520,695$232,9003.2×$73,03328.0 min12.0%29
144Harvey, IL3519,849$88,1002.1×$42,42930.1 min22.6%16
145Franklin Park, IL3518,045$287,0003.8×$76,51928.9 min9.4%12
146Markham, IL3511,274$135,3002.4×$57,30235.7 min18.0%16
147Crestwood, IL3510,529$195,2002.6×$75,75232.7 min13.0%14
148Evanston, IL3476,380$481,2005.0×$96,43427.5 min11.8%14
149Burbank, IL3428,578$275,7003.4×$80,11631.3 min12.9%8
150Dolton, IL3320,671$151,3002.6×$57,88730.7 min21.7%15
151Northlake, IL3312,462$259,8003.1×$83,89228.5 min10.9%13
152Niles, IL3230,443$358,7004.8×$75,27428.3 min8.5%15
153Chicago Heights, IL3226,508$161,0002.9×$54,79830.1 min26.9%23
154River Grove, IL3210,409$241,8003.5×$69,85830.8 min6.2%10
155Hickory Hills, IL3114,101$288,0003.7×$77,26229.9 min11.4%11
156Palos Hills, IL3018,028$279,2003.3×$83,53335.2 min8.4%12
157Berwyn, IL2955,001$299,8003.8×$78,40829.0 min10.9%5
158Merrillville, IN2937,407$211,4003.1×$67,58732.1 min12.6%32
159Norridge, IL2914,808$374,9004.3×$87,80734.2 min7.9%11
160Forest Park, IL2913,829$304,7003.9×$77,22127.4 min11.6%7
161Melrose Park, IL2823,936$275,8004.2×$66,18927.1 min12.3%10
162Elmwood Park, IL2823,675$339,3003.7×$91,95532.2 min8.0%9
163Cicero, IL2781,858$249,4003.5×$70,84229.3 min14.6%4
164Calumet City, IL2634,798$145,2002.6×$55,36934.4 min23.4%18
165Maywood, IL2623,330$229,8003.3×$68,81534.4 min15.5%9
166Lyons, IL2610,433$257,3003.6×$70,99328.1 min14.0%7
167DeKalb, IL2540,467$204,7004.4×$46,48123.8 min24.9%55
168Blue Island, IL2521,805$178,7003.0×$59,48929.0 min17.1%12
169Alsip, IL2518,483$225,0003.4×$66,58530.1 min12.1%12
170Fox Lake, IL2410,849$228,1003.2×$70,81933.8 min13.1%48
171Summit, IL2410,753$232,6003.8×$61,86328.9 min11.2%7
172Chicago Ridge, IL2314,036$226,9003.3×$68,96431.8 min20.4%10
173Richton Park, IL2312,483$220,9003.4×$64,55433.1 min8.8%25
174Riverdale, IL2310,280$113,8002.9×$39,83333.9 min41.5%14
175Bridgeview, IL2216,521$236,4003.5×$66,65530.7 min12.8%9
176Worth, IL2110,696$215,0003.8×$56,28828.0 min21.1%12
177Justice, IL1612,285$238,4004.2×$57,17031.5 min19.4%9

Most affordable homes

  1. Park Forest 1.9 years of income, $115,300
  2. Harvey 2.1 years of income, $88,100
  3. Lindenhurst 2.2 years of income, $294,100
  4. Homewood 2.2 years of income, $221,100
  5. Round Lake Beach 2.3 years of income, $199,200

Most families with kids

  1. Manhattan 52.6% of households
  2. Plainfield 48.3% of households
  3. Hinsdale 48.2% of households
  4. Minooka 47.0% of households
  5. Lake in the Hills 46.7% of households

How the score works

For each measure we rank the 177 places from worst to best within this metro area, then combine the ranks with these weights: home value compared with household income (20%), household income (15%), poverty rate (15%), average commute (15%), share of adults with a bachelor's degree (10%), homeownership (10%), households with children (10%) and population growth since 2020 (5%). Unincorporated communities have no official growth estimate, so they get the middle value for that part. A score of 100 would mean first on every measure.

Everything comes from the Census Bureau: the American Community Survey 2020-2024 and the 2025 population estimates. We leave out crime and school ratings because comparable official data for every town does not exist; check local school district and police data for the places on your shortlist.

Frequently asked questions

What are the best suburbs of Chicago?

On our data-only score, Libertyville, Campton Hills and New Lenox rank highest among 177 places of 10,000+ people in the Chicago-Naperville-Elgin, IL-IN metro area.

What is the most affordable suburb of Chicago?

Park Forest has the lowest ratio of median home value to household income (1.9 years), with a median home of $115,300.

Which Chicago suburb has the shortest commute?

North Chicago, where the average commute is 16.8 minutes each way.

Back to the Chicago city profile, or see the best suburbs of other big cities.

Places are incorporated cities, towns and villages plus census-designated places with 10,000 or more residents, assigned to the metro area by county (OMB 2023 delineations). Distances are straight lines from the center of Chicago. The Census Bureau caps published medians at $250,000 for income and $2,000,000 for home values, shown with a plus sign.