Grading the 49ers’ players and coaches after beating the Cardinals 41-22

Glendale, AZ — The 49ers just blew out the Arizona Cardinals 41-22. Granted, the Cardinals got blown out last week too and now have lost 7 of their past 8 games since they lost to Mac Jones and the 49ers in Week 3. They’re dead. They need to fire their head coach.
Still, the 49ers are now 7-4, and their offense seems to be rounding into form.
With that in mind, here are the 49ers’ grades for this performance.
Joe Rondone/The Republic / USA TODAY NETWORK via Imagn Images
For the most part, Brock Purdy seemed like himself. He was accurate — his completion percentage was 73 — he threw three touchdown passes, he rolled out of the pocket, he extended plays, he made nice passes on the run, he forced a few passes into coverage that should have gotten intercepted — these are all things Purdy does when he’s 100 percent healthy.
But he’s not 100 percent healthy, and you can tell when he runs. He’s not as quick or elusive as he was before he injured his toe. He couldn’t run away from pass rushers, and he was unwilling to scramble — he never crossed the line of scrimmage, which was smart against the Cardinals. He didn’t need to scramble to beat them.
But Purdy will need to scramble to beat playoff teams. He’s not good enough to win consistently if he’s stationary. That’s how Mac Jones plays. Purdy is smaller than Jones and needs to get out of the pocket to see the whole field. We’ll see if Purdy’s mobility comes back this season. If it doesn’t, their offense won’t be elite.
Joe Rondone/The Republic / USA TODAY NETWORK via Imagn Images
Christian McCaffrey had his best game of the season. He scored 3 touchdowns, gained 121 yards from scrimmage and averaged a whopping 6.2 yards per carry.
Granted, he was facing the Cardinals, who got torched on the ground by the Seahawks last week. Still, McCaffrey was excellent — much better than Brian Robinson Jr., who had outpeformed McCaffrey on the ground leading up to this game.
Joe Camporeale-Imagn Images
Jauan Jennings was OK — he had 4 catches for 54 yards. The other wide receivers were no good. Demarcus Robinson had just 1 catch for 13 yards, and Ricky Pearsall had 1 catch for 0 yards in his first game back from a PCL injury.
Pearsall probably isn’t 100 percent healthy, and he clearly is rusty, which is to be expected after a six-week layoff. Still, if he’s not playing well, throw the ball to Kendrick Bourne. He has been in the zone all season.
Matt Kartozian-Imagn Images
It’s incredible how important George Kittle is the 49ers’ offense. He’s by far their best player. Today, he had 6 catches for 67 yards and 2 touchdowns. He’s on fire after pulling his hamstring Week 1 and returning before he was fully ready to play. Now, he’s had two dominant games in a row — one with Purdy, and one with Mac Jones.
As long as Kittle stays healthy, the 49ers’ offense will be good.
Matt Kartozian-Imagn Images
They blocked extremely well in the run game and gave up just 1 sack and only 3 quarterback hits. Of course, they were facing the Cardinals, who might be tanking. Or maybe they’re just awful. Still, good performance by the offensive line.
Matt Kartozian-Imagn Images
They recorded zero sacks, which is a big reason the defense gave up an NFL record 47 completions. And they were facing Jacoby Brissett, who’s not a starting quarterback. If they can’t generate a pass rush against the Panthers quarterback Bryce Young next week, they’re in trouble.
Joe Rondone/The Republic / USA TODAY NETWORK via Imagn Images
None of the linebackers could cover Cardinals tight end Trey McBride, who caught 10 passes for 115 yards and 1 touchdown. And Tatum Bethune left the game with an injury. But the rest of the linebackers defended the run well. Dee Winters and Curtis Robinson combined for 21 tackles.
And rookie Nick Martin made his 49ers debut at linebacker, and he made 6 tackles without giving up any big plays.
Joe Camporeale-Imagn Images
Upton Stout gave up a long catch, but also forced a fumble at the goal line to save a touchdown — that was a great play. And Deommodore Lenoir and Malik Mustapha each intercepted Brissett once, which is impressive.
But Brissett isn’t good. And he was missing his No. 1 wide receiver Marvin Harrison Jr. And yet, Brissett still completed an NFL record 47 passes, Cardinals wide receiver Michael Wilson caught 15 of them for 185 yards. Keep in mind, Wilson came into the game with 22 catches for the entire season.
Playing soft zone coverage against the Cardinals was smart, but it won’t work against teams with legitimate starting quarterbacks.
Matt Kartozian-Imagn Images
Skyy Moore had a 98-yard kickoff return to start the game, and Brian Robinson Jr. had a 42-yard kickoff return in the second half. Both of them have been outstanding on special teams this season.
Unfortunately for the 49ers, Eddy Pineiro missed two extra points before leaving the game with a pulled hamstring that could put him on the shelf for a couple weeks. Maybe the 49ers can bring back Jake Moody.
Joe Camporeale-Imagn Images
The 49ers won by 19 points, so there’s not much to critique. That being said, the Cardinals largely beat themselves, considering they committed a whopping 17 penalties.
Kyle Shanahan and Robert Saleh coached well enough to beat Arizona, but they’ll need to coach much better down the stretch this season, or the 49ers will miss the playoffs. Shanahan letting Ricky Pearsall run a bunch of routes without gaining any yards can’t happen when Kendrick Bourne is on the team and in the zone.
And Saleh letting the opposing quarterback dink and dunk at will can’t happen when the 49ers play non-backups. Their game plan will have to be much more aggressive next week.
But they can worry about next week tomorrow. For now, enjoy this win.

![Bears at Vikings Game Preview [AUDIO] - Sports Mockery](https://cdn2.el-balad.com/wp-content/uploads/2025/11/Bears-at-Vikings-Game-Preview-AUDIO-Sports-Mockery-390x220.webp)


