SF 49ers position grades, analysis following surprising win over Cardinals

Quarterback C.J. Beathard #3 of the San Francisco 49ers (Photo by Christian Petersen/Getty Images)
Quarterback C.J. Beathard #3 of the San Francisco 49ers (Photo by Christian Petersen/Getty Images) /
2 of 4
SF 49ers
San Francisco 49ers running back Jeff Wilson (30) with tight end George Kittle (85) and fullback Kyle Juszczyk (44) Mandatory Credit: Joe Camporeale-USA TODAY Sports /

SF 49ers offensive grades

San Francisco’s offense was limited and competent, but with the way the defense was dealing and given the injuries they had, that was all the team needed to get a win.

Quarterback: C+

With quarterback Nick Mullens (elbow) out for the year, C.J. Beathard, a year after losing his brother tragically due to a homicide, took the field as a starter for the first time since 2018.

The win was poetic and well-deserved for Beathard and his family, but the reality is he played pretty average, all told. No turnovers beyond an end of the half fumble when the Niners were trying to be aggressive, which was a welcome change from the issues Mullens had, but also no touch on his passes for the most part and a lack of pocket awareness that resulted in three sacks, much like had been the case for Beathard earlier in his career.

Beathard is the better athlete of the two backup quarterbacks, but his accuracy and feel for the offense are most certainly not on the level of Mullens. At the end of the day, they are both backups, and all you can ask a backup to do is not lose the game.

For this game, Beathard managed to do that. A good win for the team, a decent showing from the SF 49ers’ third-string QB.

Running backs: A+

The reason Beathard had to do so little was because of the dominance of Jeff Wilson Jr. He was electric out of the backfield, finishing with 204 scrimmage yards, 183 on the ground with a yards-per-carry average of 8.3. Again, 8.3 yards per carry, that’s a ridiculous level of efficiency. It was a classic hardnosed football attack led by a running back who has a mean streak in him.

Wilson carried the offense.

Fullback Kyle Juszczyk finished with two touchdowns on his own, so when you lump him into the running backs room, that’s three touchdowns from the backs or all the points for San Francisco.

Wide Receivers: C+

The wide receivers combined for two receptions and 31 yards on four targets. On some longer plays, they were probably going to get involved, but by and large, the receiving corps was made irrelevant to this game, and that isn’t on their lack of talent or production but rather the game script.

It was clear Kyle Shanahan didn’t want to ask too much of Beathard, and as a result, the wide receivers were phased out of the game.

Tight Ends: B+

The fact tight end George Kittle is playing after a foot fracture in a meaningless season is impressive on his own. He also finished with four receptions for a shade under the century mark in yards and proved to be a catalyst in the run game. Injuries and questionable QB play have sapped his production this year, but make no mistake, he is legitimately one of, if not the, best tight end in all of football.

Offensive Line: B

The offensive line did a great job in the run game. It was a vintage performance that harkened back to the playoff runs of last year. Both sides of the offensive line, right and left, did very well in the run game.

The passing game was a different story.

Though the left side, with Trent Williams and Laken Tomlinson, played a near flawless game of pass protection, the right side, with Mike McGlinchey, was not as strong. The run game domination made up for a lot of the pass-blocking woes, but this unit was prominent enough to push into the good-level grade.