Guest, Sign inJoin
Rainbow, St. Charles Community CollegeCottleville, #1 on this list · Photo: Mitch Harden · CC BY-SA 2.0
Missouri rankings · Safety

Safest towns in Missouri

Cottleville reports the least crime per resident of Missouri’s 172 towns with crime figures for 2023–2025; 15 of the 172 grade A− or better on safety nationally.

Crimes reported by each town’s own police, 2023–2025, per 1,000 residents, violent crimes counted four times. The same measure as the Safety grade. For 17 of them one year isn’t in the FBI’s published tables and comes from the FBI Crime Data Explorer or the state’s own reports (named in the row). How grades work

#1

Cottleville

St. Charles County · 6,717 people
A+

2.16 weighted crimes per 1,000 a year·violent 0.3, property 0.9

#2

Odessa

Lafayette County · 5,721 people
A

4.42 weighted crimes per 1,000 a year·violent 0.3, property 3.2

#3

Canton

Lewis County · 2,763 people
A

5.85 weighted crimes per 1,000 a year·violent 0.1, property 5.4

All 172 towns

Weighted crimes per 1,000 residents a year, lowest first, to two decimals (the sort uses the exact rate, so there are no rounding ties). Grade = the national Safety grade.

172 towns ranked. Not here? See towns without their own figures.

#TownWeighted rateViolentPropertyGrade
1CottlevilleSt. Charles County · 6,717 people · 2025 from the FBI Crime Data Explorer2.160.30.9A+
2OdessaLafayette County · 5,721 people4.420.33.2A
3CantonLewis County · 2,763 people5.850.15.4A
4GreenwoodJackson County · 6,315 people6.250.83.0A
5OronogoJasper County · 3,204 people6.701.02.8A
6BallwinSt. Louis County · 30,901 people7.580.65.2A−
7Moscow MillsLincoln County · 4,388 people7.641.03.6A−
8Lake St. LouisSt. Charles County · 19,129 people7.890.84.6A−
9NixaChristian County · 26,597 people8.140.46.7A−
10Crystal CityJefferson County · 4,694 people · 2024 from the FBI Crime Data Explorer8.301.13.8A−
11LickingTexas County · 2,958 people · 2024 from the FBI Crime Data Explorer8.590.76.0A−
12O'FallonSt. Charles County · 96,101 people8.870.85.7A−
13AshlandBoone County · 5,221 people9.211.14.7A−
14Knob NosterJohnson County · 2,997 people9.241.62.8A−
15HigginsvilleLafayette County · 4,770 people · 2024 from the FBI Crime Data Explorer9.900.67.6A−
16Webster GrovesSt. Louis County · 23,450 people10.631.06.7B+
17LadueSt. Louis County · 8,934 people10.920.78.2B+
18AvaDouglas County · 3,231 people11.001.26.0B+
19RogersvilleWebster County · 5,754 people11.071.07.3B+
20Pleasant HillCass County · 8,956 people11.151.26.6B+
21EurekaSt. Louis County · 13,422 people11.361.07.4B+
22Lake LotawanaJackson County · 2,756 people11.411.26.8B+
23WarrentonWarren County · 9,667 people · 2025 from the FBI Crime Data Explorer11.711.17.4B+
24OzarkChristian County · 23,544 people11.770.98.0B+
25CentraliaBoone County · 4,767 people11.880.59.9B+
26LawsonRay County · 2,541 people11.910.88.7B+
27EllisvilleSt. Louis County · 10,315 people11.971.27.3B+
28ClaytonSt. Louis County · 17,807 people12.210.89.1B+
29BethanyHarrison County · 2,956 people · 2025 from the FBI Crime Data Explorer12.561.08.4B+
30SmithvilleClay County · 11,160 people12.741.47.0B+
31FultonCallaway County · 12,853 people13.001.28.1B+
32WillardGreene County · 6,904 people13.142.14.7B+
33OlivetteSt. Louis County · 8,937 people13.270.810.1B
34KearneyClay County · 11,296 people13.301.86.2B
35ManchesterSt. Louis County · 18,069 people13.900.412.2B
36EldonMiller County · 4,785 people13.942.06.0B
37JacksonCape Girardeau County · 16,033 people13.951.09.8B
38BattlefieldGreene County · 6,361 people13.972.44.4B
39WentzvilleSt. Charles County · 49,495 people14.221.58.2B
40RepublicGreene County · 22,404 people14.441.29.5B
41OwensvilleGasconade County · 2,802 people14.452.25.8B
42Mount VernonLawrence County · 4,835 people14.580.612.3B
43Pleasant ValleyClay County · 2,747 people14.661.68.3B
44Town and CountrySt. Louis County · 11,619 people14.760.512.8B
45ChesterfieldSt. Louis County · 49,309 people15.071.011.3B
46MarshallSaline County · 13,766 people15.501.59.6B
47RaymoreCass County · 26,633 people15.551.111.0B
48St. CharlesSt. Charles County · 72,561 people15.841.88.9B
49East PrairieMississippi County · 2,841 people15.882.17.5B
50BuffaloDallas County · 3,550 people · 2024 from the FBI Crime Data Explorer; 2025 from the FBI Crime Data Explorer15.922.46.4B
51LouisianaPike County · 3,208 people16.192.08.4B
52TroyLincoln County · 15,201 people16.291.510.2B
53Rock HillSt. Louis County · 4,668 people16.402.27.5B
54PeculiarCass County · 6,365 people16.971.610.8B−
55Oak GroveJackson County · 9,370 people17.220.714.4B−
56Carl JunctionJasper County · 8,484 people17.322.67.1B−
57HerculaneumJefferson County · 5,402 people17.331.511.2B−
58Grain ValleyJackson County · 16,908 people17.441.710.7B−
59Sunset HillsSt. Louis County · 9,075 people17.791.113.4B−
60PortagevilleNew Madrid County · 2,702 people · 2025 from the FBI Crime Data Explorer17.792.29.0B−
61FestusJefferson County · 14,066 people17.821.611.2B−
62ArnoldJefferson County · 20,994 people · 2024 from the FBI Crime Data Explorer18.161.113.8B−
63CrestwoodSt. Louis County · 12,207 people18.441.114.2B−
64PevelyJefferson County · 6,239 people18.782.39.6B−
65St. PetersSt. Charles County · 61,479 people18.832.010.9B−
66TrentonGrundy County · 5,557 people19.023.16.7B−
67MaconMacon County · 5,532 people19.351.911.8B−
68Bonne TerreSt. Francois County · 6,636 people19.402.78.7B−
69ChaffeeScott County · 3,017 people · 2023 from the FBI Crime Data Explorer; 2024 from the FBI Crime Data Explorer19.572.111.2B−
70ChillicotheLivingston County · 9,114 people19.693.07.8B−
71CarthageJasper County · 15,895 people19.771.513.7B−
72Mountain GroveWright County · 4,754 people20.322.012.4B−
73Platte CityPlatte County · 4,911 people20.462.211.7B−
74PacificFranklin County · 7,824 people20.532.510.5B−
75ForsythTaney County · 2,752 people20.702.012.6B−
76KirkwoodSt. Louis County · 29,331 people20.911.714.0C+
77Scott CityScott County · 4,593 people21.433.09.6C+
78MonettBarry County · 10,248 people21.431.316.1C+
79LibertyClay County · 31,319 people21.641.615.4C+
80PerryvillePerry County · 8,593 people21.693.38.4C+
81Creve CoeurSt. Louis County · 18,480 people22.061.615.7C+
82MaryvilleNodaway County · 10,092 people22.261.615.9C+
83BrookfieldLinn County · 4,083 people22.702.910.9C+
84Maryland HeightsSt. Louis County · 27,559 people22.862.214.2C+
85BolivarPolk County · 11,994 people22.871.815.8C+
86LexingtonLafayette County · 4,568 people23.253.49.8C+
87FrontenacSt. Louis County · 3,790 people23.510.621.2C+
88HillsboroJefferson County · 3,493 people23.553.210.6C+
89Mountain ViewHowell County · 2,661 people · 2024 from the FBI Crime Data Explorer23.822.812.8C+
90BucknerJackson County · 2,891 people23.923.111.4C+
91Byrnes MillJefferson County · 3,183 people24.614.94.9C+
92WashingtonFranklin County · 15,906 people25.142.814.0C+
93FredericktownMadison County · 4,584 people25.791.420.0C
94St. AnnSt. Louis County · 12,617 people25.992.914.4C
95Lee's SummitJackson County · 107,514 people27.031.421.4C
96RichmondRay County · 5,968 people · 2025 from the FBI Crime Data Explorer27.922.617.4C
97SalemDent County · 4,674 people28.352.717.6C
98CameronClinton County · 7,341 people28.953.913.3C
99NeoshoNewton County · 14,078 people29.242.320.0C
100LamarBarton County · 4,337 people29.241.224.6C
101El Dorado SpringsCedar County · 3,642 people29.362.818.0C
102FlorissantSt. Louis County · 51,124 people29.422.918.0C
103WaynesvillePulaski County · 5,558 people29.745.09.8C
104University CitySt. Louis County · 34,657 people29.893.018.0C
105Blue SpringsJackson County · 61,632 people30.362.221.6C
106BeltonCass County · 26,193 people30.722.620.1C
107Osage BeachCamden County · 5,079 people30.871.923.4C
108GladstoneClay County · 27,497 people31.133.517.2C
109Webb CityJasper County · 13,459 people31.262.620.8C
110DexterStoddard County · 7,851 people32.132.621.9C−
111BoonvilleCooper County · 7,867 people32.443.020.5C−
112St. JamesPhelps County · 3,925 people32.462.422.9C−
113Jefferson CityCole County · 42,489 people32.833.319.6C−
114HarrisonvilleCass County · 10,040 people33.274.415.7C−
115LebanonLaclede County · 15,663 people33.693.619.3C−
116WarrensburgJohnson County · 20,283 people33.953.022.1C−
117Excelsior SpringsClay County · 10,819 people34.043.021.9C−
118West PlainsHowell County · 12,780 people34.233.818.9C−
119StraffordGreene County · 2,789 people35.323.521.3C−
120HannibalMarion County · 16,804 people35.333.322.3C−
121MarshfieldWebster County · 8,078 people36.293.024.4C−
122KirksvilleAdair County · 17,863 people36.603.821.6C−
123ColumbiaBoone County · 130,851 people36.853.622.3C−
124SedaliaPettis County · 22,621 people37.104.320.1C−
125CamdentonCamden County · 4,050 people38.453.126.0C−
126VersaillesMorgan County · 2,713 people39.223.724.3C−
127RollaPhelps County · 20,588 people40.553.626.2C−
128DeslogeSt. Francois County · 4,819 people · 2023 from the FBI Crime Data Explorer40.732.331.7C−
129Woodson TerraceSt. Louis County · 3,902 people42.244.424.6D
130UnionFranklin County · 13,445 people42.644.325.4D
131FarmingtonSt. Francois County · 19,226 people42.703.230.1D
132OverlandSt. Louis County · 15,474 people43.285.421.7D
133St. ClairFranklin County · 4,813 people43.404.326.2D
134IndependenceJackson County · 121,675 people43.764.426.1D
135Sugar CreekJackson County · 3,209 people44.653.032.5D
136New MadridNew Madrid County · 2,586 people45.266.519.4D
137Cape GirardeauCape Girardeau County · 40,977 people45.445.822.5D
138BrentwoodSt. Louis County · 8,079 people45.521.639.2D
139Des PeresSt. Louis County · 9,102 people45.660.643.3D
140HazelwoodSt. Louis County · 24,849 people46.145.524.2D
141St. JohnSt. Louis County · 6,441 people47.856.721.1D
142De SotoJefferson County · 6,527 people51.804.932.3D
143CharlestonMississippi County · 4,731 people52.078.617.9D
144Breckenridge HillsSt. Louis County · 4,350 people · 2024 from the FBI Crime Data Explorer; 2025 from the FBI Crime Data Explorer54.078.819.0D
145KennettDunklin County · 10,118 people55.235.134.7D
146GrandviewJackson County · 26,653 people · 2023 from the FBI Crime Data Explorer57.445.136.9D
147ClintonHenry County · 9,504 people · 2023 from the FBI Crime Data Explorer58.467.926.8D
148NormandySt. Louis County · 4,380 people59.578.425.9D
149ShrewsburySt. Louis County · 6,231 people63.320.959.7D
150Bellefontaine NeighborsSt. Louis County · 10,368 people63.438.927.8D
151St. JosephBuchanan County · 71,001 people63.446.637.2D
152JoplinJasper County · 53,930 people64.045.442.6D
153NevadaVernon County · 8,404 people64.114.645.7D
154CassvilleBarry County · 3,301 people · 2023 from the FBI Crime Data Explorer; 2024 from the FBI Crime Data Explorer64.763.849.5D
155RaytownJackson County · 29,154 people64.847.634.6D
156SullivanFranklin County · 6,942 people65.334.945.9D
157CaruthersvillePemiscot County · 5,211 people66.4810.225.7D−
158BransonTaney County · 12,921 people66.814.250.0D−
159ButlerBates County · 4,317 people68.4610.825.1D−
160FergusonSt. Louis County · 17,953 people68.578.534.5D−
161RiversidePlatte County · 4,581 people71.985.051.9D−
162BridgetonSt. Louis County · 11,277 people76.466.550.5D−
163SikestonScott County · 15,983 people81.9311.834.6D−
164MaplewoodSt. Louis County · 8,033 people86.675.365.5D−
165PotosiWashington County · 2,568 people87.156.063.0D−
166SpringfieldGreene County · 169,847 people87.8911.940.4D−
167Richmond HeightsSt. Louis County · 9,093 people93.995.273.2D−
168Kansas CityJackson County · 521,220 people103.8314.645.2D−
169PagedaleSt. Louis County · 2,511 people106.7218.433.1D−
170St. LouisSt. Louis city · 278,144 people110.9213.557.1D−
171North Kansas CityClay County · 5,613 people115.157.983.4D−
172BerkeleySt. Louis County · 8,026 people136.7620.455.3D−

Per 1,000 residents a year, 2023–2025. Last on the list: Berkeley, 136.76. The rate counts crimes reported to police, not how safe any one street feels.

Not ranked

75 towns without figures of their own

These towns of 2,500+ are not on the list because there are no police figures for them alone for all of 2023–2025, from the FBI or the state. In 2025 the FBI’s tables list State Police figures for 0 of Missouri’s counties and county sheriff figures for 98; those cover many towns at once and can’t be split by town, so they aren’t ranked here. Their other grades stand; the overall grade uses the rest.

  • Affton St. Louis County · 19,052 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Aurora Lawrence County · 7,686 people: figures for 2023 only (all three years are needed).
  • Barnhart Jefferson County · 5,785 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Black Jack St. Louis County · 6,547 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Bowling Green Pike County · 4,472 people: figures for 2023 and 2024 only (all three years are needed).
  • Burdine Township Texas County · 3,327 people: no figures of its own in the FBI’s tables for 2023–2025.
  • California Moniteau County · 4,523 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Carrollton Carroll County · 3,499 people: figures for 2023 and 2024 only (all three years are needed).
  • Castor Township Stoddard County · 4,651 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Center Township Vernon County · 9,550 people: no figures of its own in the FBI’s tables for 2023–2025.
  • City Township Barton County · 4,337 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Clarkson Valley St. Louis County · 2,540 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Clever Christian County · 3,143 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Concord St. Louis County · 18,368 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Cotton Hill Township Dunklin County · 4,700 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Country Club Andrew County · 2,512 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Cuba Crawford County · 3,288 people: figures for 2023 only (all three years are needed).
  • Dardenne Prairie St. Charles County · 15,032 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Dellwood St. Louis County · 4,825 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Duck Creek Township Stoddard County · 3,016 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Fayette Howard County · 2,848 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Fenton St. Louis County · 4,060 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Fort Leonard Wood Pulaski County · 15,432 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Glasgow Village St. Louis County · 5,504 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Glendale St. Louis County · 6,060 people: figures for 2023 and 2024 only (all three years are needed).
  • Grand River Township DeKalb County · 3,258 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Gray Summit Franklin County · 2,991 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Green Park St. Louis County · 2,670 people: no figures of its own in the FBI’s tables for 2023–2025.
  • High Ridge Jefferson County · 3,714 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Hollister Taney County · 4,690 people: figures for 2023 and 2024 only (all three years are needed).
  • Holts Summit Callaway County · 4,773 people: figures for 2024 only (all three years are needed).
  • Imperial Jefferson County · 5,488 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Independence Township Dunklin County · 11,792 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Jennings St. Louis County · 13,093 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Lemay St. Louis County · 16,228 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Liberty Township Stoddard County · 14,741 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Malden Dunklin County · 3,493 people: figures for 2023 and 2024 only (all three years are needed).
  • Marceline Township Linn County · 2,589 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Mehlville St. Louis County · 29,805 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Mexico Audrain County · 11,558 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Moberly Randolph County · 13,719 people: figures for 2023 and 2024 only (all three years are needed).
  • Monroe City Monroe County · 2,714 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Montgomery City Montgomery County · 2,782 people: figures for 2025 only (all three years are needed).
  • Mount Pleasant Township Bates County · 5,093 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Murphy Jefferson County · 8,285 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Northwoods St. Louis County · 3,579 people: figures for 2023 and 2025 only (all three years are needed).
  • Oakville St. Louis County · 35,333 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Old Jamestown St. Louis County · 20,651 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Palmyra Marion County · 3,649 people: figures for 2023 and 2024 only (all three years are needed).
  • Park Hills St. Francois County · 8,753 people: figures for 2023 and 2024 only (all three years are needed).
  • Parkville Platte County · 9,093 people: figures for 2024 and 2025 only (all three years are needed).
  • Pike Township Stoddard County · 3,577 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Pine Lawn St. Louis County · 2,682 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Piney Township Texas County · 5,071 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Polk Township Nodaway County · 13,673 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Poplar Bluff Butler County · 16,295 people: figures for 2024 and 2025 only (all three years are needed).
  • Sappington St. Louis County · 7,367 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Savannah Andrew County · 5,107 people: figures for 2023 and 2024 only (all three years are needed).
  • Sherrill Township Texas County · 5,574 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Spanish Lake St. Louis County · 17,873 people: no figures of its own in the FBI’s tables for 2023–2025.
  • St. Paul St. Charles County · 3,849 people: no figures of its own in the FBI’s tables for 2023–2025.
  • St. Robert Pulaski County · 5,602 people: figures for 2023 and 2025 only (all three years are needed).
  • Ste. Genevieve Ste. Genevieve County · 5,065 people: figures for 2023 and 2024 only (all three years are needed).
  • Terre du Lac St. Francois County · 2,516 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Tipton Moniteau County · 2,766 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Union Township Dunklin County · 3,242 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Valley Park St. Louis County · 6,767 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Vandalia Audrain County · 3,029 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Villa Ridge Franklin County · 2,835 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Weldon Spring St. Charles County · 5,301 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Whiteman AFB Johnson County · 3,517 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Wildwood St. Louis County · 34,955 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Windsor Henry County · 2,869 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Windsor Township Henry County · 3,454 people: no figures of its own in the FBI’s tables for 2023–2025.
  • Wright City Warren County · 5,854 people: figures for 2023 and 2024 only (all three years are needed).
Quick answers

Questions people ask

Which is the safest town in Missouri?

Cottleville (St. Charles County) reports the least crime per resident: 2.16 weighted crimes per 1,000 a year over 2023–2025 (0.32 violent and 0.86 property crimes per 1,000), from its police department’s reports (2025 from the FBI Crime Data Explorer). Odessa (4.42) and Canton (5.85) follow.

How are these towns ranked?

By crimes reported by each town’s police per 1,000 residents over three years (FBI figures, or the state’s own where the FBI table lacks a year), with violent crimes counted four times as heavily as property crimes. It is the same measure as the Safety grade on each town’s page. How grades work.

Why isn’t my town on this list?

The list needs 2,500+ residents and the town’s own police figures for all three years. 75 Missouri towns of 2,500+ lack them; they are listed above with the reason. Smaller towns have a Safety grade on their page but no rank.

Go deeper

More Missouri lists

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

All Missouri rankings →
Other states

Safest towns in other states