Carver Willis Was The Best Run Blocker And Nearly The Worst Pass Protector
One rookie lineman graded at both ends of the same night, the man listed ahead of him graded last of every 49er on offense, and by Sunday the club had two guard jobs open instead of one. What the preseason opener actually decided, player by player.

A preseason score is not information. The men who played in it are, and Thursday's 19-13 loss to Tennessee produced a set of grades that point in directions worth following for the sixteen days until this roster is cut to 53.
Start with the caveat, because it governs everything below. A preseason grade sits on a sample measured in dozens of snaps, against another team's backups, in a game neither side gameplanned. Every ranking here is what one vendor's model made of one short night. None of it is a verdict. All of it is a place to look.
The rookie who graded at both ends of the same game#
PFF's grades put Carver Willis, No. 74, first among all 23 49ers charted as run blockers, and near the bottom of the fifteen charted in pass protection. Same player, same night, opposite ends of the same table.
That is a coherent picture rather than a contradiction. The fourth-round rookie out of Washington came off the concussion protocol on August 10, had been taking second-team left guard reps, and played tackle on Thursday. A lineman who can move people but cannot yet handle a rusher one on one is a specific kind of roster asset, and a specific kind of risk: useful on early downs, exposed on third.
It also frames what happens next. Willis has two preseason games to close the pass-protection half, and the club has shown it will move him around while he does it.
Robert Jones graded last of every 49er charted on offense#
No qualifier available. The man the club's first unofficial depth chart listed as the starting left guard finished last among every 49er charted on offense, and last on the line in pass blocking. He also drew the offensive holding penalty that erased a 21-yard completion in the first quarter.
One correction, because the framing has been circulating wrong. Jones and Connor Colby did not compete head to head on Thursday. The official gamebook has Jones starting at left guard and Colby starting at right guard, in the same lineup, for the same night's work. A quality comparison between them is fair. A story where one beat the other for a job that night is not, because that job was not on the field.
Connor Colby graded fifth, and then the position changed underneath him#
Colby, No. 75, was the best of the five men who started on the line by PFF's grades, fifth among all 49ers charted on offense, with no penalty. The second-year guard out of Iowa opened camp taking the first-team left guard reps, moved right when Jones was listed there, and by Saturday was rotating back through the left side.
The job did not close. It reopened. Kyle Shanahan, on the record Saturday: "There definitely is a battle there. It's open for anybody." Two independent reports had Colby and Willis rotating with the first team.
And on Sunday it doubled. Dominick Puni entered the concussion protocol, which takes a projected starting guard off the field with sixteen days to go. The 49ers no longer have one guard question. They have two, at the same time, with the same small group of men available to answer them.
What a grade can see, and what it cannot#
This is the part worth being careful about, because the numbers above are doing real work in this piece and they have a known blind spot.
A grading model watching from outside the building does not know a team's protection rules. When a blitzer comes free, somebody has to be charged for it, and the model assigns by what it can observe rather than by which lineman actually owned that gap on that call. John Chapman, a former coach who publishes film reviews at 49ers Rush, has made this argument specifically about this game, and it is the right argument to make: on at least one snap the pressure that reached the quarterback was, in his reading of San Francisco's rules, a different lineman's responsibility than the one the ledger reflects.
That is a limitation, not a scandal. It is also why blocking grades are the least reliable category in any grading system, and why a rank like Hayden Rucci's, No. 83, in the bottom half of the 49ers charted as run blockers, is a flag to go watch rather than a fact about the player. Assignment is invisible from the outside. Outcome is not.
The pass rusher whose problem is not effort#
PFF's grades put Romello Height, No. 94, among the three lowest-rated 49ers defenders in the game.
The context makes it matter more, not less. Height has been taking first-string edge reps opposite Keion White with Nick Bosa held out and Mykel Williams on the physically unable to perform list. He has had the best opportunity of any young 49ers pass rusher this camp and has not yet converted it into game production. The gap between what a player does in a one-on-one drill and what he does with a pocket to preserve and a second defender in the picture is the whole distance between a camp story and a roster spot, and Thursday said he has not closed it.
Two games left to change that number, and the reps will be there while Bosa is not.
The defensive line grades went to the players nobody wrote about#
Bryson Eason, No. 67, an undrafted rookie, posted the best defensive grade on the roster that night. Gracen Halton, No. 93, the fourth-round rookie out of Oklahoma, was among the better ones: four tackles, a tackle for loss, and a sack of Cam Ward wiped out by a penalty on a teammate, which means his best play of the night exists in no statistic at all.
That last detail is the argument for watching football rather than reading about it. The box score has no column for a sack that a flag erased.
Meanwhile the corner room thinned in a week. Jack Jones hurt a hand, Nate Hobbs pulled a groin at the joint practice, and the club held tryouts for defensive backs. Darrell Luter Jr., No. 28, and Ephesians Prysock, No. 35, went from depth to one injury away from a Sunday role, and Prysock played more defensive snaps than any other 49er in the game, per the counts Kyle Posey published at Niners Nation.
A ranking is only as good as the snaps under it#
Jordan Watkins, No. 17, grades poorly as a run blocker, on a real sample. He was on the field more than any other 49ers receiver and blocked on a full night's worth of running plays, so the rank means something.
Wesley Grimes, No. 18, played 13 snaps. His blocking rank rests on a handful of plays, and on that sliver he grades lower than Watkins does.
Neither of those facts is worth much on its own, and putting them side by side is worth less. This is the most common way a preseason argument goes wrong: a number built on a full game gets compared to a number built on three plays, and the comparison looks rigorous because both sides have a figure attached. Print the denominator or drop the point.
Kurtis Rourke, and the thing that is not his ribs#
Rourke, No. 14, completed 12 of 14 for 101 yards before he left, and the club's account is that stadium X-rays showed nothing broken. He was not diagnosed with broken ribs, and no imaging beyond that has been published. He was released from hospital Thursday night.
Adrian Martinez, No. 4, threw the rest: 16 of 30 for 159 yards. A 53 percent completion rate on 30 attempts and an 86 percent rate on 14 are not comparable samples, and the honest version is that the club got 18 minutes of the quarterback it wanted to see and then two and a half quarters of something else.
What Thursday decided: nothing. What it produced is a short list of answerable questions for August 20 at the Chargers. Whether Willis's pass protection catches up to his run blocking. Whether Height gets to the quarterback instead of past him. Which two of Colby, Willis, Jones and a healthy Puni are standing at guard when the roster is set on September 1.
Those are checkable in four days, which is more than a preseason score will ever be.
This piece stated that the roster is set on September 1. The NFL's 2026 cutdown deadline is 3 p.m. PT on Sunday, August 30, and waiver claims are awarded at 10 a.m. PT on Monday, August 31. The guard question the piece poses is unchanged and is settled two days earlier than published.
DS
Sources and method. Grades are PFF's and are described here only as rankings; this site does not publish subscriber grade values. Starting lineups are from the official gamebook, passing and rushing lines from the ESPN box score, snap counts as published by Kyle Posey at Niners Nation on August 14, and Shanahan's quotation from his Saturday availability. The argument about protection rules is John Chapman's, made on his 49ers Rush film review.









