Guest, Sign inJoin
495402520 e32b834bb7 oCarrboro, #1 on this list · Photo: Elizabeth B. Thomsen Ethomsen · CC BY 2.5
North Carolina rankings · Schools

Towns with the best schools in North Carolina

Carrboro and Chapel Hill share first place on schools among North Carolina’s 290 towns of 2,500+; 32 of the 290 grade A− or better (schools are graded within each state).

The Schools grade: state test results and graduation rates of the districts serving each town, compared with the state’s other districts (U.S. Department of Education). How grades work

#T1

Carrboro

Orange County · 20,962 people
A

Schools grade, graded within the state·Overall B · #57 of 286 in NC

#T1

Chapel Hill

Orange County · 63,565 people
A

Schools grade, graded within the state·Overall B+ · #46 of 286 in NC

All 290 towns

Schools grade, best first (graded within North Carolina). Towns with the same score share a rank (T = tied; 246 towns here); the overall grade and state rank are beside each.

290 towns ranked. Not here? See why a town may be missing.

#TownGradeOverall
T1CarrboroOrange County · 20,962 peopleAgraded within the state·Overall B · #57 of 286
T1Chapel HillOrange County · 63,565 peopleAgraded within the state·Overall B+ · #46 of 286
T3FairviewUnion County · 3,805 peopleA−graded within the state·Overall A− · #18 of 286
T3Indian TrailUnion County · 44,303 peopleA−graded within the state·Overall B+ · #31 of 286
T3Lake ParkUnion County · 3,609 peopleA−graded within the state·Overall B · #50 of 286
T3MarshvilleUnion County · 2,739 peopleA−graded within the state·Overall C · #156 of 286
T3MarvinUnion County · 7,040 peopleA−graded within the state·Overall A− · #25 of 286
T3Mineral SpringsUnion County · 3,514 peopleA−graded within the state·Overall A · #13 of 286
T3MonroeUnion County · 42,644 peopleA−graded within the state·Overall C− · #188 of 286
T3StallingsUnion County · 17,760 peopleA−graded within the state·Overall A− · #14 of 286
T3UnionvilleUnion County · 7,322 peopleA−graded within the state·Overall A− · #22 of 286
T3WaxhawUnion County · 23,140 peopleA−graded within the state·Overall A · #9 of 286
T3WeddingtonUnion County · 14,517 peopleA−graded within the state·Overall A− · #21 of 286
T3Wesley ChapelUnion County · 9,566 peopleA−graded within the state·Overall B+ · #47 of 286
T3WingateUnion County · 4,628 peopleA−graded within the state·Overall A+ · #2 of 286
16Boone College campusWatauga County · 19,929 peopleA−graded within the state·Overall B−
T17CantonHaywood County · 4,418 peopleA−graded within the state·Overall B · #53 of 286
T17Lake Junaluskaunincorporated, Haywood County · 3,175 peopleA−graded within the state·Overall B− · #84 of 286
T17WaynesvilleHaywood County · 11,006 peopleA−graded within the state·Overall C− · #183 of 286
20ElkinSurry County · 4,130 peopleA−graded within the state·Overall D · #226 of 286
T21ApexWake County · 80,419 peopleA−graded within the state·Overall A · #5 of 286
T21CaryWake County · 183,582 peopleA−graded within the state·Overall A · #11 of 286
T21Fuquay-VarinaWake County · 48,536 peopleA−graded within the state·Overall A · #6 of 286
T21GarnerWake County · 41,562 peopleA−graded within the state·Overall B− · #103 of 286
T21Holly SpringsWake County · 50,288 peopleA−graded within the state·Overall A− · #17 of 286
T21KnightdaleWake County · 23,144 peopleA−graded within the state·Overall B · #66 of 286
T21MorrisvilleWake County · 32,466 peopleA−graded within the state·Overall B+ · #34 of 286
T21RaleighWake County · 506,306 peopleA−graded within the state·Overall B− · #80 of 286
T21RolesvilleWake County · 12,839 peopleA−graded within the state·Overall A+ · #1 of 286
T21Wake ForestWake County · 58,147 peopleA−graded within the state·Overall A− · #24 of 286
T21WendellWake County · 19,687 peopleA−graded within the state·Overall A− · #19 of 286
T21ZebulonWake County · 11,933 peopleA−graded within the state·Overall C+ · #122 of 286
T33Kill Devil HillsDare County · 7,731 peopleB+graded within the state·Overall B− · #93 of 286
T33Kitty HawkDare County · 3,670 peopleB+graded within the state·Overall B− · #97 of 286
T33Nags HeadDare County · 3,117 peopleB+graded within the state·Overall B− · #89 of 286
T33Southern ShoresDare County · 3,110 peopleB+graded within the state·Overall B+ · #30 of 286
T37ConcordCabarrus County · 114,598 peopleB+graded within the state·Overall B · #59 of 286
T37HarrisburgCabarrus County · 20,742 peopleB+graded within the state·Overall A · #12 of 286
T37MidlandCabarrus County · 5,151 peopleB+graded within the state·Overall A− · #26 of 286
40AngierHarnett County · 9,410 peopleB+graded within the state·Overall C · #172 of 286
T41BeaufortCarteret County · 4,912 peopleB+graded within the state·Overall C− · #175 of 286
T41Emerald IsleCarteret County · 3,970 peopleB+graded within the state·Overall B− · #102 of 286
T41Morehead CityCarteret County · 10,434 peopleB+graded within the state·Overall C− · #194 of 286
T41NewportCarteret County · 4,500 peopleB+graded within the state·Overall C · #152 of 286
T45AberdeenMoore County · 10,066 peopleB+graded within the state·Overall B− · #92 of 286
T45CarthageMoore County · 3,070 peopleB+graded within the state·Overall A · #8 of 286
T45PinehurstMoore County · 18,670 peopleB+graded within the state·Overall A− · #23 of 286
T45Seven Lakesunincorporated, Moore County · 4,535 peopleB+graded within the state·Overall A · #7 of 286
T45Southern PinesMoore County · 17,357 peopleB+graded within the state·Overall C+ · #128 of 286
T45Whispering PinesMoore County · 5,505 peopleB+graded within the state·Overall A− · #15 of 286
T51Briar Chapelunincorporated, Chatham County · 6,049 peopleB+graded within the state·Overall B+ · #35 of 286
T51PittsboroChatham County · 5,054 peopleB+graded within the state·Overall C+ · #127 of 286
T51Siler CityChatham County · 8,155 peopleB+graded within the state·Overall C · #163 of 286
T54BurgawPender County · 3,903 peopleB+graded within the state·Overall C− · #196 of 286
T54Hampsteadunincorporated, Pender County · 9,292 peopleB+graded within the state·Overall B− · #113 of 286
T54Surf CityPender County · 5,142 peopleB+graded within the state·Overall C · #154 of 286
T57North WilkesboroWilkes County · 4,369 peopleB+graded within the state·Overall C− · #187 of 286
T57WilkesboroWilkes County · 3,618 peopleB+graded within the state·Overall C− · #209 of 286
59MooresvilleIredell County · 55,842 peopleB+graded within the state·Overall B− · #101 of 286
60LocustStanly County · 6,120 peopleB+graded within the state·Overall B− · #105 of 286
61Mount AirySurry County · 10,682 peopleB+graded within the state·Overall D · #214 of 286
T62Danaunincorporated, Henderson County · 4,147 peopleB+graded within the state·Overall C+ · #138 of 286
T62East Flat Rockunincorporated, Henderson County · 6,323 peopleB+graded within the state·Overall B · #55 of 286
T62Edneyvilleunincorporated, Henderson County · 2,716 peopleB+graded within the state·Overall C+ · #120 of 286
T62Etowahunincorporated, Henderson County · 7,968 peopleB+graded within the state·Overall B− · #110 of 286
T62Flat RockHenderson County · 3,643 peopleB+graded within the state·Overall B · #69 of 286
T62FletcherHenderson County · 8,373 peopleB+graded within the state·Overall B+ · #48 of 286
T62HendersonvilleHenderson County · 15,867 peopleB+graded within the state·Overall C− · #182 of 286
T62Mills RiverHenderson County · 7,504 peopleB+graded within the state·Overall B+ · #40 of 286
T62Mountain Homeunincorporated, Henderson County · 3,437 peopleB+graded within the state·Overall B · #76 of 286
T62Valley Hillunincorporated, Henderson County · 2,675 peopleB+graded within the state·Overall B · #61 of 286
T72LincolntonLincoln County · 12,465 peopleB+graded within the state·Overall C · #157 of 286
T72Lowesvilleunincorporated, Lincoln County · 3,874 peopleB+graded within the state·Overall A · #4 of 286
T72Westportunincorporated, Lincoln County · 5,915 peopleB+graded within the state·Overall B · #52 of 286
75KannapolisCabarrus County · 61,708 peopleB+graded within the state·Overall C+ · #125 of 286
T76Archer LodgeJohnston County · 5,649 peopleB+graded within the state·Overall A− · #28 of 286
T76BensonJohnston County · 4,660 peopleB+graded within the state·Overall C · #166 of 286
T76ClaytonJohnston County · 32,633 peopleB+graded within the state·Overall B · #72 of 286
T76Four OaksJohnston County · 2,978 peopleB+graded within the state·Overall B− · #100 of 286
T76SelmaJohnston County · 7,406 peopleB+graded within the state·Overall C− · #180 of 286
T76SmithfieldJohnston County · 13,114 peopleB+graded within the state·Overall C− · #186 of 286
T76Wilson's MillsJohnston County · 2,987 peopleB+graded within the state·Overall B− · #108 of 286
T83Bayshoreunincorporated, New Hanover County · 2,949 peopleBgraded within the state·Overall B · #62 of 286
T83Carolina BeachNew Hanover County · 6,870 peopleBgraded within the state·Overall C · #151 of 286
T83Kings Grantunincorporated, New Hanover County · 9,003 peopleBgraded within the state·Overall C+ · #133 of 286
T83Murraysvilleunincorporated, New Hanover County · 16,339 peopleBgraded within the state·Overall B− · #77 of 286
T83Myrtle Groveunincorporated, New Hanover County · 12,637 peopleBgraded within the state·Overall B+ · #44 of 286
T83Northchaseunincorporated, New Hanover County · 5,896 peopleBgraded within the state·Overall C− · #208 of 286
T83Ogdenunincorporated, New Hanover County · 8,249 peopleBgraded within the state·Overall B · #64 of 286
T83Porters Neckunincorporated, New Hanover County · 7,654 peopleBgraded within the state·Overall C+ · #118 of 286
T83Silver Lakeunincorporated, New Hanover County · 6,563 peopleBgraded within the state·Overall C+ · #129 of 286
T83Skippers Cornerunincorporated, New Hanover County · 3,792 peopleBgraded within the state·Overall C− · #173 of 286
T83WilmingtonNew Hanover County · 126,809 peopleBgraded within the state·Overall C− · #192 of 286
T83Wrightsborounincorporated, New Hanover County · 6,287 peopleBgraded within the state·Overall B · #68 of 286
T95Lake Norman of Iredellunincorporated, Iredell County · 12,494 peopleBgraded within the state·Overall B+ · #33 of 286
T95StatesvilleIredell County · 32,181 peopleBgraded within the state·Overall C− · #189 of 286
T95TroutmanIredell County · 4,336 peopleBgraded within the state·Overall C+ · #119 of 286
T98Bermuda RunDavie County · 3,323 peopleBgraded within the state·Overall B− · #82 of 286
T98MocksvilleDavie County · 6,282 peopleBgraded within the state·Overall C+ · #116 of 286
100AshevilleBuncombe County · 93,523 peopleBgraded within the state·Overall C · #164 of 286
T101Avery Creekunincorporated, Buncombe County · 2,887 peopleBgraded within the state·Overall A · #3 of 286
T101Black MountainBuncombe County · 8,491 peopleBgraded within the state·Overall B · #51 of 286
T101Emmaunincorporated, Buncombe County · 2,657 peopleBgraded within the state·Overall A− · #16 of 286
T101Royal Pinesunincorporated, Buncombe County · 4,325 peopleBgraded within the state·Overall B+ · #29 of 286
T101Swannanoaunincorporated, Buncombe County · 6,901 peopleBgraded within the state·Overall B+ · #36 of 286
T101WeavervilleBuncombe County · 4,790 peopleBgraded within the state·Overall C+ · #114 of 286
T101WoodfinBuncombe County · 8,229 peopleBgraded within the state·Overall B− · #111 of 286
108FranklinMacon County · 4,403 peopleBgraded within the state·Overall C+ · #142 of 286
T109ConoverCatawba County · 8,938 peopleBgraded within the state·Overall C+ · #126 of 286
T109NewtonCatawba County · 13,822 peopleBgraded within the state·Overall C · #161 of 286
T111Lake Norman of Catawbaunincorporated, Catawba County · 9,906 peopleBgraded within the state·Overall B− · #90 of 286
T111MaidenCatawba County · 3,922 peopleBgraded within the state·Overall B+ · #42 of 286
T111Mountain Viewunincorporated, Catawba County · 3,982 peopleBgraded within the state·Overall B− · #83 of 286
T111St. Stephensunincorporated, Catawba County · 9,457 peopleBgraded within the state·Overall B− · #106 of 286
115HickoryCatawba County · 45,975 peopleBgraded within the state·Overall C− · #200 of 286
T116Forest CityRutherford County · 7,410 peopleBgraded within the state·Overall D− · #259 of 286
T116RutherfordtonRutherford County · 3,723 peopleBgraded within the state·Overall D− · #263 of 286
T116SpindaleRutherford County · 4,180 peopleBgraded within the state·Overall D · #218 of 286
119KingStokes County · 7,977 peopleBgraded within the state·Overall B− · #109 of 286
120Bethlehemunincorporated, Alexander County · 4,101 peopleBgraded within the state·Overall B · #65 of 286
121Moyockunincorporated, Currituck County · 5,684 peopleBgraded within the state·Overall B · #75 of 286
T122MorgantonBurke County · 17,849 peopleBgraded within the state·Overall D · #216 of 286
T122ValdeseBurke County · 4,712 peopleBgraded within the state·Overall C+ · #115 of 286
124Long ViewCatawba County · 5,387 peopleB−graded within the state·Overall B− · #81 of 286
T125Half Moonunincorporated, Onslow County · 7,378 peopleB−graded within the state·Overall B · #73 of 286
T125Holly RidgeOnslow County · 5,908 peopleB−graded within the state·Overall B+ · #39 of 286
T125JacksonvilleOnslow County · 72,732 peopleB−graded within the state·Overall C · #170 of 286
T125Piney Greenunincorporated, Onslow County · 14,078 peopleB−graded within the state·Overall C− · #181 of 286
T125Sneads Ferryunincorporated, Onslow County · 2,728 peopleB−graded within the state·Overall C− · #177 of 286
T125SwansboroOnslow County · 4,174 peopleB−graded within the state·Overall C+ · #117 of 286
T131MidwayDavidson County · 5,104 peopleB−graded within the state·Overall A− · #20 of 286
T131Tyrounincorporated, Davidson County · 3,833 peopleB−graded within the state·Overall B · #70 of 286
T131WallburgDavidson County · 3,255 peopleB−graded within the state·Overall A− · #27 of 286
T131Welcomeunincorporated, Davidson County · 3,521 peopleB−graded within the state·Overall B− · #88 of 286
T135Forest Oaksunincorporated, Guilford County · 4,293 peopleB−graded within the state·Overall B+ · #41 of 286
T135GreensboroGuilford County · 308,667 peopleB−graded within the state·Overall D · #215 of 286
T135High PointGuilford County · 120,571 peopleB−graded within the state·Overall C− · #206 of 286
T135JamestownGuilford County · 3,803 peopleB−graded within the state·Overall B+ · #37 of 286
T135Oak RidgeGuilford County · 7,896 peopleB−graded within the state·Overall B+ · #38 of 286
T135Pleasant GardenGuilford County · 5,165 peopleB−graded within the state·Overall B− · #99 of 286
T135StokesdaleGuilford County · 6,133 peopleB−graded within the state·Overall B+ · #43 of 286
T135SummerfieldGuilford County · 11,327 peopleB−graded within the state·Overall B · #54 of 286
143YadkinvilleYadkin County · 3,055 peopleB−graded within the state·Overall C · #147 of 286
T144BelvilleBrunswick County · 3,199 peopleB−graded within the state·Overall C · #169 of 286
T144Boiling Spring LakesBrunswick County · 6,875 peopleB−graded within the state·Overall C · #167 of 286
T144CalabashBrunswick County · 3,069 peopleB−graded within the state·Overall C− · #184 of 286
T144Carolina ShoresBrunswick County · 5,540 peopleB−graded within the state·Overall C · #146 of 286
T144LelandBrunswick County · 35,731 peopleB−graded within the state·Overall B− · #104 of 286
T144Oak IslandBrunswick County · 9,337 peopleB−graded within the state·Overall C · #145 of 286
T144ShallotteBrunswick County · 5,335 peopleB−graded within the state·Overall D · #234 of 286
T144SouthportBrunswick County · 4,434 peopleB−graded within the state·Overall B− · #85 of 286
T144St. JamesBrunswick County · 7,318 peopleB−graded within the state·Overall B− · #94 of 286
T144Sunset BeachBrunswick County · 4,642 peopleB−graded within the state·Overall B · #56 of 286
T154Boiling SpringsCleveland County · 4,799 peopleB−graded within the state·Overall B− · #86 of 286
T154Kings MountainCleveland County · 12,117 peopleB−graded within the state·Overall D · #253 of 286
T154ShelbyCleveland County · 23,309 peopleB−graded within the state·Overall D · #254 of 286
157BrevardTransylvania County · 8,098 peopleB−graded within the state·Overall C+ · #137 of 286
158LexingtonDavidson County · 20,238 peopleB−graded within the state·Overall D · #221 of 286
159HillsboroughOrange County · 9,778 peopleB−graded within the state·Overall C · #159 of 286
160GibsonvilleGuilford County · 9,876 peopleB−graded within the state·Overall B · #63 of 286
161WhitevilleColumbus County · 4,765 peopleB−graded within the state·Overall D− · #270 of 286
162ThomasvilleDavidson County · 27,733 peopleB−graded within the state·Overall C+ · #131 of 286
163MarionMcDowell County · 7,440 peopleB−graded within the state·Overall C− · #205 of 286
164TroyMontgomery County · 3,020 peopleB−graded within the state·Overall C · #150 of 286
T165ArchdaleRandolph County · 12,254 peopleB−graded within the state·Overall B− · #91 of 286
T165LibertyRandolph County · 2,739 peopleB−graded within the state·Overall D · #217 of 286
T165RandlemanRandolph County · 4,767 peopleB−graded within the state·Overall D · #223 of 286
T165TrinityRandolph County · 7,274 peopleB−graded within the state·Overall B− · #112 of 286
T169CharlotteMecklenburg County · 964,784 peopleB−graded within the state·Overall C · #165 of 286
T169CorneliusMecklenburg County · 35,094 peopleB−graded within the state·Overall B+ · #32 of 286
T169DavidsonMecklenburg County · 16,662 peopleB−graded within the state·Overall A · #10 of 286
T169HuntersvilleMecklenburg County · 68,535 peopleB−graded within the state·Overall B+ · #45 of 286
T169MatthewsMecklenburg County · 32,769 peopleB−graded within the state·Overall B− · #107 of 286
T169Mint HillMecklenburg County · 29,476 peopleB−graded within the state·Overall B · #58 of 286
T169PinevilleMecklenburg County · 11,851 peopleB−graded within the state·Overall C− · #199 of 286
T176Cullowhee College campusunincorporated, Jackson County · 7,973 peopleB−graded within the state·Overall C+
T176SylvaJackson County · 2,691 peopleB−graded within the state·Overall D · #241 of 286
T178BelmontGaston County · 16,415 peopleB−graded within the state·Overall C+ · #140 of 286
T178Bessemer CityGaston County · 5,834 peopleB−graded within the state·Overall C− · #193 of 286
T178CherryvilleGaston County · 6,523 peopleB−graded within the state·Overall C+ · #135 of 286
T178CramertonGaston County · 5,713 peopleB−graded within the state·Overall B− · #96 of 286
T178DallasGaston County · 6,392 peopleB−graded within the state·Overall C · #144 of 286
T178GastoniaGaston County · 87,067 peopleB−graded within the state·Overall D · #237 of 286
T178LowellGaston County · 3,939 peopleB−graded within the state·Overall C · #160 of 286
T178Mount HollyGaston County · 19,033 peopleB−graded within the state·Overall C · #148 of 286
T178RanloGaston County · 4,848 peopleB−graded within the state·Overall B− · #79 of 286
T178StanleyGaston County · 4,237 peopleB−graded within the state·Overall C+ · #130 of 286
T188AlbemarleStanly County · 17,769 peopleB−graded within the state·Overall D · #231 of 286
T188NorwoodStanly County · 2,568 peopleB−graded within the state·Overall D · #213 of 286
T190Cajah's MountainCaldwell County · 2,702 peopleC+graded within the state·Overall C · #155 of 286
T190GamewellCaldwell County · 3,713 peopleC+graded within the state·Overall C− · #204 of 286
T190Granite FallsCaldwell County · 4,964 peopleC+graded within the state·Overall C− · #174 of 286
T190HudsonCaldwell County · 3,786 peopleC+graded within the state·Overall C+ · #124 of 286
T190LenoirCaldwell County · 18,372 peopleC+graded within the state·Overall C− · #203 of 286
T190SawmillsCaldwell County · 5,105 peopleC+graded within the state·Overall C · #158 of 286
T196EastoverCumberland County · 3,743 peopleC+graded within the state·Overall C− · #198 of 286
T196FayettevilleCumberland County · 209,120 peopleC+graded within the state·Overall D · #245 of 286
T196Hope MillsCumberland County · 18,324 peopleC+graded within the state·Overall D · #227 of 286
T196Spring LakeCumberland County · 11,252 peopleC+graded within the state·Overall D · #224 of 286
T200Brices Creekunincorporated, Craven County · 3,415 peopleC+graded within the state·Overall C+ · #136 of 286
T200Fairfield Harbourunincorporated, Craven County · 2,948 peopleC+graded within the state·Overall C− · #190 of 286
T200HavelockCraven County · 17,430 peopleC+graded within the state·Overall C− · #191 of 286
T200James Cityunincorporated, Craven County · 4,789 peopleC+graded within the state·Overall C+ · #139 of 286
T200Neuse Forestunincorporated, Craven County · 2,671 peopleC+graded within the state·Overall B · #74 of 286
T200New BernCraven County · 34,724 peopleC+graded within the state·Overall D · #230 of 286
T200River BendCraven County · 2,890 peopleC+graded within the state·Overall C− · #211 of 286
T200Trent WoodsCraven County · 4,070 peopleC+graded within the state·Overall B− · #87 of 286
208WilsonWilson County · 49,572 peopleC+graded within the state·Overall D− · #264 of 286
T209AydenPitt County · 5,263 peopleC+graded within the state·Overall D · #251 of 286
T209FarmvillePitt County · 4,577 peopleC+graded within the state·Overall D− · #272 of 286
T209GreenvillePitt County · 96,443 peopleC+graded within the state·Overall D · #242 of 286
T209GriftonPitt County · 2,539 peopleC+graded within the state·Overall D · #250 of 286
T209WintervillePitt County · 10,973 peopleC+graded within the state·Overall C+ · #132 of 286
T214EdenRockingham County · 15,500 peopleC+graded within the state·Overall D · #240 of 286
T214MayodanRockingham County · 2,503 peopleC+graded within the state·Overall D · #212 of 286
T214ReidsvilleRockingham County · 14,692 peopleC+graded within the state·Overall D · #219 of 286
T214WentworthRockingham County · 2,774 peopleC+graded within the state·Overall B− · #78 of 286
218AsheboroRandolph County · 27,990 peopleC+graded within the state·Overall D · #233 of 286
T219River Roadunincorporated, Beaufort County · 3,366 peopleC+graded within the state·Overall D− · #256 of 286
T219WashingtonBeaufort County · 9,910 peopleC+graded within the state·Overall D− · #266 of 286
221EdentonChowan County · 4,546 peopleC+graded within the state·Overall D · #252 of 286
222SanfordLee County · 34,138 peopleC+graded within the state·Overall D · #246 of 286
223RoxboroPerson County · 8,380 peopleC+graded within the state·Overall D · #225 of 286
T224ClemmonsForsyth County · 22,808 peopleC+graded within the state·Overall C+ · #123 of 286
T224KernersvilleForsyth County · 29,128 peopleC+graded within the state·Overall C− · #207 of 286
T224LewisvilleForsyth County · 14,421 peopleC+graded within the state·Overall B− · #95 of 286
T224Rural HallForsyth County · 3,607 peopleC+graded within the state·Overall C · #153 of 286
T224TobaccovilleForsyth County · 2,770 peopleC+graded within the state·Overall B · #71 of 286
T224WalkertownForsyth County · 6,120 peopleC+graded within the state·Overall C− · #176 of 286
T224Winston-SalemForsyth County · 257,271 peopleC+graded within the state·Overall D · #243 of 286
T231RaefordHoke County · 4,703 peopleC+graded within the state·Overall C− · #178 of 286
T231Rockfishunincorporated, Hoke County · 3,574 peopleC+graded within the state·Overall C− · #202 of 286
T233FranklintonFranklin County · 2,890 peopleC+graded within the state·Overall C+ · #141 of 286
T233Lake Royaleunincorporated, Franklin County · 3,168 peopleC+graded within the state·Overall B− · #98 of 286
T233LouisburgFranklin County · 3,480 peopleC+graded within the state·Overall D · #235 of 286
236MebaneAlamance County · 21,952 peopleC+graded within the state·Overall C− · #195 of 286
237Tabor CityColumbus County · 3,886 peopleC+graded within the state·Overall D− · #262 of 286
238ClintonSampson County · 8,466 peopleC+graded within the state·Overall D− · #271 of 286
239DurhamDurham County · 305,561 peopleC+graded within the state·Overall C− · #179 of 286
T240Anderson Creekunincorporated, Harnett County · 13,927 peopleC+graded within the state·Overall D · #220 of 286
T240Barbecue5,910 peopleC+graded within the state·No overall grade
T240Buies Creek College campusunincorporated, Harnett County · 3,746 peopleC+graded within the state·Overall C
T240DunnHarnett County · 8,814 peopleC+graded within the state·Overall C− · #210 of 286
T240ErwinHarnett County · 4,956 peopleC+graded within the state·Overall D · #232 of 286
T240LillingtonHarnett County · 5,040 peopleC+graded within the state·Overall C− · #197 of 286
T240Spout Springsunincorporated, Harnett County · 11,242 peopleC+graded within the state·Overall C · #149 of 286
T247BurlingtonAlamance County · 61,496 peopleCgraded within the state·Overall D · #249 of 286
T247ElonAlamance County · 11,366 peopleCgraded within the state·Overall B · #49 of 286
T247Glen Ravenunincorporated, Alamance County · 3,506 peopleCgraded within the state·Overall C · #168 of 286
T247GrahamAlamance County · 20,131 peopleCgraded within the state·Overall D · #222 of 286
T247Green LevelAlamance County · 3,409 peopleCgraded within the state·Overall D · #239 of 286
T247SwepsonvilleAlamance County · 2,632 peopleCgraded within the state·Overall B · #60 of 286
253ElizabethtownBladen County · 3,306 peopleCgraded within the state·Overall D− · #273 of 286
T254KinstonLenoir County · 19,705 peopleCgraded within the state·Overall D− · #281 of 286
T254La GrangeLenoir County · 2,947 peopleCgraded within the state·Overall D− · #261 of 286
T256East Rockinghamunincorporated, Richmond County · 2,779 peopleCgraded within the state·Overall D− · #278 of 286
T256HamletRichmond County · 5,870 peopleCgraded within the state·Overall D · #247 of 286
T256RockinghamRichmond County · 8,815 peopleCgraded within the state·Overall D− · #265 of 286
259WindsorBertie County · 3,469 peopleCgraded within the state·Overall D · #238 of 286
T260China GroveRowan County · 4,650 peopleCgraded within the state·Overall C · #171 of 286
T260Enochvilleunincorporated, Rowan County · 3,321 peopleCgraded within the state·Overall C+ · #143 of 286
T260Granite QuarryRowan County · 3,129 peopleCgraded within the state·Overall C+ · #134 of 286
T260LandisRowan County · 3,885 peopleCgraded within the state·Overall C+ · #121 of 286
T260SalisburyRowan County · 36,879 peopleCgraded within the state·Overall D · #248 of 286
T260SpencerRowan County · 3,450 peopleCgraded within the state·Overall C · #162 of 286
266Roanoke RapidsHalifax County · 14,386 peopleCgraded within the state·Overall D− · #276 of 286
T267ButnerGranville County · 8,112 peopleCgraded within the state·Overall D · #228 of 286
T267CreedmoorGranville County · 5,046 peopleCgraded within the state·Overall C− · #185 of 286
T267OxfordGranville County · 8,985 peopleCgraded within the state·Overall D− · #260 of 286
270LaurinburgScotland County · 14,582 peopleCgraded within the state·Overall D− · #282 of 286
T271Brogdenunincorporated, Wayne County · 2,733 peopleCgraded within the state·Overall D− · #268 of 286
T271Elroyunincorporated, Wayne County · 3,251 peopleCgraded within the state·Overall D · #229 of 286
T271GoldsboroWayne County · 35,012 peopleCgraded within the state·Overall D− · #277 of 286
T271Mar-Macunincorporated, Wayne County · 2,877 peopleCgraded within the state·Overall C− · #201 of 286
T271Mount OliveWayne County · 4,521 peopleCgraded within the state·Overall D · #255 of 286
T276WallaceDuplin County · 3,570 peopleC−graded within the state·Overall D− · #275 of 286
T276WarsawDuplin County · 2,853 peopleC−graded within the state·Overall D · #244 of 286
T278NashvilleNash County · 5,911 peopleC−graded within the state·Overall D · #236 of 286
T278Red OakNash County · 3,523 peopleC−graded within the state·Overall B · #67 of 286
280Rocky MountNash County · 55,120 peopleC−graded within the state·Overall D− · #267 of 286
281WadesboroAnson County · 5,035 peopleC−graded within the state·Overall D− · #257 of 286
282Elizabeth CityPasquotank County · 19,622 peopleC−graded within the state·Overall D− · #258 of 286
T283LumbertonRobeson County · 18,955 peopleC−graded within the state·Overall D− · #285 of 286
T283PembrokeRobeson County · 2,888 peopleC−graded within the state·Overall D− · #283 of 286
T283Red SpringsRobeson County · 3,216 peopleC−graded within the state·Overall D− · #274 of 286
286AhoskieHertford County · 4,608 peopleC−graded within the state·Overall D− · #284 of 286
287TarboroEdgecombe County · 10,979 peopleC−graded within the state·Overall D− · #269 of 286
288PlymouthWashington County · 3,170 peopleDgraded within the state·Overall D− · #286 of 286
289HendersonVance County · 15,013 peopleDgraded within the state·Overall D− · #280 of 286
290WilliamstonMartin County · 5,086 peopleDgraded within the state·Overall D− · #279 of 286
Quick answers

Questions people ask

Which North Carolina town has the best schools?

Carrboro (Orange County) and Chapel Hill (Orange County) share first place on schools among 290 towns. Schools are compared within North Carolina, so the letter is a state grade.

How are these towns ranked?

The Schools grade: state test results and graduation rates of the districts serving each town, compared with the state’s other districts (U.S. Department of Education). Towns are sorted on the grade’s score; the letter and rank are the same as on each town’s page. How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents with a schools grade (290 in North Carolina). Smaller towns have the grade on their page but no rank. 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

Towns with the best schools in other states