| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Sigourney | 1 | 1,940 | 1,996 | -0.56% | 897 | 2 | City |
| Keota | 2 | 885 | 897 | -0.34% | 1,145 | 1 | City |
| Hedrick | 3 | 701 | 722 | -0.57% | 450 | 2 | City |
| What Cheer | 4 | 590 | 607 | -0.51% | 477 | 1 | City |
| Richland | 5 | 528 | 536 | -0.38% | 511 | 1 | City |
| Delta | 6 | 253 | 260 | -0.78% | 264 | 1 | City |
| Keswick | 7 | 234 | 242 | -0.85% | 525 | 0 | City |
| South English | 8 | 195 | 202 | -1.02% | 621 | 0 | City |
| Ollie | 9 | 189 | 196 | -1.05% | 190 | 1 | City |
| Harper | 10 | 116 | 119 | -0.85% | 1,318 | 0 | City |
| Martinsburg | 11 | 110 | 113 | -0.9% | 294 | 0 | City |
| Webster | 12 | 94 | 97 | -1.05% | 344 | 0 | City |
| Kinross | 13 | 78 | 80 | -1.27% | 413 | 0 | City |
| Gibson | 14 | 57 | 59 | -1.72% | 905 | 0 | City |
| Thornburg | 15 | 43 | 45 | -2.27% | 216 | 0 | City |
| Hayesville | 16 | 41 | 43 | -2.38% | 164 | 0 | City |
Sigourney is the largest city in Keokuk County, with a population of 1,940.
Hayesville is the smallest city in Keokuk County, with a population of 41.
There are 16 cities in Keokuk County, Iowa.