Skip to main content
Sports

Grading the 49ers: Where Kyle Shanahan went wrong in blowing another lead

Two football players are jumping for a pass; one in a white and blue uniform with number 14, and the other in red and gold with number 22. The crowd is in the background.
Seahawks receiver DK Metcalf grabs a catch over 49ers defender Isaac Yiadom. | Source: Thearon W. Henderson

The 49ers spent Monday picking up the pieces from Sunday’s brutal 20-17 loss to the Seattle Seahawks, which saw them blow a late lead and move to even more unfavorable territory on this table.

The 49ers have been very poor finishers this season. They’ve been favored to win for about the same percentage of game time as powerhouses like the 9-1 Detroit Lions and 8-2 Buffalo Bills, yet three blown leads have them reeling at 5-5.

“We’re pissed off from yesterday,” 49ers coach Kyle Shanahan said Monday. “Guys were disappointed and upset. They’re ready to put that game behind us. Now I think our guys can’t wait to get to Green Bay as fast as we can.”

The 49ers will be underdogs for the first time this season on Sunday. The Packers are favored by 1.5 points for the showdown at Lambeau Field.

On the injury front, 49ers quarterback Brock Purdy is dealing with shoulder soreness and will be day-to-day this week. Edge rusher Nick Bosa, who exited Sunday’s game with an oblique injury, will be evaluated this week but has a chance to play at Green Bay.

Here are full snap counts and grades from the 49ers’ loss

Quarterback: Purdy (63 snaps)
Game grade: B

No, Purdy wasn’t perfect. A late miss to receiver Deebo Samuel cost the 49ers a chance to seal the game. But Purdy actually squeezed notable production from an offensive setup that lacked open receiving room and was crippled by numerous holding and procedure penalties. The two touchdowns that the 49ers did score came courtesy Purdy’s legs. He dove across the pylon to complete one and sprinted away from pressure to find receiver Jauan Jennings to deliver the go-ahead score.

The 49ers offense may face a litany of issues, but Purdy’s play is nowhere near the top of the list. One can argue that he’s actually making final results more palatable with splash plays that are generating yardage outside of Shanahan’s sputtering structure.

Running back/fullback: Christian McCaffrey (59), Jordan Mason (2), Isaac Guerendo (2), Kyle Juszczyk (23)
Game grade: C+

It might behoove Shanahan to involve Mason more often, not necessarily to take a load off of McCaffrey, but to attack a defense with a very fresh running back. It’s been nearly a month since Mason touched the ball more than six times in a game, and he showed noticeable spring over two carries for 13 yards on Sunday.

McCaffrey ran hard, racking up 79 yards on 19 carries, but his longest run was 11 yards. In a win over Seattle in October, the 49ers sprung game-changing 38- and 74-yard runs against the Seahawks.

“I think Christian is doing a good job,” Shanahan said. “I don’t think he had any opportunities for big ones.”

A key 49ers’ offensive problem was evident on Deebo Samuel’s one unproductive sweep. He lost a yard, running his season total to just 79 rushing yards on 27 carries. Shanahan simply isn’t schematically attaining running room to the edges for Samuel as effectively as he used to.

Deebo Samuel average yards per rush

  • 2019: 11.4
  • 2020: 3.3
  • 2021: 6.2
  • 2022: 5.5
  • 2023: 6.1
  • 2024: 2.9

Wide receiver: Jauan Jennings (60), Samuel (55), Ricky Pearsall (37), Chris Conley (3), Jacob Cowing (1)
Game grade: C

In Week 10 against Tampa Bay, every single 49ers target scored high in the green when it came to EPA/target — the furthest right column below. It was an exceptional table. The table below isn’t:

This loss to Seattle was an exhibit of passing inefficiency. Tight end Eric Saubert might’ve scored well, but that’s because he only saw one target. So in effect, Jennings was the 49ers’ only efficient target. The link between him and Purdy was electric, but it also wasn’t enough to win.

Tight end: Eric Saubert (61), Jaylon Moore (12)
Game grade: F

Shanahan tried to replace George Kittle’s run-blocking impact with Moore, a backup offensive tackle. But Kittle is a unique player who’s as threatening as some of the NFL’s best wide receivers in the pass game. Inserting a 300-pound lineman into the tight end spot has no chance of replicating that impact.

Perhaps Shanahan should have designed a game plan better tailored to his available personnel instead of forcing Moore on the field for 12 snaps. Talent typically trumps scheme in the NFL, but the 49ers chose the latter during this inefficient performance.

Offensive line: Colton McKivitz (63), Dominick Puni (63), Jake Brendel (63), Aaron Banks (63), Trent Williams (63)
Game grade: D+

Williams gritted through a pregame workout and decided to play on an injured ankle. Like his fellow linemen, he was neither terrible nor great in the pass game. These were the 49ers’ pressure allowances, per Pro Football Focus:

  • Williams: 2
  • Brendel: 1
  • McKivitz: 1
  • Puni: 1
  • Banks: 1

Run blocking was worse for the 49ers. While blown assignments hurt, penalties were even more damaging. A late holding call against Brendel, for example, nullified a conversion on third-and-one. While Jennings converted with a superhuman effort on the next snap, the 49ers had to burn one of their best plays to do it.

That might’ve cost them on the next drive, during which they failed to seal the game.

Defensive line: Maliek Collins (46), Leonard Floyd (38), Yetur Gross-Matos (37), Sam Okuayinonu (34), Jordan Elliott (31), Bosa (26), Evan Anderson (11), Kalia Davis (10), Robert Beal Jr. (9)
Game grade: C-

With Bosa on the field, the Seahawks averaged only 3.3 yards per play and didn’t find the end zone. With Bosa off the field, Seattle averaged 6.1 yards per play and scored twice. Bosa’s importance to the 49ers should not be underestimated. He’s the lynchpin of the line, which saw its auxiliary edge rushers also deliver while the star was on the field.

But the drop-off on the exterior was precipitous, and the interior pass rush didn’t get going even when Bosa was in the game. This was particularly disappointing for a 49ers team that had hoped to capitalize on the retirement of Seattle center Connor Williams in the week leading up to the game.

Linebacker: Fred Warner (60), De’Vondre Campbell (60), Dee Winters (10)
Game grade: B-

Winters delivered the best play of his young NFL career on Seattle’s first drive, blanketing receiver DK Metcalf far downfield to break up a pass. But this wasn’t a productive game for Warner, who missed a tackle and made only two stops. The 49ers badly needed a splash play from their remaining defensive superstar on that final drive and they didn’t get it.

The 49ers hope Dre Greenlaw will return to practice next week. It appears to be possible that he returns from his Achilles tear in early December.

Defensive back: Ji’Ayir Brown (60), Malik Mustapha (60), Deommodore Lenoir (59), Renardo Green (56), Isaac Yiadom (49), Rock Ya-Sin (3)
Game grade: B

It must be emphasized that the 49ers didn’t let up big damage — or even a touchdown — until after Bosa went out. So the secondary functioned as intended when the pass rush in front of it was competent. Yiadom even delivered his first interception for the 49ers on an errant throw from Seattle QB Geno Smith in the third quarter. Then, shortly after Bosa exited, Yiadom gave up a damaging third-down catch to Metcalf — but credit should go to Smith for his fantastic throw to the sideline.

In welcome news, Charvarius Ward has rejoined the 49ers team. He’d been on bereavement leave following the death of his one-year-old daughter, Amani Joy. Ward was back in team meetings Monday.

Special teams
Game grade: C
This wasn’t the disaster of the 49ers’ previous game, when they lost more than 12 expected points on special teams. But it wasn’t good, either.

Mason muffed a kickoff but was lucky that the ball rolled out of bounds. New punter Pat O’Donnell then booted a punt through the end zone even though Seattle didn’t have a returner. The touchback set the Seahawks up for the game-winning drive.

On the plus side, kicker Jake Moody bounced back from his three-miss performance in Tampa Bay to nail a field goal and two extra points. His kickoffs were also sound.

David Lombardi can be reached at dlombardi@sfstandard.com