49ers
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 →
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
49ers Notebook

George Kittle Started And Played 30 Snaps. Luke Farrell Did Not Start And Played 46.

The NFL's official game book for Week 1 puts George Kittle at 30 of San Francisco's 65 offensive snaps and 46 percent, Luke Farrell at 46 snaps and 71 percent, and Jake Tonges at eight snaps and 12 percent before he was hurt. Farrell also played 18 of the 49ers' 20 special-teams snaps, the highest special-teams snap share of any San Francisco player in the game. Kittle started; Farrell did not. Shanahan's postgame words on Tonges were an MCL with no timetable, and as of 2:50 p.m. Pacific Monday the club's transaction log still ends on September 10, Tonges is still on the active roster page, and the Week 2 injury report page carries no San Francisco table. The only other tight ends the club employs, Khalil Dinkins and Brayden Willis, are on the practice squad.

Sam KezarSep 14, 20264 min read
George Kittle Started And Played 30 Snaps. Luke Farrell Did Not Start And Played 46.

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 →
Week 2 Analysis

Opponents have reached the 49ers' red zone five times and scored one touchdown

Two days after the 35-13 win over Miami, the two game books describe a defense that is hard to finish against and easy to move against. Opponents have gained 5.1 yards a play in both games and reached the San Francisco 20 five times for one touchdown. Miami spent 19:17 on its first three possessions and got six points, twice reaching goal to go and twice kicking. San Francisco's first four sacks of the season came either inside its own red zone or with a lead of 15 or more, and Nick Bosa is credited with none of them, and with no quarterback hit either, on 40 of 59 defensive snaps. PFF's charting of the same game puts him ahead of every other 49er in total pressures.

Sam KezarSep 22, 20266 min read
Opponents have reached the 49ers' red zone five times and scored one touchdown
49ers Takeaways

Week 2 takeaways: five touchdowns before San Francisco's first punt

San Francisco is 2-0 after a 35-13 win over Miami in the home opener. The 49ers scored touchdowns on their first five drives and did not punt until 10:38 of the fourth quarter. Purdy was 20 of 22 for 287 yards and two touchdowns with a 149.1 rating and no sack taken. The defense recorded four sacks after none in Week 1, from Marques Sigle, Keion White, Romello Height and a Warner-Stout split, none from Bosa. Miami had first and goal twice and came away with six points. Eddy Piñeiro, the kicker the week was spent on, attempted no field goal.

Sam KezarSep 21, 20265 min read
Week 2 takeaways: five touchdowns before San Francisco's first punt
49ers Roster

The 49ers won by 22 and came out of it needing a receiver and a lineman

Shanahan's Monday conference call produced four injury verdicts. Robinson and Thompson Jr. both have high-ankle sprains at three to six weeks, Robinson most likely to injured reserve. Height broke his hand and has surgery Tuesday, with an outside chance of playing at Arizona. Mike Evans has a hip that will be managed through the week. The receiver room is down to five men on the active roster with three on injured reserve, and the defensive line has now lost three players in two games. Shanahan, asked on Sunday about Leonard Floyd, said the club has already made calls.

Sam KezarSep 21, 20264 min read
The 49ers won by 22 and came out of it needing a receiver and a lineman

Earlier on the 49ers

Camp Battles

Carver Willis Is The Only Name At Left Guard, And He Is Listed Second

The 49ers' published depth chart lists a first-team name at twenty-eight of its twenty-nine positions. Left guard is the twenty-ninth, and the only man in the row, Carver Willis, sits in the second column. Kyle Shanahan said Monday he does not know who starts there against the Rams on September 10, and gave the reason: the Thursday opener took away the three practices he normally decides on, and the club added Jarrett Patterson to the group. Connor Colby has six career starts, Patterson twenty-one, Willis none. San Francisco signed a fifth offensive lineman, Foster Sarell, to the practice squad on Tuesday afternoon.

Sam KezarSep 1, 20266 min read
Carver Willis Is The Only Name At Left Guard, And He Is Listed Second
Camp Notebook

Brett Toth's Undisclosed Injury Was A Concussion, And This Board Took Him Off The 53

Saturday's notebook: the undisclosed injury this beat has been carrying for three days got a name and cost its owner a place on this site's projected 53, Connor Colby lost most of a one-on-one session two days after losing the first-team reps, the defence intercepted Brock Purdy twice in the red zone, and the head coach took a podium for the first time since his car accident.

Sam KezarAug 8, 20268 min read
Brett Toth's Undisclosed Injury Was A Concussion, And This Board Took Him Off The 53
Camp Notebook

Pearsall's Knee, Two Quarterback Lines, And A Strip-Sack To Open Team Drills

Nick Wagoner reported swelling in Ricky Pearsall's knee from a PCL injury carried over from last season, with surgery being explored. Jordan James has a fractured rib and Malik Mustapha a hamstring strain. Purdy completed 14 of 18 in team drills, Mac Jones 11 of 15, and Dre Greenlaw opened team drills by stripping Christian McCaffrey.

Sam KezarJul 29, 20263 min read
Pearsall's Knee, Two Quarterback Lines, And A Strip-Sack To Open Team Drills