Home › North Carolina › Rankings › Best small towns Wingate, #1 on this list · Photo: Billy Hathorn · CC BY-SA 3.0 North Carolina rankings · 2026 Best small towns in North Carolina Wingate ranks first of North Carolina’s 188 graded small towns (2,500–9,999 residents), with an A+: cost of living (A−) and schools (A−) are its strongest grades; jobs & income (B−) is its lowest. 15 of the 188 (8%) grade A− or better nationally, against 25% of U.S. towns.
The overall grade, sorted: cost of living, safety, schools, health, jobs & income, walkability and hazard risk, from Census, FBI, state, CDC, EPA and FEMA data. How grades work
All towns Small towns (2,500–9,999) #2 Union County · 4,628 people A+ Strongest: cost of living A− , schools A− · lowest: jobs & income B−
A− Cost– SafetyA− SchoolsB+ HealthB− JobsA− WalkB− Hazards
35.47° N · 82.57° W #3 unincorporated, Buncombe County · 2,887 people A Strongest: jobs & income A+ , health A+ · lowest: walkability C−
B Cost– SafetyB SchoolsA+ HealthA+ JobsC− WalkB Hazards
#4 unincorporated, Lincoln County · 3,874 people A Strongest: jobs & income A , health A · lowest: cost of living B−
B− Cost– SafetyB+ SchoolsA HealthA JobsA− WalkB Hazards
Where they are: Three of the top 10 are in Union County.
All 188 small towns Overall score, highest first. The score (0–100) blends the seven livability grades and sets the order; the letter places that score among every U.S. town of 2,500+, and A+ is the top 5%, so neighbors on the list often share a letter. Each town links to its page, where the grade sheet shows every subject. The rank is the town’s place among all 286 North Carolina towns.
# Town Score Grade What drives it
2 Wingate Union County · 4,628 people 72.6 top 3.3% A+ Strongest: cost of living A− , schools A− · lowest: jobs & income B− 3 Avery Creek unincorporated, Buncombe County · 2,887 people 70.6 top 5.9% A Strongest: jobs & income A+ , health A+ · lowest: walkability C− 4 Lowesville unincorporated, Lincoln County · 3,874 people 70.3 top 6.3% A Strongest: jobs & income A , health A · lowest: cost of living B− 7 Seven Lakes unincorporated, Moore County · 4,535 people 68.6 top 9.2% A Strongest: health A− , cost of living A− · lowest: walkability C 8 Carthage Moore County · 3,070 people 66.9 top 12.6% A Strongest: cost of living A+ , hazard risk A− · lowest: jobs & income B− 13 Mineral Springs Union County · 3,514 people 65.8 top 15.0% A Strongest: jobs & income A , schools A− · lowest: walkability D− 15 Whispering Pines Moore County · 5,505 people 65.2 top 16.2% A− Strongest: safety A+ , health A+ · lowest: walkability C− 16 Emma unincorporated, Buncombe County · 2,657 people 65.2 top 16.4% A− Strongest: walkability A+ , cost of living A+ · lowest: health C 18 Fairview Union County · 3,805 people 65.0 top 16.7% A− Strongest: jobs & income A+ , schools A− · lowest: walkability D− 20 Midway Davidson County · 5,104 people 64.8 top 17.1% A− Strongest: jobs & income A− , cost of living A− · lowest: walkability C− 22 Unionville Union County · 7,322 people 64.4 top 18.1% A− Strongest: schools A− , cost of living A− · lowest: walkability D 25 Marvin Union County · 7,040 people 63.9 top 19.3% A− Strongest: health A+ , jobs & income A · lowest: cost of living C− 26 Midland Cabarrus County · 5,151 people 62.3 top 23.1% A− Strongest: jobs & income A , health A · lowest: hazard risk C 27 Wallburg Davidson County · 3,255 people 62.0 top 24.0% A− Strongest: health A− , jobs & income A− · lowest: walkability C 28 Archer Lodge Johnston County · 5,649 people 62.0 top 24.0% A− Strongest: health A− , jobs & income B+ · lowest: walkability D 29 Royal Pines unincorporated, Buncombe County · 4,325 people 61.3 top 26.1% B+ Strongest: health A , jobs & income A · lowest: walkability C− 30 Southern Shores Dare County · 3,110 people 61.2 top 26.4% B+ Strongest: health A , schools B+ · lowest: hazard risk D− 35 Briar Chapel unincorporated, Chatham County · 6,049 people 60.4 top 28.4% B+ Strongest: health A+ , jobs & income A− · lowest: cost of living C− 36 Swannanoa unincorporated, Buncombe County · 6,901 people 59.9 top 29.7% B+ Strongest: walkability A− , cost of living B+ · lowest: jobs & income C− 37 Jamestown Guilford County · 3,803 people 59.8 top 29.9% B+ Strongest: jobs & income A+ , health A · lowest: hazard risk C− 38 Oak Ridge Guilford County · 7,896 people 59.8 top 30.0% B+ Strongest: jobs & income A+ , health A · lowest: cost of living C− 39 Holly Ridge Onslow County · 5,908 people 59.1 top 31.6% B+ Strongest: health A , jobs & income A− · lowest: hazard risk D− 40 Mills River Henderson County · 7,504 people 59.1 top 31.7% B+ Strongest: jobs & income A , health A− · lowest: walkability C− 41 Forest Oaks unincorporated, Guilford County · 4,293 people 59.0 top 31.8% B+ Strongest: health A , jobs & income A− · lowest: walkability C 42 Maiden Catawba County · 3,922 people 58.9 top 32.3% B+ Strongest: cost of living A− , hazard risk B+ · lowest: walkability C+ 43 Stokesdale Guilford County · 6,133 people 58.7 top 32.7% B+ Strongest: jobs & income A , health A− · lowest: walkability C 47 Wesley Chapel Union County · 9,566 people 58.2 top 34.1% B+ Strongest: health A , jobs & income A · lowest: hazard risk D 48 Fletcher Henderson County · 8,373 people 57.9 top 35.0% B+ Strongest: health A , hazard risk B+ · lowest: cost of living C 50 Lake Park Union County · 3,609 people 57.7 top 35.3% B Strongest: schools A− , health A− · lowest: cost of living C− 51 Black Mountain Buncombe County · 8,491 people 57.7 top 35.4% B Strongest: health A , walkability B+ · lowest: cost of living D 52 Westport unincorporated, Lincoln County · 5,915 people 57.6 top 35.7% B Strongest: health A , jobs & income B+ · lowest: walkability C− 53 Canton Haywood County · 4,418 people 57.6 top 35.7% B Strongest: schools A− , health B · lowest: hazard risk C 55 East Flat Rock unincorporated, Henderson County · 6,323 people 57.6 top 35.9% B Strongest: hazard risk A , cost of living B+ · lowest: jobs & income C 56 Sunset Beach Brunswick County · 4,642 people 57.5 top 36.0% B Strongest: health B+ , jobs & income B+ · lowest: hazard risk D− 60 Swepsonville Alamance County · 2,632 people 56.1 top 39.9% B Strongest: jobs & income A , health B+ · lowest: schools C 61 Valley Hill unincorporated, Henderson County · 2,675 people 55.7 top 40.9% B Strongest: jobs & income A− , hazard risk A− · lowest: walkability C− 62 Bayshore unincorporated, New Hanover County · 2,949 people 55.6 top 41.0% B Strongest: health A , jobs & income A · lowest: hazard risk D− 63 Gibsonville Guilford County · 9,876 people 55.4 top 41.5% B Strongest: jobs & income A− , health B+ · lowest: walkability C 64 Ogden unincorporated, New Hanover County · 8,249 people 55.3 top 41.7% B Strongest: health A , jobs & income A · lowest: hazard risk D− 65 Bethlehem unincorporated, Alexander County · 4,101 people 55.3 top 41.9% B Strongest: cost of living B , jobs & income B · lowest: walkability C 67 Red Oak Nash County · 3,523 people 55.1 top 42.3% B Strongest: jobs & income A , health A− · lowest: walkability D− 68 Wrightsboro unincorporated, New Hanover County · 6,287 people 55.1 top 42.3% B Strongest: cost of living B+ , schools B · lowest: hazard risk D− 69 Flat Rock Henderson County · 3,643 people 55.0 top 42.6% B Strongest: hazard risk A− , health A− · lowest: walkability C− 70 Tyro unincorporated, Davidson County · 3,833 people 54.9 top 42.8% B Strongest: cost of living A , schools B− · lowest: walkability D 71 Tobaccoville Forsyth County · 2,770 people 54.9 top 42.9% B Strongest: cost of living B+ , health B+ · lowest: walkability D 73 Half Moon unincorporated, Onslow County · 7,378 people 54.7 top 43.6% B Strongest: health B+ , cost of living B+ · lowest: hazard risk D− 74 Neuse Forest unincorporated, Craven County · 2,671 people 54.5 top 43.9% B Strongest: cost of living A , health A− · lowest: hazard risk D− 75 Moyock unincorporated, Currituck County · 5,684 people 54.5 top 44.0% B Strongest: health A− , jobs & income B · lowest: walkability D 76 Mountain Home unincorporated, Henderson County · 3,437 people 54.1 top 45.0% B Strongest: health A− , jobs & income B+ · lowest: walkability C− 78 Wentworth Rockingham County · 2,774 people 54.0 top 45.5% B− Strongest: cost of living A , hazard risk B · lowest: walkability C− 79 Ranlo Gaston County · 4,848 people 53.8 top 45.9% B− Strongest: hazard risk A− , jobs & income B+ · lowest: cost of living C+ 81 Long View Catawba County · 5,387 people 53.6 top 46.3% B− Strongest: cost of living A− , hazard risk B+ · lowest: health C 82 Bermuda Run Davie County · 3,323 people 53.5 top 46.7% B− Strongest: jobs & income A− , health A− · lowest: cost of living D 83 Mountain View unincorporated, Catawba County · 3,982 people 53.5 top 46.8% B− Strongest: cost of living B+ , hazard risk B+ · lowest: walkability C− 84 Lake Junaluska unincorporated, Haywood County · 3,175 people 53.4 top 46.9% B− Strongest: walkability A , schools A− · lowest: cost of living C 85 Southport Brunswick County · 4,434 people 53.4 top 47.2% B− Strongest: walkability A− , health B+ · lowest: hazard risk D− 86 Boiling Springs Cleveland County · 4,799 people 53.2 top 47.7% B− Strongest: health A− , walkability A− · lowest: cost of living C− 87 Trent Woods Craven County · 4,070 people 53.1 top 48.0% B− Strongest: health A+ , jobs & income A− · lowest: hazard risk D− 88 Welcome unincorporated, Davidson County · 3,521 people 53.1 top 48.0% B− Strongest: cost of living A− , jobs & income B · lowest: walkability C− 89 Nags Head Dare County · 3,117 people 53.0 top 48.2% B− Strongest: health A− , jobs & income A− · lowest: hazard risk D− 90 Lake Norman of Catawba unincorporated, Catawba County · 9,906 people 53.0 top 48.2% B− Strongest: health A− , jobs & income A− · lowest: walkability D 93 Kill Devil Hills Dare County · 7,731 people 52.8 top 48.8% B− Strongest: health A , schools B+ · lowest: hazard risk D− 94 St. James Brunswick County · 7,318 people 52.8 top 48.8% B− Strongest: health A− , walkability B+ · lowest: hazard risk D− 96 Cramerton Gaston County · 5,713 people 52.2 bottom 49.4% B− Strongest: jobs & income A− , health A− · lowest: cost of living C− 97 Kitty Hawk Dare County · 3,670 people 52.2 bottom 49.3% B− Strongest: health A , schools B+ · lowest: hazard risk D− 98 Lake Royale unincorporated, Franklin County · 3,168 people 52.1 bottom 49.1% B− Strongest: jobs & income A− , cost of living A− · lowest: walkability D 99 Pleasant Garden Guilford County · 5,165 people 52.0 bottom 48.8% B− Strongest: jobs & income A− , hazard risk B · lowest: walkability D 100 Four Oaks Johnston County · 2,978 people 51.9 bottom 48.8% B− Strongest: hazard risk A− , cost of living A− · lowest: jobs & income C− 102 Emerald Isle Carteret County · 3,970 people 51.7 bottom 48.1% B− Strongest: health A , walkability A− · lowest: hazard risk D− 105 Locust Stanly County · 6,120 people 51.3 bottom 47.0% B− Strongest: schools B+ , jobs & income B · lowest: walkability C− 106 St. Stephens unincorporated, Catawba County · 9,457 people 51.3 bottom 47.0% B− Strongest: hazard risk B , schools B · lowest: walkability C− 108 Wilson's Mills Johnston County · 2,987 people 51.2 bottom 46.9% B− Strongest: cost of living A− , health B+ · lowest: jobs & income C− 109 King Stokes County · 7,977 people 50.9 bottom 46.1% B− Strongest: hazard risk B+ , jobs & income B+ · lowest: walkability C− 110 Etowah unincorporated, Henderson County · 7,968 people 50.8 bottom 45.8% B− Strongest: hazard risk B+ , health B+ · lowest: walkability D 111 Woodfin Buncombe County · 8,229 people 50.7 bottom 45.5% B− Strongest: health A− , schools B · lowest: cost of living D 112 Trinity Randolph County · 7,274 people 50.6 bottom 45.2% B− Strongest: cost of living B+ , jobs & income B+ · lowest: walkability C− 113 Hampstead unincorporated, Pender County · 9,292 people 50.6 bottom 45.1% B− Strongest: health A , schools B+ · lowest: hazard risk D− 114 Weaverville Buncombe County · 4,790 people 50.4 bottom 44.5% C+ Strongest: health A , jobs & income A− · lowest: cost of living D 115 Valdese Burke County · 4,712 people 50.3 bottom 44.4% C+ Strongest: cost of living A , hazard risk A− · lowest: walkability C− 116 Mocksville Davie County · 6,282 people 50.3 bottom 44.4% C+ Strongest: hazard risk A− , schools B · lowest: jobs & income C 117 Swansboro Onslow County · 4,174 people 50.3 bottom 44.3% C+ Strongest: walkability A− , health B+ · lowest: hazard risk D− 118 Porters Neck unincorporated, New Hanover County · 7,654 people 50.2 bottom 44.2% C+ Strongest: health A+ , schools B · lowest: hazard risk D− 119 Troutman Iredell County · 4,336 people 50.1 bottom 43.8% C+ Strongest: jobs & income A− , hazard risk A− · lowest: safety D 120 Edneyville unincorporated, Henderson County · 2,716 people 50.0 bottom 43.6% C+ Strongest: schools B+ , cost of living B · lowest: walkability D 121 Landis Rowan County · 3,885 people 49.8 bottom 43.0% C+ Strongest: hazard risk B+ , jobs & income B+ · lowest: schools C 124 Hudson Caldwell County · 3,786 people 49.2 bottom 41.4% C+ Strongest: cost of living B+ , hazard risk B · lowest: walkability C− 126 Conover Catawba County · 8,938 people 49.2 bottom 41.4% C+ Strongest: hazard risk A , schools B · lowest: cost of living C+ 127 Pittsboro Chatham County · 5,054 people 49.1 bottom 41.2% C+ Strongest: health A− , schools B+ · lowest: safety C− 129 Silver Lake unincorporated, New Hanover County · 6,563 people 48.9 bottom 40.4% C+ Strongest: schools B , health B · lowest: hazard risk D− 130 Stanley Gaston County · 4,237 people 48.8 bottom 40.2% C+ Strongest: hazard risk A− , jobs & income B · lowest: walkability C− 133 Kings Grant unincorporated, New Hanover County · 9,003 people 48.5 bottom 39.4% C+ Strongest: schools B , health B · lowest: hazard risk D− 134 Granite Quarry Rowan County · 3,129 people 48.2 bottom 38.6% C+ Strongest: cost of living A− , hazard risk B− · lowest: walkability C− 135 Cherryville Gaston County · 6,523 people 48.2 bottom 38.5% C+ Strongest: hazard risk B+ , cost of living B+ · lowest: safety C 136 Brices Creek unincorporated, Craven County · 3,415 people 48.0 bottom 38.0% C+ Strongest: jobs & income A− , health B+ · lowest: hazard risk D− 137 Brevard Transylvania County · 8,098 people 47.9 bottom 37.5% C+ Strongest: walkability A , hazard risk A− · lowest: cost of living C− 138 Dana unincorporated, Henderson County · 4,147 people 47.6 bottom 37.0% C+ Strongest: cost of living A− , hazard risk B+ · lowest: walkability D 139 James City unincorporated, Craven County · 4,789 people 47.4 bottom 36.4% C+ Strongest: health B , cost of living B− · lowest: hazard risk D− 141 Franklinton Franklin County · 2,890 people 47.2 bottom 35.9% C+ Strongest: hazard risk A , cost of living A− · lowest: jobs & income C− 142 Franklin Macon County · 4,403 people 47.2 bottom 35.8% C+ Strongest: cost of living A− , hazard risk B+ · lowest: safety C− 143 Enochville unincorporated, Rowan County · 3,321 people 46.9 bottom 35.1% C+ Strongest: cost of living A , jobs & income B · lowest: health C− 144 Dallas Gaston County · 6,392 people 46.6 bottom 34.3% C Strongest: cost of living B , jobs & income B− · lowest: safety C+ 145 Oak Island Brunswick County · 9,337 people 46.2 bottom 33.5% C Strongest: health A− , walkability B · lowest: hazard risk D− 146 Carolina Shores Brunswick County · 5,540 people 46.2 bottom 33.5% C Strongest: health B+ , jobs & income B− · lowest: hazard risk D− 147 Yadkinville Yadkin County · 3,055 people 46.1 bottom 33.3% C Strongest: hazard risk A , cost of living A− · lowest: jobs & income D 150 Troy Montgomery County · 3,020 people 45.7 bottom 32.2% C Strongest: cost of living A− , hazard risk B− · lowest: walkability C− 151 Carolina Beach New Hanover County · 6,870 people 45.2 bottom 30.6% C Strongest: walkability A , health A− · lowest: hazard risk D− 152 Newport Carteret County · 4,500 people 44.9 bottom 29.9% C Strongest: schools B+ , health B · lowest: hazard risk D− 153 Rural Hall Forsyth County · 3,607 people 44.8 bottom 29.7% C Strongest: hazard risk A− , health B · lowest: walkability D 154 Surf City Pender County · 5,142 people 44.7 bottom 29.4% C Strongest: health A , schools B+ · lowest: hazard risk D− 155 Cajah's Mountain Caldwell County · 2,702 people 44.6 bottom 29.3% C Strongest: cost of living A , hazard risk B+ · lowest: jobs & income D 156 Marshville Union County · 2,739 people 44.6 bottom 29.2% C Strongest: cost of living A , schools A− · lowest: safety D 158 Sawmills Caldwell County · 5,105 people 44.5 bottom 29.0% C Strongest: cost of living A− , hazard risk B+ · lowest: walkability D 159 Hillsborough Orange County · 9,778 people 44.3 bottom 28.7% C Strongest: health A− , jobs & income B+ · lowest: safety D 160 Lowell Gaston County · 3,939 people 44.2 bottom 28.3% C Strongest: hazard risk A− , cost of living B · lowest: health C− 162 Spencer Rowan County · 3,450 people 43.6 bottom 26.9% C Strongest: cost of living A , hazard risk B+ · lowest: health C− 163 Siler City Chatham County · 8,155 people 43.6 bottom 26.9% C Strongest: cost of living A− , walkability A− · lowest: health D− 166 Benson Johnston County · 4,660 people 43.4 bottom 26.4% C Strongest: hazard risk A− , cost of living B+ · lowest: safety D 167 Boiling Spring Lakes Brunswick County · 6,875 people 43.2 bottom 25.9% C Strongest: health B , schools B− · lowest: hazard risk D− 168 Glen Raven unincorporated, Alamance County · 3,506 people 43.1 bottom 25.8% C Strongest: hazard risk B+ , cost of living B+ · lowest: walkability D 169 Belville Brunswick County · 3,199 people 43.1 bottom 25.6% C Strongest: health B+ , jobs & income B · lowest: hazard risk D− 171 China Grove Rowan County · 4,650 people 42.9 bottom 25.2% C Strongest: cost of living B+ , safety B · lowest: jobs & income C 172 Angier Harnett County · 9,410 people 42.9 bottom 25.2% C Strongest: schools B+ , hazard risk B+ · lowest: walkability C− 173 Skippers Corner unincorporated, New Hanover County · 3,792 people 42.7 bottom 24.7% C− Strongest: cost of living B+ , schools B · lowest: hazard risk D− 174 Granite Falls Caldwell County · 4,964 people 42.7 bottom 24.7% C− Strongest: hazard risk B , health B · lowest: jobs & income C− 175 Beaufort Carteret County · 4,912 people 42.6 bottom 24.5% C− Strongest: schools B+ , walkability B · lowest: hazard risk D− 176 Walkertown Forsyth County · 6,120 people 42.5 bottom 24.3% C− Strongest: jobs & income B+ , hazard risk B · lowest: walkability C− 177 Sneads Ferry unincorporated, Onslow County · 2,728 people 42.5 bottom 24.2% C− Strongest: health B , schools B− · lowest: hazard risk D− 178 Raeford Hoke County · 4,703 people 42.4 bottom 24.1% C− Strongest: walkability A− , hazard risk B+ · lowest: health D− 180 Selma Johnston County · 7,406 people 41.7 bottom 22.6% C− Strongest: cost of living A− , hazard risk A− · lowest: safety D 184 Calabash Brunswick County · 3,069 people 41.3 bottom 21.7% C− Strongest: health B+ , schools B− · lowest: hazard risk D− 185 Creedmoor Granville County · 5,046 people 41.3 bottom 21.7% C− Strongest: health B+ , hazard risk B · lowest: walkability D 187 North Wilkesboro Wilkes County · 4,369 people 41.1 bottom 21.3% C− Strongest: walkability A− , schools B+ · lowest: jobs & income D 190 Fairfield Harbour unincorporated, Craven County · 2,948 people 41.0 bottom 21.1% C− Strongest: health A− , schools C+ · lowest: hazard risk D− 193 Bessemer City Gaston County · 5,834 people 40.5 bottom 20.1% C− Strongest: hazard risk A− , cost of living B+ · lowest: health D 196 Burgaw Pender County · 3,903 people 40.0 bottom 19.1% C− Strongest: schools B+ , cost of living B · lowest: hazard risk D− 197 Lillington Harnett County · 5,040 people 40.0 bottom 18.9% C− Strongest: jobs & income B , cost of living B− · lowest: safety C− 198 Eastover Cumberland County · 3,743 people 39.9 bottom 18.8% C− Strongest: hazard risk B− , cost of living C+ · lowest: walkability D 201 Mar-Mac unincorporated, Wayne County · 2,877 people 39.6 bottom 18.3% C− Strongest: cost of living A− , health C+ · lowest: walkability D− 202 Rockfish unincorporated, Hoke County · 3,574 people 39.6 bottom 18.2% C− Strongest: health B+ , hazard risk B− · lowest: walkability D 204 Gamewell Caldwell County · 3,713 people 39.2 bottom 17.4% C− Strongest: cost of living A− , schools C+ · lowest: walkability D 205 Marion McDowell County · 7,440 people 39.0 bottom 17.1% C− Strongest: cost of living B+ , hazard risk B+ · lowest: jobs & income D 208 Northchase unincorporated, New Hanover County · 5,896 people 38.7 bottom 16.3% C− Strongest: schools B , walkability B− · lowest: hazard risk D− 209 Wilkesboro Wilkes County · 3,618 people 38.4 bottom 15.9% C− Strongest: walkability A− , schools B+ · lowest: safety D 210 Dunn Harnett County · 8,814 people 38.3 bottom 15.7% C− Strongest: hazard risk A− , cost of living B+ · lowest: safety D− 211 River Bend Craven County · 2,890 people 38.0 bottom 15.2% C− Strongest: health B− , jobs & income B− · lowest: hazard risk D− 212 Mayodan Rockingham County · 2,503 people 37.7 bottom 14.8% D Strongest: cost of living A− , walkability B− · lowest: safety D− 213 Norwood Stanly County · 2,568 people 37.7 bottom 14.7% D Strongest: hazard risk B , cost of living B− · lowest: jobs & income C− 217 Liberty Randolph County · 2,739 people 37.1 bottom 13.6% D Strongest: hazard risk A , cost of living B · lowest: health D 218 Spindale Rutherford County · 4,180 people 36.9 bottom 13.4% D Strongest: hazard risk A , schools B · lowest: jobs & income D− 223 Randleman Randolph County · 4,767 people 35.9 bottom 11.8% D Strongest: cost of living B , hazard risk B · lowest: health D 225 Roxboro Person County · 8,380 people 35.8 bottom 11.7% D Strongest: hazard risk A− , walkability A− · lowest: jobs & income D− 226 Elkin Surry County · 4,130 people 35.8 bottom 11.6% D Strongest: schools A− , hazard risk B · lowest: safety D 228 Butner Granville County · 8,112 people 35.4 bottom 11.1% D Strongest: hazard risk B , cost of living B− · lowest: walkability C− 229 Elroy unincorporated, Wayne County · 3,251 people 35.3 bottom 10.9% D Strongest: cost of living B+ , jobs & income B− · lowest: walkability D 232 Erwin Harnett County · 4,956 people 34.9 bottom 10.5% D Strongest: cost of living B− , hazard risk B− · lowest: safety C− 234 Shallotte Brunswick County · 5,335 people 34.5 bottom 10.1% D Strongest: schools B− , jobs & income B− · lowest: hazard risk D− 235 Louisburg Franklin County · 3,480 people 34.4 bottom 9.9% D Strongest: walkability A− , hazard risk B+ · lowest: safety D− 236 Nashville Nash County · 5,911 people 34.4 bottom 9.9% D Strongest: hazard risk B+ , health C+ · lowest: jobs & income C− 238 Windsor Bertie County · 3,469 people 34.2 bottom 9.7% D Strongest: walkability A− , cost of living B · lowest: jobs & income D 239 Green Level Alamance County · 3,409 people 34.1 bottom 9.6% D Strongest: hazard risk B+ , cost of living B · lowest: walkability D 241 Sylva Jackson County · 2,691 people 33.5 bottom 8.7% D Strongest: walkability B , cost of living B− · lowest: safety D− 244 Warsaw Duplin County · 2,853 people 32.4 bottom 7.3% D Strongest: cost of living A− , walkability C+ · lowest: health D 247 Hamlet Richmond County · 5,870 people 32.0 bottom 7.0% D Strongest: cost of living B+ , hazard risk B · lowest: jobs & income D 250 Grifton Pitt County · 2,539 people 31.2 bottom 6.0% D Strongest: cost of living B− , walkability C+ · lowest: jobs & income D− 251 Ayden Pitt County · 5,263 people 30.9 bottom 5.8% D Strongest: cost of living C+ , schools C+ · lowest: jobs & income D 252 Edenton Chowan County · 4,546 people 30.9 bottom 5.8% D Strongest: walkability A− , schools C+ · lowest: health D 255 Mount Olive Wayne County · 4,521 people 30.6 bottom 5.4% D Strongest: walkability B , cost of living B− · lowest: health D 256 River Road unincorporated, Beaufort County · 3,366 people 29.9 bottom 4.7% D− Strongest: schools C+ , cost of living C+ · lowest: hazard risk D− 257 Wadesboro Anson County · 5,035 people 29.7 bottom 4.5% D− Strongest: hazard risk A− , cost of living A− · lowest: safety D− 259 Forest City Rutherford County · 7,410 people 28.9 bottom 3.9% D− Strongest: walkability B+ , schools B · lowest: safety D− 260 Oxford Granville County · 8,985 people 28.5 bottom 3.7% D− Strongest: hazard risk B , walkability B · lowest: safety D− 261 La Grange Lenoir County · 2,947 people 28.1 bottom 3.3% D− Strongest: cost of living B+ , schools C · lowest: health D− 262 Tabor City Columbus County · 3,886 people 27.7 bottom 3.1% D− Strongest: walkability B− , cost of living C+ · lowest: jobs & income D− 263 Rutherfordton Rutherford County · 3,723 people 26.9 bottom 2.5% D− Strongest: hazard risk B , schools B · lowest: safety C− 265 Rockingham Richmond County · 8,815 people 26.5 bottom 2.3% D− Strongest: walkability B− , hazard risk C+ · lowest: jobs & income D− 266 Washington Beaufort County · 9,910 people 26.4 bottom 2.3% D− Strongest: walkability B+ , schools C+ · lowest: hazard risk D− 268 Brogden unincorporated, Wayne County · 2,733 people 26.0 bottom 2.0% D− Strongest: cost of living B+ , schools C · lowest: health D− 270 Whiteville Columbus County · 4,765 people 25.3 bottom 1.8% D− Strongest: walkability A− , schools B− · lowest: safety D− 271 Clinton Sampson County · 8,466 people 25.3 bottom 1.7% D− Strongest: walkability B+ , schools C+ · lowest: safety D 272 Farmville Pitt County · 4,577 people 25.1 bottom 1.6% D− Strongest: hazard risk C+ , schools C+ · lowest: health D− 273 Elizabethtown Bladen County · 3,306 people 24.9 bottom 1.6% D− Strongest: cost of living B− , walkability C+ · lowest: safety D− 274 Red Springs Robeson County · 3,216 people 24.8 bottom 1.5% D− Strongest: walkability B+ , cost of living B · lowest: health D− 275 Wallace Duplin County · 3,570 people 23.8 bottom 1.2% D− Strongest: walkability B+ , cost of living C · lowest: jobs & income D− 278 East Rockingham unincorporated, Richmond County · 2,779 people 21.4 bottom 0.6% D− Strongest: hazard risk B− , schools C · lowest: health D− 279 Williamston Martin County · 5,086 people 20.9 bottom 0.6% D− Strongest: walkability A− , cost of living B− · lowest: safety D− 283 Pembroke Robeson County · 2,888 people 15.8 bottom 0.1% D− Strongest: walkability C+ , hazard risk C+ · lowest: safety D− 284 Ahoskie Hertford County · 4,608 people 15.7 bottom 0.1% D− Strongest: walkability B , cost of living C− · lowest: jobs & income D− 286 Plymouth Washington County · 3,170 people 13.6 bottom 0.1% D− Strongest: walkability B− , cost of living C · lowest: jobs & income D− Method
How this list is made Each town’s overall grade blends seven livability grades: cost of living (weight 18), safety (18), schools (16), health (14), jobs & income (12), walkability (8) and hazard risk (4). A town needs 2,500+ residents and three of the first four. Letters are national, so an A here means the same as an A in any state; the list is the same towns in the same order, ranked within North Carolina. Towns without their own FBI figures are graded on the rest and their page says why.
Data years: crime 2023–2025 (FBI), Census ACS 2020–2024, CDC PLACES 2025, state school tests. How grades work
Left off: college campuses Places where more than half the residents are college students (ACS) are graded like every town but kept off this list, since its figures mostly describe student life.
Quick answers
Questions people ask What is the best small town in North Carolina? Among 188 graded towns of 2,500 to 9,999 residents, Wingate (Union County) ranks first, with an A+; cost of living (A−) and schools (A−) are its strongest grades; jobs & income (B−) is its lowest. Avery Creek and Lowesville follow.
How are these towns ranked? By the overall grade, which blends seven livability grades from public data. The letter is national; the rank is within North Carolina. The full method is on How grades work .
Why isn’t my town on this list? The list covers towns of 2,500 to 9,999 residents with an overall grade (188 in North Carolina). 161 smaller places have subject grades only; 1 town of 2,500+ lack enough data for a grade; 2 college campuses (Buies Creek, Cullowhee) are left off. Larger towns are on the best places to live list. Every town is on the North Carolina page .
Go deeper More North Carolina lists Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.
All North Carolina rankings → Other states
Best small towns in other states