Illinois Water Quality Report (2026)

By Echo Water Research Team 36 min read
Illinois Water Quality Report (2026)

Illinois Tap Water Quality Report

1074 cities analyzed • 10,811,305 people served

Updated March 2026 • Data from EWG & EPA SDWIS

1074
Cities Analyzed
10.0
Avg Above Guidelines
10,811,305
Total Population Served
Best Water Quality
St. Petersburg (0 above guidelines)
Most Concerns
Hanna City (19 above guidelines)

Most Common Contaminants in Illinois

Contaminant Found In % of Cities
Total trihalomethanes (TTHMs) carcinogen 1019 of 1074 95%
Haloacetic acids (HAA5) carcinogen 994 of 1074 93%
Chloroform carcinogen 969 of 1074 90%
Dichloroacetic acid carcinogen 921 of 1074 86%
Bromodichloromethane carcinogen 915 of 1074 85%
Dibromochloromethane carcinogen 855 of 1074 80%
Trichloroacetic acid carcinogen 800 of 1074 74%
Dibromoacetic acid 693 of 1074 65%
Fluoride 589 of 1074 55%
Barium 579 of 1074 54%

City-by-City Water Quality Rankings

Ranked by number of contaminants above EWG health guidelines (most to fewest).

# City Detected Above Guidelines Above Legal People Served
1 Machesney Park 31 19 2 35,580
2 Dunlap 42 19 0 1,603
3 Hanna City 41 19 0 1,253
4 Peoria 41 18 0 121,478
5 East Peoria 32 18 0 22,284
6 Glasford 42 18 0 2,665
7 Aurora 33 17 0 200,000
8 Belleville 31 17 0 139,879
9 O'fallon 31 17 0 46,603
10 South Elgin 38 17 0 22,549
11 Caseyville 32 17 0 17,000
12 Cahokia Heights 31 17 0 15,250
13 Columbia 31 17 0 11,638
14 Waterloo 31 17 0 10,190
15 Scott Air Force Base 32 17 0 6,779
16 Swansea 31 17 0 4,474
17 East St. Louis 31 17 0 450
18 Rockford 38 16 0 147,051
19 Elgin 36 16 0 113,911
20 Galesburg 27 16 1 31,745
21 Freeport 25 16 1 23,930
22 Jerseyville 32 16 0 12,750
23 Oneida 27 16 2 3,460
24 Knoxville 27 16 1 3,120
25 Sleepy Hollow 36 16 0 3,100
26 Pekin 34 16 0 1,635
27 Germantown 24 16 0 1,531
28 East Galesburg 28 16 1 860
29 Henderson 27 16 1 375
30 Little York 27 16 1 304
31 Chapin 26 16 0 0
32 Evanston 23 15 0 75,570
33 Skokie 25 15 0 62,700
34 Alton 30 15 0 46,127
35 Quincy 29 15 0 45,000
36 Northbrook 26 15 0 34,407
37 Collinsville 29 15 1 29,500
38 Belvidere 31 15 0 25,070
39 Zion 26 15 0 24,413
40 Lockport 35 15 0 19,887
41 Taylorville 24 15 0 16,396
42 Wauconda 24 15 0 14,084
43 Minooka 30 15 0 12,800
44 Lincolonwood 24 15 0 12,394
45 Wood River 27 15 1 10,464
46 Peoria Heights 22 15 0 5,908
47 Northfield 23 15 0 5,470
48 Brighton 30 15 0 5,041
49 Vernon Hills 26 15 0 3,595
50 Edinburg 24 15 0 1,727
51 Provo 32 15 0 1,468
52 Patoka 22 15 0 603
53 Langleyville 24 15 0 425
54 West Union 20 15 0 0
55 Springfield 24 14 0 117,428
56 Waukegan 24 14 0 87,157
57 Bloomington 24 14 0 77,610
58 Romeoville 31 14 0 50,244
59 Rock Island 29 14 0 39,018
60 Libertyville 24 14 0 34,617
61 Mundelein 23 14 0 31,500
62 Gurnee 24 14 0 30,706
63 Algonquin 26 14 0 29,700
64 Round Lake Beach 23 14 0 28,845
65 Edwardsville 24 14 0 26,808
66 Grayslake 24 14 0 21,248
67 Crest Hill 37 14 0 21,169
68 Round Lake 23 14 0 18,278
69 Marion 26 14 0 16,855
70 North Chicago 22 14 0 16,813
71 Chatham 24 14 0 16,544
72 Charleston 24 14 0 16,400
73 Mt. Vernon 25 14 0 15,793
74 Macomb 25 14 0 15,052
75 Lindenhurst 23 14 0 14,467
76 Robinson 20 14 0 11,331
77 Beach Park 24 14 0 8,616
78 Lincolnshire 23 14 0 7,275
79 Pocahontas 29 14 0 6,838
80 Fairfield 20 14 0 6,202
81 Williamsville 24 14 0 6,091
82 Flora 21 14 0 5,478
83 Park City 24 14 0 5,425
84 Granite City 29 14 0 4,787
85 Byron 19 14 0 4,743
86 New Baden 21 14 0 4,178
87 Westville 23 14 0 3,791
88 Rochester 24 14 0 3,689
89 Odin 21 14 0 2,836
90 Kenilworth 23 14 0 2,514
91 St Rose 22 14 0 2,135
92 Catlin 23 14 0 2,087
93 Hudson 24 14 0 1,847
94 Green Oaks 24 14 0 1,470
95 Morrisonville 15 14 1 1,068
96 Clay City 28 14 0 1,059
97 Raymond 19 14 0 974
98 Fort Lauderdale 26 14 0 912
99 St David 29 14 0 850
100 Loami 25 14 0 812
101 Farina 21 14 0 550
102 Xenia 21 14 0 545
103 Towanda 24 14 0 480
104 Erlanger 25 14 0 464
105 Speld 24 14 0 358
106 Ste. Marie 28 14 0 243
107 Spfld 24 14 0 220
108 Indianola 24 14 0 176
109 La Verne 24 14 0 154
110 Englewood 25 14 0 148
111 St Louis 25 14 0 120
112 Oviedo 24 14 0 92
113 Eldred 19 14 0 0
114 Bardolph 25 14 0 0
115 West Salem 28 14 0 0
116 Hutsonville 20 14 0 0
117 Annapolis 20 14 0 0
118 Kinmundy 21 14 0 0
119 Chicago 20 13 0 2,746,388
120 Cicero 24 13 0 83,000
121 Kankakee 27 13 0 80,275
122 Des Plaines 23 13 0 60,675
123 Berwyn 23 13 0 58,000
124 Oak Lawn 25 13 0 55,022
125 Oak Park 25 13 0 54,583
126 Glenview 25 13 0 47,856
127 Moline 28 13 0 44,500
128 Crystal Lake 27 13 0 40,635
129 Park Ridge 23 13 0 37,457
130 St. Charles 27 13 0 33,103
131 Burbank 22 13 0 30,000
132 Highland Park 22 13 0 29,763
133 Lake In The Hills 25 13 0 29,228
134 Wilmette 22 13 0 27,087
135 West Chicago 22 13 0 25,166
136 Elmwood Park 23 13 0 25,000
137 Harvey 23 13 0 25,000
138 Melrose Park 24 13 0 24,206
139 Dieterich 28 13 0 23,944
140 Blue Island 25 13 0 23,463
141 Great Lakes 22 13 0 23,000
142 Park Forest 19 13 0 21,975
143 Dolton 23 13 0 21,426
144 East Moline 29 13 0 20,645
145 Evergreen Park 23 13 0 19,943
146 Mattoon 24 13 0 19,500
147 Jacksonville 23 13 0 19,446
148 Lake Forest 23 13 0 19,367
149 Deerfield 23 13 0 19,196
150 Bethalto 22 13 0 19,121
151 Alsip 25 13 0 18,880
152 Justice 25 13 0 18,457
153 Franklin Park 23 13 0 18,333
154 Troy 22 13 0 16,800
155 Bridgeview 25 13 0 16,446
156 Canton 29 13 0 14,700
157 Forest Park 24 13 0 14,339
158 Norridge 24 13 0 14,281
159 Riverdale 22 13 0 13,549
160 Glen Carbon 30 13 0 12,943
161 Herrin 24 13 0 12,872
162 Plano 21 13 0 12,191
163 Centralia 22 13 0 12,182
164 Ingleside 18 13 0 11,780
165 Schiller Park 23 13 0 11,515
166 River Forest 24 13 0 11,172
167 Worth 24 13 0 10,970
168 Summit 24 13 0 10,875
169 River Grove 24 13 0 10,093
170 La Salle 20 13 0 9,700
171 Hardwood Heights 23 13 0 9,065
172 Glencoe 16 13 0 8,849
173 Mascoutah 25 13 0 8,754
174 Calunet Park 22 13 0 8,442
175 Benton 22 13 0 8,398
176 Marengo 17 13 0 7,572
177 Sandwich 20 13 0 7,421
178 Mt Carmel 16 13 0 7,284
179 Stickney 23 13 0 7,110
180 Winthrop Harbor 20 13 0 6,700
181 Hamilton 18 13 0 6,125
182 Wilmington 21 13 0 5,624
183 Robbins 24 13 0 5,415
184 Lebanon 21 13 0 4,418
185 Hometown 22 13 0 4,339
186 Sparta 21 13 0 4,200
187 Rosemont 22 13 0 4,200
188 Trenton 21 13 0 4,025
189 Momence 19 13 0 3,180
190 Menard 20 13 0 2,920
191 Rushville 17 13 0 2,398
192 Duquoin 24 13 0 2,328
193 Colchester 18 13 0 2,296
194 Richmond 19 13 0 2,087
195 Merrionette Park 22 13 0 1,969
196 Hampton 29 13 0 1,863
197 Sandoval 22 13 0 1,528
198 Garden Homes 23 13 0 1,472
199 Murrayville 23 13 0 1,403
200 Louisville 28 13 0 1,201
201 Sumner 16 13 0 1,093
202 Bannockburn 22 13 0 1,013
203 Roseville 18 13 0 989
204 Dallas City 18 13 0 945
205 Crofton 21 13 0 855
206 Farmersville 15 13 0 816
207 Techny 23 13 0 809
208 New Memphis 21 13 0 800
209 Findlay 28 13 0 800
210 Franklin 23 13 0 800
211 Forest View 21 13 0 800
212 Moro 22 13 0 723
213 Tower Hill 28 13 0 650
214 Cisne 15 13 0 634
215 Bedford Park 21 13 0 602
216 Dorchester 22 13 0 562
217 Mark 19 13 0 555
218 Mt. Auburn 17 13 1 480
219 Summerfield 21 13 0 471
220 London Mills 21 13 0 400
221 Norwood Park Township 23 13 0 312
222 Mccook 20 13 0 275
223 Vermilion 16 13 0 250
224 Norris 29 13 0 200
225 Smithboro 19 13 0 200
226 Raritan 18 13 0 180
227 Dwight 21 13 0 174
228 Media 18 13 0 132
229 Beckemeyer 20 13 0 0
230 White Hall 18 13 0 0
231 Augusta 16 13 0 0
232 Chester 20 13 0 0
233 Ellis Grove 20 13 0 0
234 Littleton 16 13 0 0
235 Humboldt 24 13 0 0
236 Hoffman 22 13 0 0
237 Greenville 19 13 0 0
238 Mulberry Grove 21 13 0 0
239 Biggsville 18 13 0 0
240 Carthage 22 13 0 0
241 Paloma 15 13 0 0
242 Edgewood 28 13 0 0
243 Toledo 15 13 0 0
244 Jewett 15 13 0 0
245 Concord 17 13 0 0
246 Waverly 24 13 0 0
247 Mazon 16 13 0 0
248 Hebron 17 13 0 0
249 Urbana 20 12 0 142,250
250 Decatur 26 12 0 76,122
251 Normal 24 12 0 45,841
252 Carpentersville 18 12 0 37,983
253 Loves Park 23 12 0 24,000
254 Yorkville 20 12 0 23,000
255 Mchenry 24 12 0 22,335
256 Frankfort 24 12 0 20,296
257 Mokena 22 12 1 19,887
258 Sycamore 21 12 0 18,500
259 Cary 28 12 0 18,271
260 Western Springs 20 12 0 13,274
261 Champaign 22 12 0 13,000
262 Murphysboro 23 12 0 10,740
263 West Frankfort 18 12 0 9,475
264 Lake Villa 18 12 0 8,829
265 Rock Falls 16 12 0 8,620
266 Volo 17 12 0 6,629
267 Carterville 23 12 0 6,484
268 Mount Zion 26 12 0 5,833
269 Lake Bluff 16 12 0 5,722
270 Watseka 17 12 0 5,500
271 Petersburg 14 12 0 4,800
272 Round Lake Park 16 12 0 4,800
273 Gillespie 21 12 0 3,919
274 Mt. Morris 20 12 3 3,100
275 Newton 15 12 0 2,977
276 Dixmoor 18 12 0 2,973
277 Heyworth 16 12 0 2,800
278 Mason City 16 12 0 2,558
279 Camp Point 14 12 0 2,434
280 Lewistown 15 12 0 2,400
281 Aviston 20 12 0 2,150
282 Hillsboro 20 12 0 1,980
283 Moweaqua 17 12 0 1,900
284 Albion 17 12 0 1,765
285 North Pekin 18 12 0 1,573
286 Pleasant Plains 14 12 0 1,508
287 Goreville 20 12 0 1,049
288 Lincoln 20 12 0 1,036
289 Mendon 14 12 0 953
290 Lawrencville 14 12 0 920
291 Ramsey 18 12 0 911
292 Mt. Olive 21 12 0 870
293 Tallula 14 12 0 750
294 Ogden 15 12 0 750
295 Tampico 17 12 0 750
296 Creal Springs 20 12 0 710
297 Davis 14 12 0 700
298 Potomac 16 12 0 685
299 Vermont 20 12 0 660
300 Ursa 15 12 0 626
301 Golden 15 12 0 620
302 Liberty 15 12 0 601
303 Taylor Springs 20 12 0 600
304 Virginia 15 12 0 588
305 Wilsonville 21 12 0 586
306 Cullom 16 12 0 563
307 Cedaredge 26 12 0 500
308 East Dubuque 18 12 2 491
309 Latham 17 12 0 380
310 Seymour 22 12 0 350
311 Loraine 14 12 0 300
312 Mt Clare 21 12 0 278
313 Bryant 15 12 0 267
314 Rutland 17 12 0 259
315 West Point 14 12 0 248
316 Patterson 15 12 0 150
317 Eagarville 21 12 0 127
318 Colorado Springs 16 12 0 120
319 La Prairie 16 12 0 47
320 Chrisman 18 12 0 0
321 Litchfield 19 12 0 0
322 Bartelso 16 12 0 0
323 Bowen 14 12 0 0
324 Clayton 14 12 0 0
325 Butler 19 12 0 0
326 Ashmore 14 12 0 0
327 Creve Coeur 17 12 0 0
328 Dawson 15 12 0 0
329 Benld 21 12 0 0
330 Pleasant Hill 16 12 0 0
331 Franklin Grove 15 12 0 0
332 Assumption 16 12 0 0
333 Flat Rock 14 12 0 0
334 Gibson City 17 12 0 0
335 Athens 17 12 0 0
336 Alto Pass 17 12 0 0
337 Bartlett 19 11 0 41,103
338 Chicago Heights 21 11 0 30,300
339 Montgomery 22 11 0 28,956
340 Batavia 22 11 0 26,098
341 Woodstock 19 11 0 25,630
342 Geneva 19 11 0 21,247
343 Lake Zurich 23 11 0 20,022
344 Homewood 18 11 0 19,463
345 Shorewood 22 11 0 17,495
346 Morton 22 11 0 17,111
347 Antioch 20 11 0 14,175
348 Rantoul 17 11 0 13,000
349 Richton Park 22 11 0 12,500
350 Pingree Grove 15 11 0 10,365
351 Flossmoor 19 11 0 9,704
352 Mendota 21 11 0 6,926
353 Shelbyville 16 11 0 6,500
354 Staunton 19 11 0 6,029
355 Pana 19 11 0 5,847
356 East Alton 22 11 2 5,786
357 Mt Vernon 18 11 0 5,483
358 Dupo 17 11 0 5,472
359 Auburn 20 11 0 4,895
360 Freeburg 18 11 0 4,529
361 Lakewood 18 11 0 3,780
362 Mcleansboro 19 11 0 3,762
363 Johnston City 19 11 0 3,639
364 South Jacksonville 19 11 0 3,508
365 Virden 20 11 0 3,425
366 Woodlawn 19 11 0 3,425
367 Marquette Heights 17 11 0 2,974
368 Round Lake Heights 17 11 0 2,773
369 Pawnee 20 11 0 2,739
370 Sesser 17 11 0 2,505
371 Groveland 13 11 0 2,430
372 Poplar Grove 17 11 0 2,372
373 Mulkeytown 18 11 0 2,350
374 Prospect Heights 19 11 0 2,275
375 Whittington 17 11 0 2,261
376 Thompsonville 17 11 0 2,115
377 Zeigler 17 11 0 2,071
378 Roanoke 14 11 0 2,000
379 Belle Rive 18 11 0 1,930
380 New Athens 16 11 0 1,902
381 Cambria 18 11 0 1,760
382 Pontiac 25 11 0 1,665
383 Erie 15 11 0 1,600
384 East Hazel Crest 18 11 0 1,543
385 Crainville 18 11 0 1,506
386 Onarga 13 11 0 1,409
387 Utica 18 11 0 1,400
388 Valier 17 11 0 1,259
389 Royalton 17 11 0 1,118
390 Nauvoo 21 11 0 1,058
391 Illiopolis 15 11 0 1,046
392 Newark 17 11 0 992
393 Witt 16 11 0 991
394 Energy 18 11 0 984
395 Stronghurst 16 11 0 950
396 Dahlgren 18 11 0 862
397 Palmyra 18 11 0 850
398 Logan 17 11 0 845
399 Bushnell 16 11 0 799
400 La Moille 19 11 0 750
401 Yates City 15 11 0 750
402 Tilden 17 11 0 740
403 Carmi 16 11 0 711
404 West City 17 11 0 668
405 Ashley 18 11 0 650
406 Desplaines 19 11 0 581
407 Colp 17 11 0 523
408 Bonnie 18 11 0 516
409 Plymouth 15 11 0 505
410 Reddick 20 11 0 500
411 Golf 19 11 0 498
412 Joppa 13 11 0 450
413 Marietta 16 11 0 440
414 Mount Olive 19 11 0 433
415 Easton 14 11 0 334
416 Arlington 16 11 0 250
417 Manteno 16 11 0 217
418 Metcalf 13 11 0 200
419 Modesto 18 11 0 182
420 Campus 19 11 0 175
421 Lynnville 19 11 0 130
422 Larose 16 11 0 98
423 Elburn 19 11 0 70
424 Galatia 17 11 0 0
425 Cerro Gordo 14 11 0 0
426 Fillmore 13 11 0 0
427 Greenfield 19 11 0 0
428 Blue Mound 15 11 0 0
429 Standard 16 11 0 0
430 Irving 16 11 0 0
431 Coulterville 20 11 0 0
432 Perry 15 11 0 0
433 Divernon 20 11 0 0
434 Mount Erie 15 11 2 0
435 Argenta 14 11 0 0
436 Buckner 17 11 0 0
437 Bone Gap 14 11 1 0
438 Kempton 18 11 0 0
439 Cobden 16 11 0 0
440 Crossville 16 11 0 0
441 Broughton 14 11 0 0
442 Bluford 18 11 0 0
443 Burnt Prairie 16 11 0 0
444 Christopher 17 11 0 0
445 Dix 18 11 0 0
446 Naperville 18 10 0 155,156
447 Arlington Heights 19 10 0 79,000
448 Schaumburg 16 10 0 74,550
449 Palatine 18 10 0 70,875
450 Orland Park 21 10 0 58,862
451 Tinley Park 18 10 0 56,703
452 Wheaton 17 10 0 52,894
453 Hoffman Estates 16 10 0 52,271
454 Downers Grove 16 10 0 49,057
455 Elmhurst 17 10 0 46,387
456 Dekalb 20 10 0 45,000
457 Plainfield 18 10 0 44,762
458 Lombard 17 10 0 44,476
459 Buffalo Grove 18 10 0 44,128
460 Mount Prospect 18 10 0 41,492
461 Streamwood 18 10 0 39,577
462 Carol Stream 17 10 0 39,447
463 Wheeling 18 10 0 39,137
464 Addison 16 10 0 38,017
465 Hanover Park 19 10 0 37,973
466 Calumet City 17 10 0 37,000
467 Elk Grove Village 16 10 0 34,700
468 Glendale Heights 17 10 0 34,208
469 Niles 17 10 0 28,938
470 Glen Ellyn 16 10 0 28,850
471 New Lenox 16 10 0 27,690
472 Lansing 22 10 0 27,657
473 Huntley 15 10 0 27,000
474 Oak Forest 19 10 0 26,547
475 Morton Grove 16 10 0 25,297
476 Westmont 16 10 0 25,000
477 Lisle 17 10 0 24,233
478 Rolling Meadows 19 10 0 24,099
479 Maywood 17 10 0 24,090
480 Roselle 16 10 0 22,897
481 South Holland 18 10 0 22,500
482 Bloomingdale 16 10 0 22,423
483 Villa Park 17 10 0 22,263
484 Darien 16 10 0 22,061
485 Matteson 21 10 0 21,000
486 Bellwood 17 10 0 19,156
487 Ottawa 24 10 0 19,000
488 Brookfield 17 10 0 18,978
489 Bensenville 16 10 0 18,044
490 Hinsdale 15 10 0 17,940
491 Palos Hills 19 10 0 17,484
492 Westchester 16 10 0 16,700
493 Country Club Hills 20 10 0 16,511
494 La Grange 16 10 0 16,200
495 Palos Heights 18 10 0 15,500
496 Dixon 22 10 0 15,433
497 Morris 17 10 0 15,335
498 Midlothian 16 10 0 14,819
499 Chicago Ridge 19 10 0 14,130
500 Hickory Hills 21 10 0 14,049
501 Wood Dale 17 10 0 14,012
502 Lagrange Park 17 10 0 13,579
503 Hazel Crest 19 10 0 13,098
504 Warrenville 20 10 0 12,709
505 Markham 17 10 0 12,500
506 Effingham 21 10 0 12,328
507 North Lake 17 10 0 12,323
508 Nashville 18 10 0 11,374
509 Burr Ridge 17 10 0 11,192
510 Crestwood 20 10 0 10,950
511 Lyons 16 10 0 10,775
512 Oak Brook 16 10 0 9,400
513 Lynwood 17 10 0 9,149
514 Glenwood 16 10 0 8,956
515 Salem 20 10 0 8,406
516 Vandalia 18 10 0 7,458
517 West Dundee 15 10 0 7,339
518 Carlinville 19 10 0 6,112
519 Posen 16 10 0 5,987
520 Eddyville 13 10 0 5,445
521 Highwood 16 10 0 5,331
522 Olympia Fields 18 10 0 4,988
523 Palos Park 19 10 0 4,899
524 Fox River Grove 18 10 0 4,702
525 Hardin 17 10 0 4,675
526 South Chicago Heights 16 10 0 4,164
527 Eldorado 16 10 0 3,921
528 Red Bud 15 10 0 3,804
529 Georgetown 14 10 0 3,678
530 Norris City 13 10 0 2,302
531 Farmer City 14 10 0 2,055
532 Carrier Mills 16 10 0 2,036
533 Kirkland 12 10 0 2,000
534 Phoenix 18 10 0 1,994
535 Farmington Hills 18 10 0 1,954
536 Jonesboro 16 10 0 1,905
537 Girard 19 10 0 1,885
538 Ford Heights 17 10 0 1,813
539 Chenoa 16 10 0 1,785
540 Vienna 14 10 0 1,618
541 Warsaw 18 10 0 1,607
542 Okawville 19 10 0 1,521
543 Roxana 14 10 0 1,454
544 Astoria 15 10 0 1,450
545 New Berlin 16 10 0 1,380
546 Macon 13 10 0 1,216
547 Chebanse 16 10 0 1,200
548 Danvers 14 10 0 1,183
549 Minier 15 10 0 1,180
550 Bridgeport 13 10 0 1,107
551 Neoga 15 10 0 1,100
552 Nilwood 19 10 0 1,063
553 Wyanet 13 10 0 991
554 Albany 17 10 0 950
555 Newman 12 10 0 950
556 Sheffield 14 10 0 854
557 Thayer 19 10 0 793
558 Wolf Lake 17 10 0 783
559 Tiskilwa 14 10 0 740
560 Golconda 14 10 0 672
561 Vergennes 16 10 0 661
562 Shipman 22 10 0 656
563 Clearwater 16 10 0 537
564 Hammond 14 10 0 518
565 Cornell 18 10 0 500
566 Denver 15 10 0 495
567 San Jose 14 10 0 479
568 Ipava 14 10 0 470
569 Weldon 15 10 0 450
570 Table Grove 14 10 0 416
571 Fox Lake 13 10 0 414
572 Sparland 13 10 0 399
573 Clinton 14 10 0 374
574 Herrick 16 10 0 358
575 New Holland 14 10 0 350
576 Freeman Spur 17 10 0 340
577 Cave-in-rock 16 10 0 318
578 Hartsburg 14 10 0 314
579 Stonefort 17 10 0 306
580 Anna 15 10 1 300
581 Mooseheart 16 10 0 272
582 Royal Lakes 22 10 0 268
583 Long Grove 14 10 0 267
584 Sims 20 10 0 259
585 Diamondhead 15 10 0 250
586 Omaha 16 10 0 247
587 Thebes 12 10 0 213
588 Sanford 21 10 0 200
589 Elvaston 17 10 0 165
590 St Charles 17 10 0 130
591 Danforth 15 10 1 113
592 Cabery 15 10 0 100
593 Gorham 20 10 0 0
594 Karnak 12 10 0 0
595 Elizabethtown 16 10 0 0
596 Baylis 16 10 0 0
597 Elizabeth 13 10 0 0
598 Breese 20 10 0 0
599 Camargo 13 10 0 0
600 Kansas 13 10 0 0
601 Maroa 14 10 0 0
602 Blandinsville 16 10 0 0
603 Hartford 17 10 0 0
604 Gifford 15 10 0 0
605 Armington 13 10 0 0
606 Evansville 15 10 0 0
607 Greenup 13 10 0 0
608 Parkersburg 15 10 0 0
609 Atlanta 16 10 0 0
610 Lawrencevill 13 10 0 0
611 Nokomis 16 10 0 0
612 Maeystown 18 10 0 0
613 Ridgway 17 10 0 0
614 Griggsville 17 10 0 0
615 Allendale 14 10 0 0
616 Casey 14 10 0 0
617 Ashkum 18 10 0 0
618 Greenview 12 10 0 0
619 Buckingham 16 10 0 0
620 Harvard 14 10 0 0
621 Belknap 14 10 0 0
622 Carbondale 23 9 0 22,107
623 Washington 16 9 0 14,793
624 Highland 14 9 0 10,919
625 Peru 17 9 0 10,300
626 Maryville 14 9 0 10,150
627 Rochelle 18 9 0 9,574
628 Gilberts 12 9 0 8,366
629 Island Lake 13 9 0 8,200
630 Hampshire 13 9 0 7,758
631 North Riverside 13 9 0 6,672
632 Mahomet 12 9 0 6,580
633 Pinckneyville 16 9 0 6,350
634 Brownstown 17 9 0 5,250
635 Wonder Lake 13 9 0 5,200
636 Milan 16 9 0 5,097
637 Marseilles 16 9 0 5,061
638 Tuscola 11 9 0 4,600
639 Riverton 13 9 0 4,333
640 Sublette 13 9 0 4,100
641 Fairbury 15 9 0 3,964
642 Valmeyer 17 9 0 3,650
643 Oregon 12 9 0 3,545
644 Carrollton 10 9 0 3,383
645 Fulton 16 9 0 3,346
646 Winchester 11 9 0 2,795
647 New Burnside 9 9 0 2,702
648 Amboy 13 9 0 2,500
649 Sullivan 11 9 0 2,500
650 Polo 13 9 0 2,355
651 Lake Barrington 14 9 0 2,300
652 Tamms 11 9 0 2,185
653 Carbon Cliff 16 9 0 2,134
654 Hinckley 13 9 0 2,100
655 South Roxana 14 9 0 1,891
656 Harrisburg 10 9 0 1,793
657 Gilman 13 9 0 1,793
658 Lancaster 9 9 0 1,777
659 Olive Branch 11 9 0 1,763
660 Princeville 12 9 0 1,738
661 Port Byron 12 9 0 1,678
662 Earlville 14 9 0 1,613
663 Teutopolis 11 9 0 1,599
664 St Elmo 17 9 0 1,461
665 Silvis 13 9 0 1,460
666 Gridley 13 9 0 1,411
667 Hopkins Park 15 9 0 1,410
668 Milford 15 9 0 1,369
669 Walnut 14 9 0 1,311
670 Ladd 14 9 0 1,295
671 Thomasboro 13 9 0 1,233
672 Kingston 15 9 0 1,160
673 Malta 12 9 0 1,143
674 Meredosia 15 9 0 1,041
675 Goodfield 16 9 0 986
676 Leland 14 9 0 977
677 Rapids City 12 9 0 964
678 Stonington 12 9 0 932
679 Ridge Farm 13 9 0 912
680 Paw Paw 15 9 0 870
681 Brimfield 13 9 0 856
682 Mclean 11 9 0 830
683 Exeter 11 9 0 820
684 Dongola 11 9 0 752
685 Bluffs 13 9 0 748
686 Keithsburg 15 9 0 747
687 Stewardson 14 9 0 747
688 Saybrook 16 9 0 693
689 Wapella 13 9 0 670
690 Sidell 12 9 0 626
691 Union 11 9 0 552
692 Carlock 16 9 0 550
693 Cherry 17 9 0 490
694 Ullin 11 9 0 476
695 Emden 14 9 0 467
696 Orient 11 9 0 391
697 Martinton 13 9 0 375
698 Woodland 13 9 0 319
699 Roodhouse 10 9 0 297
700 Mapleton 10 9 0 261
701 Pulaski 11 9 0 259
702 Mill Shoals 9 9 0 254
703 Ripley 9 9 0 250
704 Austin 15 9 0 200
705 Broadwell 11 9 0 169
706 Emington 13 9 0 120
707 Noble 14 9 0 0
708 Equality 17 9 0 0
709 Bement 13 9 0 0
710 Rockbridge 10 9 0 0
711 Green Valley 15 9 0 0
712 Adair 9 9 0 0
713 Prairie City 14 9 0 0
714 Beecher City 17 9 0 0
715 Westfield 14 9 0 0
716 Bunker Hill 12 9 0 0
717 Thomson 14 9 0 0
718 Alhambra 21 9 0 0
719 Albers 12 9 0 0
720 Industry 10 9 0 0
721 Kinderhook 14 9 0 0
722 Fieldon 19 9 0 0
723 Kane 12 9 0 0
724 Sciota 17 9 0 0
725 Marshall 14 9 0 0
726 Martinsville 12 9 0 0
727 Pecatonica 13 9 0 0
728 Oblong 10 9 0 0
729 Chadwick 15 9 0 0
730 Buffalo 12 9 0 0
731 Alexander 12 9 0 0
732 Ashland 9 9 0 0
733 Arenzville 11 9 0 0
734 Chandlerville 11 9 0 0
735 Oakford 10 9 0 0
736 Crescent City 14 9 0 0
737 Makanda 23 9 0 0
738 Braceville 12 9 0 0
739 Mcclure 11 9 0 0
740 Mounds 11 9 0 0
741 Ashton 14 9 0 0
742 Burlington 13 9 0 0
743 Woodridge 10 8 0 123,148
744 Oswego 16 8 0 38,169
745 Channahon 16 8 1 12,833
746 Kewanee 13 8 0 12,547
747 Itasca 12 8 0 9,867
748 Winfield 10 8 0 9,835
749 Steger 12 8 0 9,700
750 Riverside 11 8 0 9,298
751 Paris 13 8 0 9,077
752 Olney 13 8 0 8,877
753 Clarendon Hills 11 8 0 8,653
754 Willowbrook 11 8 0 8,540
755 Hillside 11 8 0 8,200
756 Broadview 11 8 0 7,932
757 Metropolis 13 8 0 6,830
758 Lagrange 10 8 0 6,500
759 Countryside 10 8 0 6,420
760 Eureka 18 8 0 5,372
761 Pittsfield 13 8 0 5,327
762 Monticello 14 8 0 5,250
763 Berkeley 11 8 0 5,214
764 Genoa 13 8 0 5,200
765 Cherry Valley 11 8 0 4,731
766 Morrison 16 8 0 4,188
767 Burnham 10 8 0 4,159
768 Smithton 11 8 0 4,006
769 Pittsburg 9 8 0 3,927
770 Leroy 15 8 0 3,800
771 Wayne City 11 8 0 3,516
772 Indian Head Park 10 8 0 3,238
773 Winnebago 11 8 0 3,000
774 El Paso 11 8 0 2,812
775 Lena 11 8 0 2,772
776 Arcola 8 8 0 2,750
777 Galva 14 8 0 2,589
778 Lakemoor 13 8 0 2,530
779 Diamond 14 8 0 2,508
780 Seneca 13 8 0 2,371
781 Buncombe 11 8 0 2,191
782 Mt Sterling 8 8 0 1,953
783 Lexington 13 8 0 1,930
784 Pierron 11 8 0 1,928
785 Stockton 12 8 0 1,900
786 Depue 14 8 0 1,838
787 St. Jacob 9 8 0 1,835
788 East Carondelet 10 8 0 1,833
789 Herscher 9 8 0 1,600
790 Beecher 15 8 0 1,528
791 Arthur 8 8 0 1,500
792 Hodgkins 11 8 0 1,472
793 Forreston 11 8 0 1,469
794 Oakbrook Terrace 10 8 0 1,440
795 Warren 15 8 0 1,428
796 Chatsworth 12 8 0 1,256
797 Atwood 12 8 0 1,250
798 Stillman Valley 11 8 0 1,200
799 Dowell 11 8 0 1,130
800 Oquawka 16 8 0 1,125
801 Johnsburg 12 8 0 1,124
802 Downs 12 8 0 1,005
803 Southfield 11 8 0 1,001
804 Ava 19 8 0 994
805 Bismarck 12 8 0 900
806 Coello 9 8 0 858
807 Wataga 14 8 0 843
808 Willisville 18 8 0 831
809 Hurst 10 8 0 812
810 Tonica 16 8 0 800
811 South Wilmington 15 8 0 700
812 White Heath 11 8 0 660
813 Damiansville 11 8 0 650
814 Hecker 11 8 0 645
815 Cuba 13 8 0 595
816 Mound City 13 8 0 588
817 Raleigh 9 8 0 578
818 Williamsfield 11 8 0 575
819 Creston 13 8 0 535
820 Tovey 10 8 0 512
821 Sandy 11 8 0 507
822 Fithian 10 8 0 485
823 Leaf River 10 8 0 450
824 Neponset 15 8 0 427
825 Elkhart 11 8 0 426
826 Shiloh 13 8 0 387
827 Gladstone 14 8 0 387
828 Oakland 10 8 0 380
829 Scales Mound 11 8 0 376
830 Richview 9 8 0 375
831 Ivesdale 11 8 0 360
832 New Canton 10 8 0 359
833 Jeffersonville 10 8 0 355
834 Lee 14 8 0 313
835 Willow Hill 9 8 0 309
836 Desoto 9 8 0 285
837 Keensburg 13 8 0 267
838 Kingston Mines 10 8 0 266
839 Rio 15 8 0 265
840 Destin 9 8 0 218
841 Mineral 15 8 0 206
842 Compton 16 8 0 200
843 Lowpoint 12 8 0 200
844 Harvel 10 8 0 191
845 North Henderson 13 8 0 187
846 Springerton 11 8 0 178
847 Muddy 9 8 0 171
848 Chesterfield 10 8 0 170
849 West Brooklyn 13 8 0 150
850 Strawn 13 8 0 133
851 Lindenwood 12 8 0 120
852 Iola 14 8 0 114
853 Boise 15 8 0 100
854 Bettendorf 11 8 0 100
855 Mt. Sterling 8 8 0 83
856 Hines 11 8 0 60
857 Stevens Point 13 8 0 52
858 Elkville 19 8 0 0
859 Olmsted 11 8 0 0
860 Alma 10 8 0 0
861 Cisco 12 8 0 0
862 Bethany 10 8 0 0
863 Marine 14 8 0 0
864 Calhoun 12 8 0 0
865 Brussels 14 8 0 0
866 Manito 10 8 0 0
867 Lovington 12 8 0 0
868 Hull 12 8 0 0
869 Odell 10 8 0 0
870 Donnellson 10 8 1 0
871 New Douglas 10 8 0 0
872 Worden 13 8 0 0
873 Good Hope 16 8 0 0
874 Altona 16 8 0 0
875 Harmon 14 8 0 0
876 Durand 11 8 0 0
877 Versailles 10 8 0 0
878 Dundas 14 8 0 0
879 Beardstown 14 8 0 0
880 Steward 11 8 0 0
881 Buckley 11 8 0 0
882 Enfield 11 8 0 0
883 Campbell Hill 17 8 0 0
884 Milledgeville 14 8 0 0
885 New Haven 14 8 0 0
886 Grand Tower 12 8 0 0
887 Cortland 14 8 0 0
888 Barrington 15 7 0 10,327
889 Manhattan 16 7 0 7,800
890 Chillicothe 12 7 0 5,996
891 Hoopeston 15 7 0 5,802
892 Coal City 13 7 0 5,749
893 Spring Valley 13 7 0 5,582
894 Wasco 9 7 0 4,000
895 Metamora 12 7 0 3,904
896 Galena 10 7 0 3,308
897 East Dundee 10 7 0 3,000
898 Havana 10 7 0 2,963
899 Thornton 7 7 0 2,333
900 Henry 11 7 0 2,250
901 Tremont 10 7 0 2,114
902 Prophetstown 14 7 0 2,100
903 Carlyle 9 7 0 1,982
904 Rockdale 18 7 0 1,888
905 Grayville 11 7 0 1,723
906 Waterman 13 7 0 1,506
907 Toulon 11 7 0 1,397
908 Wyoming 12 7 0 1,300
909 Warrensburg 12 7 0 1,300
910 Forrest 12 7 0 1,225
911 Washburn 13 7 0 1,200
912 South Pekin 10 7 0 1,146
913 Wenona 13 7 1 979
914 Hamel 8 7 0 887
915 Hanover 10 7 0 833
916 Cowden 12 7 0 612
917 Sawyerville 9 7 0 578
918 Keyesport 9 7 0 522
919 Taylor Ridge 12 7 0 485
920 Congerville 10 7 0 474
921 Ohio 12 7 0 465
922 Secor 11 7 1 400
923 St Peter 8 7 0 387
924 Carbon Hill 13 7 0 370
925 Victoria 13 7 0 316
926 Glendale 9 7 0 280
927 Colona 11 7 0 260
928 New Minden 8 7 0 250
929 Pittsburgh 9 7 0 195
930 Hettick 9 7 0 188
931 Penfield 10 7 0 150
932 Camp Grove 15 7 0 100
933 Hollowayville 13 7 0 100
934 Lynn Center 11 7 0 100
935 Monroe Center 10 7 0 100
936 Illinois City 12 7 0 53
937 Brocton 11 7 0 0
938 Mansfield 14 7 0 0
939 Viola 13 7 0 0
940 New Boston 11 7 0 0
941 Cambridge 13 7 0 0
942 Deer Creek 9 7 0 0
943 Paxton 10 7 0 0
944 St Francisville 10 7 0 0
945 Braidwood 13 7 0 0
946 Beaverville 11 7 0 0
947 Iuka 10 7 0 0
948 Princeton 10 6 0 7,660
949 Monee 10 6 0 5,148
950 Oglesby 11 6 0 4,500
951 Forsyth 10 6 0 3,490
952 Davis Junction 9 6 0 2,373
953 Elmwood 10 6 0 2,058
954 Minonk 12 6 0 1,948
955 Lacon 11 6 0 1,878
956 Orion 16 6 0 1,861
957 Sheridan 11 6 0 1,800
958 Maple Park 11 6 0 1,300
959 Homer 13 6 0 1,200
960 Flanagan 12 6 0 1,110
961 Colfax 13 6 0 989
962 Hopedale 10 6 0 830
963 Bradford 12 6 0 750
964 New Windsor 8 6 0 740
965 Cordova 11 6 0 672
966 Stanford 10 6 0 670
967 Reynolds 14 6 0 550
968 Geneseo 9 6 0 500
969 Lostant 11 6 0 463
970 Middleton 10 6 0 434
971 Gardner 11 6 0 411
972 Lima 10 6 1 395
973 Coal Valley 9 6 0 380
974 Bellflower 9 6 0 357
975 Malden 13 6 0 326
976 Nebo 8 6 0 325
977 Arrowsmith 10 6 0 315
978 Seatonville 12 6 0 314
979 Royal 12 6 0 310
980 Alvin 9 6 0 300
981 Ellsworth 10 6 0 271
982 Roscoe 8 6 0 250
983 Lafayette 11 6 0 250
984 Waggoner 8 6 0 245
985 Oglesgby 11 6 0 243
986 Palmer 10 6 0 229
987 Aledo 11 6 0 200
988 Wadsworth 11 6 0 185
989 Longview 12 6 0 153
990 Osco 12 6 0 115
991 Van Orin 12 6 0 100
992 Dalton City 10 6 0 0
993 Milton 9 6 0 0
994 Mcnabb 13 6 0 0
995 Shannon 11 6 0 0
996 Lanark 8 6 0 0
997 Cedarville 9 6 0 0
998 Roberts 11 6 0 0
999 Melvin 9 6 0 0
1000 Capron 15 6 0 0
1001 Sauk Village 18 5 0 9,921
1002 Mackinaw 12 5 0 3,450
1003 Elwood 11 5 0 2,279
1004 Somonauk 12 5 0 1,786
1005 Sheldon 8 5 0 950
1006 Pearl City 11 5 0 790
1007 Rankin 8 5 0 650
1008 Loda 10 5 0 645
1009 Hennepin 11 5 0 266
1010 Bishop Hill 9 5 0 110
1011 Rockton 10 5 0 80
1012 Flagstaff 9 5 0 47
1013 Avon 11 5 0 0
1014 La Harpe 8 5 0 0
1015 Andover 9 5 0 0
1016 Savanna 9 5 0 0
1017 Percy 11 5 0 0
1018 Mt. Carroll 8 5 0 0
1019 Piper City 8 5 0 0
1020 Cissna Park 9 5 0 0
1021 Bellmont 7 5 0 0
1022 Toluca 8 4 0 1,425
1023 Payson 9 4 0 1,398
1024 Rossville 8 4 0 1,331
1025 St Anne 7 4 0 1,300
1026 Shabbona 10 4 0 881
1027 Sherrard 9 4 0 811
1028 Fairmount 9 4 0 690
1029 German Valley 11 4 0 463
1030 Waynesville 6 4 0 452
1031 Crete 6 4 0 400
1032 Altamont 13 4 0 386
1033 Smithfield 10 4 0 375
1034 Allerton 7 4 0 304
1035 Thawville 9 4 0 270
1036 Shawneetown 7 4 0 195
1037 Anchor 6 4 0 155
1038 Clifton 10 4 0 55
1039 Hume 8 4 0 0
1040 Alexis 9 4 0 0
1041 Elliott 8 4 0 0
1042 Monmouth 10 3 0 9,841
1043 Orangeville 8 3 0 780
1044 Godley 10 3 0 660
1045 Benson 7 3 0 450
1046 Chestnut 5 3 0 435
1047 Joy 9 3 0 372
1048 Barry 6 3 0 264
1049 Delavan 8 3 0 235
1050 Bristol 5 3 0 100
1051 Batchtown 7 3 0 0
1052 Joliet 16 2 0 148,693
1053 Lemont 11 2 0 17,500
1054 Kirkwood 8 2 0 794
1055 Woodhull 5 2 0 750
1056 Alpha 9 2 0 700
1057 Hopewell 5 2 0 420
1058 Rock City 4 2 0 313
1059 East Lynn 5 2 0 112
1060 Sibley 6 2 0 0
1061 Donovan 5 2 0 0
1062 North Aurora 11 1 0 18,350
1063 Steeleville 5 1 0 2,082
1064 Dubuque 3 1 0 700
1065 Matherville 5 1 0 670
1066 Lyndon 7 1 0 648
1067 Ruma 4 1 0 450
1068 Maquon 6 1 0 284
1069 Granville 4 1 0 0
1070 Claremont 3 1 0 0
1071 Cutler 2 1 0 0
1072 Brookport 3 1 0 0
1073 St. Petersburg 0 0 0 105
1074 Ludlow 0 0 0 34

Live in Illinois?

Get a free personalized water quality report for your address.

Check Your Water

Recommended Filtration for Illinois

Based on the most common contaminants found across Illinois (Total trihalomethanes (TTHMs), Haloacetic acids (HAA5), Chloroform), we recommend a reverse osmosis system or high-quality carbon block filter to remove disinfection byproducts and their precursors.

Echo RO System

Removes up to 99.9% of contaminants. The gold standard for drinking water in Illinois homes.

View RO Systems

Echo Whole-Home Filter

Protect every tap in your home from chlorine, VOCs, and disinfection byproducts.

View Whole-Home Filters

Echo Hydrogen Water Flask

Once your water is clean, supercharge it with molecular hydrogen for antioxidant and anti-inflammatory benefits.

Shop Hydrogen Flask

Frequently Asked Questions

Is Illinois tap water safe to drink?

Water quality varies significantly across Illinois. Of the 1074 cities analyzed, the average city has 10.0 contaminants above EWG health guidelines. The best water quality was found in St. Petersburg. We recommend checking your specific city's report for detailed information.

What city has the best water in Illinois?

Based on our analysis, St. Petersburg has the fewest contaminants above EWG health guidelines in Illinois, with 0 above guideline levels.

What city has the worst water in Illinois?

Based on our analysis, Hanna City has the most contaminants above EWG health guidelines in Illinois, with 19 above guideline levels.

What's the best water filter for Illinois residents?

For most Illinois households, we recommend a reverse osmosis (RO) system for drinking water and a whole-home filter for showers and baths. The specific recommendation depends on your city's contaminant profile — check your city's report for personalized guidance.

Data sources: Environmental Working Group (EWG) Tap Water Database, U.S. EPA Safe Drinking Water Information System (SDWIS)

Last updated: March 2026

Methodology: Contaminant levels are compared against both EPA legal limits (Maximum Contaminant Levels) and EWG health guidelines, which are often stricter and based on the latest scientific research.

Share
Leave a comment

This site is protected by hCaptcha and the hCaptcha Privacy Policy and Terms of Service apply.