NFL Week 13 Game Recap: Seattle Seahawks 30, San Francisco 49ers 23

Seattle, Washington, USA; Seattle Seahawks quarterback Russell Wilson (3) celebrates with wide receiver DK Metcalf (14) after throwing a touchdown pass against the San Francisco 49ers during the third quarter at Lumen Field. Mandatory Credit: Joe Nicholson-USA TODAY Sports

In an NFC West thriller, the Seattle Seahawks played spoiler to the San Francisco 49ers and pulled off the win, holding out late in the game. This was a chaotic, back-and-forth encounter in which each side did its best to throw it away at times, but the Seahawks ultimately prevailed, 30-23, to grab their fourth win of the season.

Click here for more PFF tools:

Rankings & Projections | WR/CB Matchup Chart | NFL & NCAA Betting Dashboards | NFL Player Props tool | NFL & NCAA Power Rankings

Seattle Seahawks


Russell Wilson still doesn’t look right, but there were more flashes in this game than in others of the player he can be when healthy. He connected on a perfect pass to Tyler Lockett in the end zone for a touchdown but also missed several throws and took a horrible sack-fumble in the pocket on a play he had ample opportunity to cut bait on.

Target Depth Cmp/Att Yards Adjusted Comp % TDs
Behind LOS 10.11 51 90.9 0
Short (1-9) 15.17 90 94.1 1
Medium (10-19) 4.4 57 100 1
Deep (20+) 1.5 33 50 0
Running back

Adrian Peterson was signed off the street and ended up leading the team in rushing attempts (11). He also tied Jim Brown for career touchdowns, and the Seahawks gave him every opportunity late to overtake Brown if he had been able to break the plane of the goal line. Peterson’s 11 carries went for a total of 16 yards, and he gained 17 after contact.

Wide receivers/Tight ends

Gerald Everett‘s woeful day was on full display. He managed to drop a pass in the end zone that bounced up to be caught by a 49ers defender, turning a touchdown into a turnover. And later, he fumbled the ball away rather than scoring and putting the game beyond reach, allowing the 49ers to have a chance to run a drive to try and tie the game. Needless to say, his PFF grade will not be good.

Offensive line

Duane Brown may be slowly declining with age, but he is still the class of this offensive line. He was by far the unit's best player up front, allowing just one pressure from 43 pass-blocking snaps on first review of the game. Brown also recorded the best run-blocking grade of any Seattle lineman, pending grade review.

Defensive line

The interior of the Seattle defensive line was excellent, with almost every member of a heavy rotation grading well on first look. Veteran edge rusher Carlos Dunlap didn’t get a lot of pressure over the course of the game, but he was the man who got his hand up and batted a pass that looked destined to be a game-tying touchdown with the last 49ers play on offense. Dunlap has been a batted pass machine in his career, but that was only his fifth of the season — and the most important.

Player Snaps Pass Rushes Pressure Rate
Rasheem Green 37 24 12.50%
Darrell Taylor 30 17 11.10%
Poona Ford 35 17 5.90%
Al Woods 33 17 0.00%
Alton Robinson 19 12 0.00%
Kerry Hyder 20 10 10.00%

Bobby Wagner and Jordyn Brooks were the two linebackers seeing all of the snaps for the Seahawks' defense, with Wagner being the best of the two. Even he wasn’t perfect, and he was forced into a rare missed tackle early in the run game. In coverage, Wagner allowed three catches for 21 yards. He was also handed a gift of an interception from Jimmy Garoppolo. 


Almost all of the worst performances among the Seahawks' defenders came in the secondary. Sidney Jones was able to make a key play in coverage on the final drive to stay just on the right side of illegal contact and force an incompletion, but the Seahawks forced just one incompletion overall in the game.

San Francisco 49ers


Jimmy Garoppolo had been playing his best football in recent weeks, but the wheels largely came off that wagon in this game. He made multiple turnover-worthy plays, resulting in multiple turnovers. And though he was hardly the only player making mistakes, you could convincingly argue that those turnovers were the difference in the game.

Running back

Elijah Mitchell was the bell-cow back in this game for the 49ers, carrying the ball 22 times while no other running back got any carries. The team's only other rushing attempts came from tight end George Kittle and Garoppolo. Mitchell scored a touchdown, but there was little in the way of wide-open rushing lanes in the game, and his longest run was just nine yards. Fifty-eight of his 66 yards came after contact.

Wide receivers/Tight ends

George Kittle became the focus of the 49ers' offense with Deebo Samuel nursing a groin injury. Kittle was targeted 12 times, twice as much as any other receiver, and he caught nine of them for 181 yards and two touchdowns. He gained 109 yards after the catch, making multiple big plays by busting out of tackles and picking up critical gains.

Routes Run Targets Receptions YPRR
George Kittle 29 12 9 6.24
Brandon Aiyuk 30 6 3 1.83
Trent Sherfield 29 4 2 0.55
Elijah Mitchell 16 3 3 1.13
Kyle Juszczyk 11 3 2 1.91
Offensive line

The interior of the 49ers' offensive line struggled in this game, particularly in the run game. The customary rushing lanes weren’t there, and they were routinely being controlled at the point of attack by Seahawks defensive linemen. Pass protection wasn’t as bad, but any losses tended to be quick and decisive. 

Defensive line

D.J. Jones is having a career year, and he put together another excellent game on the defensive line for San Francisco. Jones was particularly effective in the run game, where he accounted for three of the team’s four tackles for loss or no gain. His average depth of tackle was almost one yard behind the line of scrimmage.

Player Snaps vs. Run Missed Tackles Avg. Depth of Tackle
Nick Bosa 21 1 2
Samson Ebukam 13 0 6.5
D.J. Jones 18 1 -1.2
Arik Armstead 19 1 2.67

With no Fred Warner, it was Azeez Al-Shaair who was ever-present on defense, lining up on all 63 of the team’s defensive snaps and playing well overall. Al-Shaair showed up well in coverage, doing a good job of limiting gains. He gave up a catch on all six passes thrown into his coverage, but those passes went for just 34 yards in total and each one was a defensive stop.


K’Waun Williams notched a critical interception of Russell Wilson on a pass that should have been caught for a touchdown by his tight end. Overall, Williams allowed just one reception for 12 yards on passes into his coverage. He was also involved in the run game and made multiple impressive plays, including a defensive stop at the line of scrimmage.


Unlock the 2023 Fantasy Draft Kit, with League Sync, Live Draft Assistant, PFF Grades & Data Platform that powers all 32 Pro Teams

$31 Draft Kit Fee + $8.99/mo
$89.88/yr + FREE Draft Kit