Tar Heels Run Game Surged After One Key Change Up Front

Despite flashes of promise, North Carolina's run blocking tells a story of inconsistency and missed opportunities in the trenches.

As North Carolina wraps up its 2025 football campaign, one area that deserves a closer look is the Tar Heels’ run blocking - a unit that had its moments but also left plenty on the table. From game-to-game inconsistencies to individual performances across the offensive line, UNC’s ground game was a mixed bag this fall. Let’s dig into the numbers, the trends, and what they tell us about how the Heels moved - or struggled to move - the ball on the ground.


The Ground Game: Feast, Famine, and Everything in Between

If you’re looking for consistency in UNC’s rushing attack this season, you’re going to have to squint. The Tar Heels ran the ball 364 times across 13 games, totaling 1,263 yards - an average of 3.7 yards per carry. That number alone tells a story of a run game that never fully found its rhythm.

There were bright spots. Against Richmond, UNC ripped off 193 yards on 31 carries, including a 50-yard burst - their longest of the year.

Syracuse was another high point: 210 yards on 43 attempts, averaging nearly five yards per tote. But those games were the exception, not the rule.

Too often, the run game stalled. Against TCU, Stanford, Wake Forest, and UCF, Carolina failed to crack 65 rushing yards.

In those four games combined, they averaged just 2.1 yards per carry. That’s not going to get it done in the ACC - or anywhere, really.


The Offensive Line: Grading the Grinders

UNC’s offensive line ranked 82nd nationally in run blocking, and the individual grades reflect that middle-of-the-pack standing. Chad Lindberg led the group with a solid 70.9 grade on 176 run-blocking snaps. Miles McVay followed with a 68.9 grade on limited reps, while veterans like Jakai Moore (64.2 on 260 snaps) and Austin Blaske (63.5 on 217 snaps) were steady but unspectacular.

Daniel King logged the most run-blocking reps (276) but graded out at just 58.1 - a number that suggests effort wasn’t the issue, but execution might have been. Will O’Steen, another high-snap lineman, came in even lower at 54.4.

When you break it down by blocking scheme, the picture gets a little clearer. In zone runs, Jordan Hall stood out with a 77.6 grade on 41 snaps - a strong showing in a scheme that requires agility and awareness. Chad Lindberg also held up well in zone concepts (72.5), showing he could be a building block moving forward.

In gap schemes, William Boone led the way with a 70.8 grade, followed by Lindberg again at 68.8. Austin Blaske and Miles McVay also showed some promise in gap runs, but the overall takeaway here is that no single lineman consistently dominated across both schemes. The line had pieces, but not a fully cohesive unit.


Beyond the Line: Who Else Was Blocking?

It wasn’t just the big men up front contributing to the run game. Tight end Connor Cox posted a 77.1 grade on 152 run-blocking snaps - the highest of any UNC player, regardless of position. That kind of production from the edge is invaluable, especially in today’s game where tight ends are often asked to do a little bit of everything.

Demon June (64.4), Alex Taylor (61.7), and Jaylen McGill (60.1) also chipped in with respectable blocking grades, but the drop-off after that was steep. Several skill players graded in the 40s and even 30s, which speaks to the challenges UNC faced when trying to get blocks on the perimeter or downfield.


Directional Running: Where UNC Found (and Lost) Yardage

Looking at where the Heels ran the ball offers even more insight. The most productive lanes?

Right guard and between the right guard and center. UNC averaged 7.0 yards per carry running behind the right guard - a surprising stat considering the overall struggles.

That area also produced two touchdowns and six first downs.

The left tackle spot was another bright area, averaging 5.2 yards per carry. But elsewhere, things were tougher.

Runs off left end netted just 3.0 yards per attempt, and right end wasn’t much better at 3.6. Jet sweeps were a mixed bag - one to the left went for 50 yards, while two to the right combined for just seven.

Inside runs were hit-or-miss. Between the guards and center, UNC found some success (5.5 yards per carry between RG and C), but also plenty of stagnation. In total, 35.9% of UNC’s rushing attempts gained two yards or less - and 15.9% went for zero or negative yardage.

That’s a tough pill to swallow for any offense trying to stay on schedule.


Explosiveness: Rare, but Real

UNC’s run game wasn’t explosive often, but when it hit, it hit big. The Heels had 42 runs of 10+ yards and 12 that went for 15 or more. That’s 11.5% of their total carries going for double-digit yardage - not elite, but enough to keep defenses honest when the blocking held up.

Still, the fact that 38 runs gained exactly two yards, 37 gained one, and 21 went nowhere shows just how boom-or-bust the rushing attack was. Add in 35 negative-yardage plays (not including sacks), and it’s clear UNC spent a lot of time behind the sticks.


Final Thoughts

UNC’s rushing attack in 2025 was a story of inconsistency - flashes of potential surrounded by long stretches of inefficiency. The offensive line had its moments, especially in certain schemes and directions, but the lack of cohesion across the board limited what the Tar Heels could do on the ground.

There’s talent here. Lindberg, Cox, and a few others showed they can be difference-makers.

But if UNC wants to take the next step offensively, it starts in the trenches. Run blocking isn’t just about brute strength - it’s about timing, chemistry, and execution.

And that’s where the Heels will need to grow heading into next season.