Yes, that 38-10 loss to the Green Bay Packers was ugly. But the 49ers have to move on with their season, and coach Kyle Shanahan shared some good news on that front Monday.
Quarterback Brock Purdy, who’s dealing with a shoulder injury, resumed light throwing on Monday and didn’t encounter any issues. If this week goes better than the last — Purdy experienced discomfort after some light throwing Thursday — he could return for the 49ers’ next game on Sunday against the Buffalo Bills.
The 49ers also plan to open the practice window for linebacker Dre Greenlaw, who’s been out since tearing his Achilles in February’s Super Bowl. That might be a welcome reinforcement for a defense coming off a horrific performance.
Speaking of which…
Here are full snap counts and grades from the 49ers’ blowout loss
Quarterback: Brandon Allen (49 snaps)
Game grade: D
Only two 49ers quarterbacks have successfully run Shanahan’s system over an extended period of time. They are Jimmy Garoppolo and Brock Purdy. Nick Mullens saw a smidge of success before his steep regression to inefficiency. Others like Brian Hoyer and C.J. Beathard were never really effective at all.
One start in, Brandon Allen falls squarely in that last category. To visually illustrate this, see Purdy’s positioning in the upper right (first graph below) and Allen’s positioning in the lower left (second graph below):
Allen did make a few nice throws against the Packers, but effective QB play is about so much more than that — especially when the larger offensive structure has so many cracks. This was a level of blowout defeat that the 49ers hadn’t suffered since the dark days of 2018 — and it happened in large part because Allen doesn’t possess Purdy’s pocket presence, command, and escapability. Those had significantly, but not completely, covered up the offense’s litany of issues up until Sunday.
Remember the late-stage Pete Carroll Seattle Seahawks, who suffered through eroding O-line and defensive play but were kept afloat by the frantic scrambling of QB Russell Wilson in his prime? There are similarities between this 49ers team and those Seattle squads.
Running back/fullback: Christian McCaffrey (40), Jordan Mason (9), Kyle Juszczyk (20)
Game grade: C-
Some assume that McCaffrey’s statistical struggles — he finished with just 31 yards on 11 carries — mean that he’s lost a step. But the tape simply shows a lack of running room for McCaffrey, mainly thanks to a combination of successful run blitzes (a byproduct of what seems like a Shanahan play-calling malaise and Sunday’s poor passing counter-threat) and poor 49ers’ run-blocking.
When McCaffrey actually had room to operate, which wasn’t often, he looked quick. He shot out of a cannon after catching a late screen pass but fumbled to close the 23-yard gain.
Should Mason have gotten more than three carries? The 49ers didn’t have much of an opportunity on that front since their defense immediately lost control of the game. The Packers offense ran 33 of the game’s first 39 plays in building a 17-0 lead. There’s a way to set the table for a running back showcase — and the 49ers did the literal opposite.
That being said, why did Shanahan call for an empty backfield with a backup QB on fourth-and-two early in the third quarter? That came immediately after the best runs of the day for both McCaffrey and Mason. Unsurprisingly, the 49ers failed to convert.
Wide receiver: Jauan Jennings (49), Deebo Samuel (33), Ricky Pearsall (33), Chris Conley (4), Ronnie Bell (5)
Game grade: D
Allen targeted Samuel four times, but his only catch came on the reverse flea flicker that set up the 49ers’ lone touchdown. A lack of burst also doesn’t seem to be an issue for Samuel — he showed plenty of it on that play and during his explosive kick return (nullified by a penalty) later on — but his two drops were devastating.
Allen did not target Pearsall a single time. Naturally, Green Bay focused a ton of attention on Jennings, the 49ers’ leading wideout. He managed five catches but only 40 yards.
Tight end: George Kittle (41), Eric Saubert (13), Brayden Willis (1), Jake Tonges (1)
Game grade: A
Let’s talk about Kittle’s future with the 49ers. Consider how disjointed the 49ers’ run blocking was without him the week prior against Seattle’s soft two-shell defenses. Then consider how much uglier this loss to Green Bay would’ve been without Kittle’s six-catch, 82-yard performance that included the 49ers’ only touchdown.
The 31-year-old tight end will one day be in the Pro Football Hall of Fame and he might be playing the best football of his career right now. He’s under contract through 2025. Perhaps it’d be prudent to award Kittle an extension sooner rather than later. He’s currently the 49ers’ best weapon against man coverage — and he’s paid on the tight end scale. That’s cost efficiency.
Offensive line: Colton McKivitz (49), Dominick Puni (49), Jake Brendel (49), Aaron Banks (42), Jaylon Moore (49), Ben Bartch (7)
Game grade: D
Moore, replacing the injured Trent Williams, was the 49ers’ highest-graded offensive lineman. No one else registered a Pro Football Focus run-blocking grade over 63, which is the worst overall performance the 49ers’ front has registered this season. It seemed that Brendel, in particular, struggled to reach the second level — which is mandatory for the success of Shanahan’s outside-zone scheme.
Puni, who’d been good this season, made his first cluster of rookie mistakes. Shanahan also said Puni had to undergo an MRI for a shoulder injury.
“I can’t have three penalties in one half,” Puni said in the locker room. “I’ve just got to be better.”
Banks suffered a concussion in the second half. The injuries to him and Puni would’ve made it a good time for the 49ers to activate veteran Jon Feliciano from injured reserve. But Shanahan said Feliciano’s knee did not respond well to surgery during his three-week practice window, which expired Monday. So Feliciano will remain on injured reserve and possibly give it one more go next season.
Defensive line: Maliek Collins (46), Leonard Floyd (43), Yetur Gross-Matos (45), Sam Okuayinonu (45), Jordan Elliott (25), Evan Anderson (36), Kalia Davis (29), Robert Beal Jr. (21)
Game grade: D
With Nick Bosa out, this was never expected to be pretty. But it was fair to demand a higher level of competence from the 49ers defense than the one they displayed. The Packers amassed 125 rushing yards in the first half alone. And while much blame falls on the back seven’s pile of missed tackles, the 49ers’ beleaguered front also carries responsibility.
All of the team’s linemen graded out poorly against the run. They misfired gaps and failed to set edges. Floyd, though, did register a good game in the pass-rushing department. He notched two sacks and five pressures. Floyd, who entered this season averaging about 10 sacks over the past four campaigns, now has 6 1/2 sacks in 2024. He’s again on track to hit double digits.
The front line of the 49ers’ pass rush has not been a major problem, even with defensive tackle Javon Hargrave out. It’s the run defense — which now ranks No. 23 in expected points added (EPA) — that’s been the true bane of the 49ers’ existence.
Linebacker: Fred Warner (71), De’Vondre Campbell (66), Dee Winters (22)
Game grade: D-
Remember when Warner was on an early pace to be a finalist for the NFL’s defensive player of the year award? The ankle injury that he suffered in Week 4 against the New England Patriots seems to have derailed that.
Sunday was one of the worst games of Warner’s career. The 49ers missed 19 tackles, their highest total ever recorded by PFF (the database goes back to 2006). Warner, who missed four of those, was the leading offender.
Campbell, playing against his former team, also wasn’t good. On Green Bay’s first run of the game, he shot into the wrong gap and collided with Warner. Similar misplays and friendly-fire incidents littered a ghastly performance from the 49ers defense.
Defensive back: Ji’Ayir Brown (71), Malik Mustapha (71), Deommodore Lenoir (66), Renardo Green (46), Isaac Yiadom (58), Rock Ya-Sin (19), George Odom (1)
Game grade: D+
Here’s an ironic oasis in the desert: Mustapha has been the NFL’s highest-graded tackler over his past four games.
The rookie might’ve been the lone bright spot for the 49ers defense on Sunday. Mustapha has emerged as a legitimate building block for a unit in transition (Lenoir and Warner were the only two holdover starters from the 49ers’ playoff win over Green Bay last season).
Brown, his counterpart at safety, has been much shakier. His early missed tackle of Packers running back Josh Jacobs set a horrendous tone. Brown then dropped an interception. Yiadom also wasn’t good. Remember that Green Bay receiver Christian Watson dropped a wide-open bomb, so the 49ers’ pass defense wasn’t nearly as effective as the statistics might indicate.
Green hurt his neck during what might’ve been his poorest outing so far. Lenoir will require an MRI on his knee. The 49ers might need the return Charvarius Ward, who’s back with the team, to resume playing as soon as this week.
Special teams
Game grade: C+
Isaac Guerendo fumbled a kick return — but the 49ers recovered it. Later, a questionable holding penalty on Saubert nullified Samuel’s long kick return, which would’ve put the 49ers right back in the game.
After that, the 49ers couldn’t seem to avoid penalties on Pearsall’s punt returns. But it is worth noting that the rookie, filling in for Jacob Cowing (concussion), looked smooth and comfortable in that role.
“It actually makes my heart go a little crazy,” Pearsall said in the locker room with a smile. “I get a little nervous back there. It’s fun getting that adrenaline going. But I felt like it was back in the college days punt returning.”
Despite the penalties, the 49ers actually notched 2.1 expected points on special teams in this game (they lost 19.4 and 12.2 expected points on offense and defense, respectively). So this wasn’t a terrible performance from that unit, especially relative to the rest of the team.
That, of course, is not saying much.