Preseason Analysis

Carver Willis Graded Last Among The 49ers Linemen A Week After Grading First On The Team

A player-by-player read of the grades from Thursday's 41-17 win at the Chargers. PFF put the rookie who started at left guard last of the eleven San Francisco linemen it charted, and put the man who took the other left guard snaps second among every lineman on the field. Nine days until the roster is due.

SK
Sam KezarAug 22, 20266 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Bryson Eason in a white 49ers practice jersey, number 67, airborne with both hands raised to bat down a pass during a drill on the Santa Clara practice fields, a coach at the left edge and two teammates in white practice jerseys standing behind him. This is a camp photograph and not from Thursday's game at the Chargers, in which Eason played 26 defensive snaps.

Thursday's 41-17 win at SoFi Stadium was worth one line of orientation and no more than that. The men in it are the story, because on August 30 at 3:00pm PT this roster goes from 90 to 53 and there is one game left.

What follows is those men, one at a time, against the grading layer the morning after could not carry. The caveat governs everything below: these are one vendor's numbers on samples measured in dozens of snaps, against another team's reserves, in a game nobody gameplanned. A Pro Football Focus grade is a place to look. It is not a verdict, and where the tape and the number point different directions, both are printed.

The left guard graded last, and the man beside him graded second in the game#

Carver Willis started at left guard and played 42 offensive snaps, more than any other San Francisco guard. PFF made him the lowest-graded of the eleven 49ers offensive linemen it charted, at 40.0, with a 41.1 run-blocking grade and a 44.4 in pass protection. He allowed two pressures on 24 pass-blocking snaps.

That is the same rookie who, seven days earlier against Tennessee, was PFF's highest-graded 49er on the field. He graded first among all 23 San Francisco players charted as run blockers in that game, and he played left tackle in it, 33 snaps of it. Part of what changed on Thursday is where he lined up. On Thursday only Colton McKivitz, who played 12 offensive snaps to Willis's 42, graded lower among the linemen in the phase Willis had just led the roster in.

Nick Zakelj played 38 snaps at left guard and graded second among every offensive lineman in the game, either team, at 72.9. Only Brandon Parker, at 74.5, graded higher, and Parker played right tackle for 25 snaps and was not charged with a pressure on 15 in protection. Zakelj was charged with one on 20.

Print the other half of that before it gets used for anything. Zakelj was released on August 10, three days before the Tennessee game, and re-signed on August 17. He was not on this roster for the first preseason game and did not play in it, so Thursday's 38 snaps are his entire preseason and there is no second game to check them against. Willis has 75 snaps across two. One of those two numbers is a sample and the other is an appearance.

He is also still missing from the club's own roster page, six days after the club announced it had signed him.

He is also not on the list of men competing for the job. Kyle Shanahan, asked about left guard after the game, named three: "The guys that are battling, they haven't all had a consistent three weeks or month to do it, especially Carver just coming back missing those first two weeks. And now Robert Jones is out. Connor Colby, he's been getting a lot of reps there too." Kirk Larrabee's own list at 49ers Webzone added Austen Pleasants and stopped there.

The rest of the room did not help. Connor Colby opened at right guard for 45 snaps and graded 49.6. Pleasants started at left tackle, moved inside, and left in the third quarter with a knee injury; he was PFF's lowest-graded pass-blocking lineman on the team at 29.1 and tied Enrique Cruz Jr. for the most pressures allowed by anyone in the game, four apiece. Robert Jones did not dress.

Shanahan on the timeline: "It's going to go down to the wire." Asked whether it could run past Week 1, "Possibly. We've got to pick one for week one, and hopefully one of those guys will separate themselves."

Two rookies had the best defensive night on this roster#

James Thompson Jr. was PFF's highest-graded 49ers defender at 90.3, its highest-graded 49ers pass rusher at 80.8, and its highest-graded 49ers run defender at 79.8. He played 26 defensive snaps.

Print the rest of that denominator, because it is the caution. Thompson was credited with one pressure on 17 pass-rushing snaps. A grade that high on production that thin is a model paying for how a rep looked rather than what it produced. The model may be right. It is 26 snaps.

Bryson Eason played 26 as well and took PFF's fourth-highest defensive grade on the team, behind Thompson, Jack Jones and Ogbo Okoronkwo. Jason Aponte of Niners Nation credited him with a batted pass and a team-high 88.4 in PFF's true pass rush measure. Eason also had the best defensive grade on the roster against Tennessee, which makes Thursday the second straight game he has finished near the top of it.

Neither is inside the 53 on the tracker this beat maintains. Matt Maiocco's third roster projection of the camp moved between them: "Last week, we gave the edge to James Thompson Jr. Now, we're shifting to Eason, while also giving strong consideration to Sebastian Valdez." It moved off the man the grades liked best.

Alfred Collins had a quiet grade and one loud rep#

Collins started, played 20 defensive snaps and graded 56.1. Five of the eleven San Francisco defensive linemen who played took more snaps than he did, all of them reserves, and PFF graded eight of the eleven above him.

That is the number. The tape, per Aponte, says something else about one rep: Collins "wasn't credited with a pressure, but shed RG Cole Strange with a quick swipe and was bearing down on Justin Herbert." Charting pays for the pressure. It does not pay for the swipe that did not quite arrive, and on 20 snaps that difference is the whole grade.

The backup running back job splits by down#

Sincere McCormick gained the most rushing yards of anyone on the field, 53 on six carries with a touchdown, and PFF graded him third of the four 49ers backs as a runner at 67.4. Khalil Herbert's 78.9 was the highest rushing grade in the game. Kaelon Black graded 71.8 on eight carries for 33 yards. Zamir White, on a team-high 12 carries for 29 yards, graded 49.1, the lowest of any back in the game.

McCormick's long run came with help. Aponte has Brayden Willis, taking snaps at fullback, springing it with a seal block.

And PFF made McCormick the team's lowest-graded pass blocker. For a back competing to be third or fourth in a Kyle Shanahan backfield, that is the half of the job that decides it. Aponte points the same way from the other end: Black's pass protection "shouldn't go unnoticed," and "the quickest way to find yourself in Kyle Shanahan's doghouse is to miss a blocking assignment."

Shanahan on Black, who was in his second day back from an adductor injury: "He ran real physical. We'd love to keep him in there a little bit longer, but being his second day back, we were smart with him."

Jack Jones confirmed it. Darrell Luter did not.#

Jones played 29 defensive snaps, took PFF's best coverage grade on the team at 89.9, allowed no catch on two targets and broke up two passes. Deommodore Lenoir was next at 76.8. Renardo Green graded 45.1 before his hamstring took him out after nine snaps.

Darrell Luter Jr. played 42, tied with Jalen Stroman for the most on the defense, and graded 57.2. Among the six cornerbacks who finished the game, PFF put his coverage last. He played 45 against Tennessee, second to Ephesians Prysock's 53. Across two preseason games he has been given as much work as any corner here and has not once been graded near the top of the room. Maiocco's projection has him on the 53. The tracker here has him at 3 and outside, and that gap is now two games old.

Two more, further down. Larry Worth III, a 21-year-old rookie out of Arkansas, played 18 snaps and graded 71.6, and PFF's coverage grades put him third on the defense behind Jones and Lenoir. He is not on this board at all. At safety the direction reverses: Jalen Stroman played 42 snaps and graded 37.5, and Ashtyn Davis, who sits on the tracker as the fourth safety and inside the 53, was PFF's lowest-graded 49ers defender at 29.7.

The rookie receiver, and nine days#

De'Zhaun Stribling was the highest-graded 49er on the field at 90.5, with the best receiving grade on the team at 85.1, on four catches for 46 yards and 14 offensive snaps. He also dropped a likely touchdown, which Shanahan declined to wave off: "That's his strength is his hands."

One game remains, Thursday at Las Vegas, 5:00pm PDT at Allegiant Stadium. For most of the men above it is the last one they get.

Sources: official NFL game book, San Francisco at Los Angeles Chargers, August 20, 2026; 49ers.com schedule and roster pages, read August 22; David Bonilla, 49ers Webzone, August 21; Jason Aponte, Niners Nation, August 21; Kirk Larrabee, 49ers Webzone, August 21; Matt Maiocco, NBC Sports Bay Area, August 21.

Filed under 49ers

More on Carver Willis

His page →
49ers Notebook

Kyle Juszczyk will miss a few weeks and the 49ers have no other fullback

Kyle Shanahan said Monday that Kyle Juszczyk has a hyperextended knee and a bone bruise and will miss a few weeks, that Marques Sigle has a high ankle sprain, and that Upton Stout is day to day with a sprained AC joint. Brayden Willis, Luke Farrell and George Kittle share the fullback's work. Nick Bosa and James Thompson Jr. are probably out again at Seattle; Mykel Williams could be activated.

Sam KezarOct 5, 20263 min read
Kyle Juszczyk will miss a few weeks and the 49ers have no other fullback
Game Week

San Francisco won by 20 without a sack. Miami gave up five.

San Francisco hosts Miami at 1:25 p.m. Pacific on FOX in its home opener. The 49ers beat the Rams 27-7 in Melbourne without a sack, taking eight quarterback hits instead, four of them by Osa Odighizuwa. Miami lost 27-13 at Las Vegas behind Malik Willis, who was sacked five times. Eddy Piñeiro is questionable with an illness that cost him all three practices, and the club auditioned two kickers Saturday and signed neither. Ten men to watch, and the reason the first one is the kicker.

Sam KezarSep 20, 20264 min read
San Francisco won by 20 without a sack. Miami gave up five.
49ers Roster

San Francisco Promoted A Fourth Tight End And Worked Out Three More

San Francisco promoted tight end Brayden Willis from the practice squad to the active roster on Tuesday morning and signed defensive lineman McKinnley Jackson to the practice squad. The promotion fills the roster spot Alfred Collins vacated on September 10 and puts the active roster back at 53. Hours later the NFL's transaction report showed the club had worked out five players, three of them tight ends. Jake Tonges, who played eight snaps in Melbourne before he was hurt, remains on the active roster with no injury designation and no published imaging result, and the club's Week 2 injury report does not exist yet. Willis has played 23 regular-season games, all with the 49ers, and has no career receptions.

Sam KezarSep 15, 20264 min read
San Francisco Promoted A Fourth Tight End And Worked Out Three More

More on Jack Jones

His page →
Camp Notebook

Nick Bosa Practised For The First Time Since August 3

Nick Bosa practised Wednesday for the first time since August 3, in individual drills and in team periods, per Nick Wagoner at ESPN. It is his first full practice since he tore the right anterior cruciate ligament in Week 3 of last season. He said afterwards that once a session reaches team work there is no governor on it, and that he is confident about Week 1. Ian Rapoport reported Wednesday morning that Bosa and George Kittle both travel to Australia. Kittle has now had three straight days of team work, dated to Monday by John Lynch. Six players sat out, three fewer than Tuesday: Renardo Green, Jacob Cowing, Luke Gifford, Gracen Halton, Romello Height and James Thompson Jr. Jack Jones was on neither list and did no work with the team. Left guard is still not named. The club hosted defensive tackle McKinnley Jackson on a visit and signed nobody.

Sam KezarSep 2, 20264 min read
Nick Bosa Practised For The First Time Since August 3
Camp Battles

Jack Jones Broke Up Two Passes At The Chargers. Nate Hobbs Has Not Played A Preseason Snap.

The official game book from Thursday night at SoFi Stadium credits Jack Jones with two passes defensed, the most by any 49er in a game the team finished with seven, and 29 of San Francisco's 59 defensive snaps. Nate Hobbs pulled a groin at the joint practice with Tennessee on August 11 and does not appear on the participation page of either preseason game. Kyle Shanahan said on August 13 that Hobbs would be out a few weeks. The roster is due Sunday, August 30 at 3:00pm PT. This board moves Jones from 5 to 7 and inside the projected 53, and Hobbs from 6 to 5 and outside it.

Sam KezarAug 21, 20266 min read
Jack Jones Broke Up Two Passes At The Chargers. Nate Hobbs Has Not Played A Preseason Snap.
Camp Notebook

Jack Jones And Marques Sigle Were In Uniform Saturday. The 49ers Signed Nobody.

Jack Jones, No. 25, and Marques Sigle, No. 36, were in uniform for Saturday's 11:50 a.m. practice, two days after leaving the preseason opener with a hand and an oblique. Jacob Cowing, No. 6, was too. Christian McCaffrey (tightness), Nick Bosa (soreness and tendinitis in the surgically repaired knee) and Kurtis Rourke (ribs) did not practise. No transaction has been announced since August 12 on the club's own log and August 13 on ESPN's, and the roster sits at 90 chargeable players against a limit of 90, counted table by table on Saturday afternoon. Thursday's running backs carried 23 times for 52 yards. Nothing on the 53-man projection crossed the cut line.

Sam KezarAug 15, 20263 min read
Jack Jones And Marques Sigle Were In Uniform Saturday. The 49ers Signed Nobody.

On the record

Called Shots →
Held upAug 5, 2026

Connor Colby is listed as San Francisco's starting left guard in the official starting lineup of the 49ers' Week 1 game against the Los Angeles Rams on 2026-09-10. If Robert Jones, Carver Willis, Brett Toth or anybody else starts there, the take is scored wrong.

Filed on the day the reporting went the other way, which is the point of filing it today. David Lombardi had Robert Jones taking the first-team left guard reps at the August 5 practice, the first published rep at the position since July 26. Chris Foerster's own explanation for it was that the staff wanted to keep moving Colby around, including at right guard, and that Carver Willis in concussion protocol and an undisclosed injury to Brett Toth limited that plan. So the alignment was a consequence of two absences rather than a decision about Colby, and the only unforced statement anybody has made about this competition is still Foerster's from the opening Sunday, when Colby took all the first-team reps and nobody had done anything to beat him out. What would make me wrong: Jones holding the first-team reps once Willis and Toth are back.

Latest on the 49ers

The whole beat →
49ers Deep Dive

Denver built Sunday's zero. The hits that left with Bosa were Odighizuwa's

San Francisco did not sack Bo Nix in Sunday's 24-14 win over Denver and hit him twice, both in the fourth quarter. The zero was mostly Denver's design: Nix threw 36 of 42 passes short, Denver had allowed five sacks in three games, and the 49ers' own priority was keeping Nix in the pocket, which held him to two scrambles. The season numbers say something else. With Nick Bosa the 49ers were credited with 13 quarterback hits on 55 opponent pass plays; without him, 7 on 96. Bosa had one of the 13. Osa Odighizuwa had five, and he has had none since Bosa got hurt. Bosa is not expected back for Seattle.

Sam KezarOct 6, 20266 min read
Denver built Sunday's zero. The hits that left with Bosa were Odighizuwa's
49ers Takeaways

Week 4 takeaways: three points in seven drives, then Siran Neal forced a fumble

San Francisco is 4-0 after a 24-14 win over Denver. It was 3-3 at halftime and the 49ers had punted four times, been stopped on fourth down and had a field goal blocked before Siran Neal forced and recovered a fumble on a punt return at the Denver 28. Touchdowns followed on three straight possessions, the last a 56-yard George Kittle catch and run with 2:15 left. Purdy was 19 of 30 for 218 yards and two touchdowns and was not sacked for the fourth straight game. Mike Evans played 39 of 66 snaps with a rib injury and led the team with 76 receiving yards. Kyle Juszczyk (knee), Upton Stout (shoulder) and Marques Sigle (ankle) were hurt, and none has a diagnosis.

Sam KezarOct 5, 20265 min read
Week 4 takeaways: three points in seven drives, then Siran Neal forced a fumble
Game Week

Denver's 68-sack defense is next for Brock Purdy, who has not been sacked

San Francisco (3-0) hosts Denver (2-1) at 1:25 p.m. Pacific on CBS. Brock Purdy has not been sacked this season, and the Broncos led the league with 68 sacks in 2025. Nick Bosa, James Thompson Jr. and Mykel Williams are out. Mike Evans, Dre Greenlaw, Keion White and Jaden Dugger are questionable. Matthew Judon and Malik Turner were elevated Saturday and Sebastian Valdez was promoted to the 53. Ten men to watch.

Sam KezarOct 4, 20264 min read
Denver's 68-sack defense is next for Brock Purdy, who has not been sacked

Earlier on the 49ers

Preseason Analysis

Alfred Collins Is Named Once In The Entire Play-By-Play

The film-and-grades read of San Francisco's 18-12 win at Las Vegas on Thursday, player by player. Alfred Collins played 29 of 66 defensive snaps and appears once in the game book's play-by-play, on an assisted tackle. PFF's four lowest-graded 49ers defenders in the game all played defensive tackle, and both San Francisco sacks came from edge men. Enrique Cruz Jr. played all 61 offensive snaps at left tackle. Carver Willis graded last among the 22 San Francisco offensive players PFF graded, and the split behind it is run blocking rather than pass protection, which is what Willis himself has said the problem is. Khalil Herbert graded highest on offense on 12 snaps. Darrell Luter Jr. started at corner, played 51 snaps and graded second among all San Francisco defenders.

Sam KezarAug 29, 20266 min read
Alfred Collins Is Named Once In The Entire Play-By-Play
Camp Notebook

Two Men On The 49ers' Injured Reserve Page Do Not Work There Anymore

San Francisco has taken three players off injured reserve since Monday and published none of it. The league's waivers wire carries Titus Leo and Tanner McLachlan dated August 25, both reading Terminated Via Waivers, all contracts, and Xavier Thomas dated August 26 with the same wording. The step before it differs by man: Leo and Thomas were waived with an injury settlement, McLachlan with no recall. The club's transaction log's newest entry is Tuesday's Deion Jones trade. Over The Cap and Spotrac each now list five men on San Francisco's injured reserve totalling $5,604,563 and neither carries any of the three, while the club's own roster page still lists seven under Reserve/Injured, those five plus Leo and Thomas. Also: Kyle Shanahan named Christian Kirk, Vederian Lowe and Nick Martin as candidates to open the season on injured reserve, a designation that only works for a player who makes the initial 53 first; Nick Bosa's knee has a name in print for the first time; Renardo Green's imaging result is still unpublished six days after the coach ordered it; and the club hosted a free-agent defensive end on a visit Wednesday.

Sam KezarAug 26, 20264 min read
Two Men On The 49ers' Injured Reserve Page Do Not Work There Anymore
Camp Notebook

Carver Willis Took The First-Team Left Guard Reps In El Segundo

Notes from Tuesday's joint practice against the Chargers in El Segundo, in order of what they do to the 53. The left guard competition moved, the secondary gave up deep balls to three different men, and a number of starters will play Thursday.

Sam KezarAug 18, 20263 min read
Carver Willis Took The First-Team Left Guard Reps In El Segundo