16 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Sigourney | 1 | 1,967 | 2,001 | -0.35% | 909 | 2 | City |
| Keota | 2 | 886 | 896 | -0.23% | 1,146 | 1 | City |
| Hedrick | 3 | 713 | 730 | -0.56% | 458 | 2 | City |
| What Cheer | 4 | 592 | 606 | -0.5% | 479 | 1 | City |
| Richland | 5 | 531 | 536 | -0.19% | 514 | 1 | City |
| Delta | 6 | 256 | 261 | -0.39% | 267 | 1 | City |
| Keswick | 7 | 236 | 243 | -0.84% | 529 | 0 | City |
| Ollie | 8 | 194 | 201 | -1.02% | 195 | 1 | City |
| South English | 9 | 194 | 201 | -1.02% | 618 | 0 | City |
| Harper | 10 | 116 | 119 | -0.85% | 1,318 | 0 | City |
| Martinsburg | 11 | 108 | 110 | -0.92% | 289 | 0 | City |
| Webster | 12 | 93 | 95 | -1.06% | 341 | 0 | City |
| Kinross | 13 | 79 | 81 | -1.25% | 418 | 0 | City |
| Gibson | 14 | 57 | 59 | -1.72% | 905 | 0 | City |
| Thornburg | 15 | 45 | 47 | -2.17% | 226 | 0 | City |
| Hayesville | 16 | 42 | 44 | -2.33% | 168 | 0 | City |
Sigourney is the largest city in Keokuk County, with a population of 1,967.
Hayesville is the smallest city in Keokuk County, with a population of 42.
There are 16 cities in Keokuk County, Iowa.