January 07, 2026
Bill Streicher/Imagn Images
49ers QB Brock Purdy can make off-schedule plays, but he also throws a lot of INTs.
It's go time. The Philadelphia Eagles are in the playoffs, and their Wild Card Round opponent is the San Francisco 49ers, who the Birds did not play this season, but with whom they have some history.
"They have a really good scheme," Vic Fangio said of the 49ers. "It's all packaged together very nicely. They give you a lot of good motions. Everything they do is with a purpose and they do a really good job of it. Obviously, Purdy operates it very well, McCaffrey's an elite back, got a good group of receivers, Kittle at tight end. I mean, they had a run where they were the hottest offense in the league for like six, seven weeks in a row."
The Niners' offense was a weird sturdy. Before their 13-3 loss to the Seahawks Week 18, the Niners did indeed have a six-game winning streak during which they scored 36.7 points per game. They can score points. And yet, when you drill down on some specific areas of the Niners offense, they don't feel super impressive. Let's dive in.
Christian McCaffrey led the NFL with 413 touches this season, 44 more than the next-closest player. He was second in the NFL with 2126 yards from scrimmage:
To put McCaffrey's workload into context, in 2024 Saquon Barkley's usage got a lot of attention locally, and he had 35 fewer regular season touches than McCaffrey did this season.
McCaffrey's effectiveness as a runner is debatable, as he averaged just 3.86 yards per carry in 2025. Also, he had career-worst numbers in two categories:
| Christian McCaffrey | YAC per rush | Rush att per broken tackle |
| 2018 | 2.1 | 14.6 |
| 2019 | 1.8 | 17.9 |
| 2020 | 2.2 | 6.6 |
| 2021 | 2.3 | 8.3 |
| 2022 | 1.9 | 24.4 |
| 2023 | 2.2 | 18.1 |
| 2024 | 1.7 | 16.7 |
| 2025 | 1.5 | 31.1 |
Those above stats mean that he was easier to tackle than he has ever been in his career. Again, just for the sake of context, in a down year Barkley averaged a broken tackle every 15.6 carries this season.
Given all of the above, as you might expect, the 49ers did not have impressive team rushing stats in 2025:
| 49ers rushing | Stat | NFL Rank |
| Rushing yards per game | 106.9 | 24 |
| Yards yards per attempt | 3.8 | 30 |
| Rushing first downs per game | 7.0 | 14 |
| Rushes of 20+ yards | 4 | 31 |
| Fumbles | 2 | 2 |
Really, the only thing they did well in the run game was not turn it over, as they only had 2 fumbles on run plays this season.
It was interesting that the Seahawks were able to stop the Niners' rushing attack in Week 18 despite playing almost exclusively in nickel.
The Eagles had two awful games against the run this season — Week 6 against the Giants, and Week 13 against the Bears. They got run over in those two games. However, their run defense was good at the end of the season. They held the Raiders to 46 rushing yards Week 15, the Commanders to 90 rushing yards Week 16, and the No. 1 ranked Bills rushing offense to 120 yards and just 3.6 yards per carry.
The Eagles cannot let the Niners offense get their run game going, because that is the starting point for everything else they like to do offensively with their play action and misdirection in the passing game.
It's not just the run game that goes through McCaffrey. He also led the team in targets, receptions, and receiving yards.
| 49ers receiving | Target | Rec | Yards | YPC | TD |
| Christian McCaffrey | 129 | 102 | 924 | 9.1 | 7 |
| Jauan Jennings | 90 | 55 | 643 | 11.7 | 9 |
| George Kittle | 69 | 57 | 628 | 11.0 | 7 |
| Kendrick Bourne | 53 | 37 | 551 | 14.9 | 0 |
| Ricky Pearsall | 53 | 36 | 528 | 14.7 | 0 |
Short passes to McCaffrey serve as something of an extension of the run game, as 720 of his 924 receiving yards came after the catch.
As you can also see above, George Kittle was third on the team in receiving, despite missing six games. In other words, the Niners' passing game goes through the running back and the tight end.
As we have seen over the years, Kyle Shanahan and the Niners offense can expose opposing defenses with shaky linebackers. In the 2023 Eagles-49ers matchup, for example, the Niners obliterated the Eagles in the middle of the field all day, picking on poor Nicholas Morrow.
This is not the same Niners offense, nor is it the same Eagles defense.
That Niners offense had Brandon Aiyuk, and and not-yet-cooked Deebo Samuel, who could both turn short passes into long gains after the catch. The Niners do not have that run after catch firepower from their receivers like they used to.
Also, the 2025 Eagles have far, faaaar better linebackers in Zack Baun, Nakobe Dean (expected to play, per Vic Fangio), and Jihaad Campbell.
Still, because the offense funnels through players typically covered by linebackers, this matchup will be a huge test for Baun, Dean, and Campbell.
The Niners' offensive line looks like this:
| LT | LG | C | RG | RT |
| Trent Williams | Spencer Burford | Jake Brendel | Dominick Puni | Colton McKivitz |
The Niners have good athletes along their line, but they're very light. Burford is listed at 300 pounds, Brendel at 299, and McKivitz at 301.
That makes them susceptible to power, which the Eagles certainly have in players like Jordan Davis, Jalen Carter, Moro Ojomo, Jaelan Phillips, and Brandon Graham.
For a team that likes to throw a lot of short passes, Brock Purdy holds onto the ball on average of 3.17 seconds per pass play, from snap to throw.
"Yeah, he's very good at that," Fangio said. "He's a scrambler and when he's scrambling, he's looking down the field. His eyes go down the field. He's wanting to throw out of the scramble before he decides to run it, and he's very good at it. They have a lot of maximum play action-type protections, where he's going to have some time anyway. Then if he doesn't like what he sees, he can buy even more time. I think that's why his average is up there so high as far as holding the ball."
The Niners only allowed 27 sacks on the season, fifth-fewest in the NFL, despite Purdy's proclivity for holding onto the ball.
The Eagles have to rush the passer with discipline in this matchup, and not allow Purdy to break the pocket, because he does a good job of extending plays and making plays on the run. For example, you'll see a lot of these types of plays in any Purdy highlight reel:
It'll be on the Eagles' interior defensive line to push the pocket, and athletes like Nolan Smith and Jalyx Hunt to prevent Purdy from running around and making those types of plays.
We should also probably note here that Trent Williams — still by far the Niners' best offensive lineman — did not play Week 18 with a hamstring injury. He is expected to play against the Eagles, but hamstring injuries have a tendency to linger.
FeastinMeter™️: 5/10 turkeys 🍗🍗🍗🍗🍗
If you can keep Purdy in the pocket, he will make mistakes in the middle of the field, which as noted above, is where the Niners like to operate. He does not have a cannon arm, and his downfield passes can be undercut, as shown in this cutup by the Inquirer's Devin Jackson:
Purdy threw INTs on 3.5% of his passes this season. The only other quarterbacks in the NFL with at least 200 passing attempts who had a worse INT percentage were J.J. McCarthy, Shedeur Sanders, Tua Tagovailoa, and Geno Smith. That's not exactly awesome company.
Before the start of the season, the Niners traded a late round pick to the Chiefs for Skyy Moore, who has helped the Niners win games this season. Video via @Coach_Yac:
"Skyy Moore has done a really good job, especially in the punt return phase of creating some big explosive plays," Michael Clay said. "Got a lot of good wiggle, gets north and south, great speed."
But more importantly, the Niners are vastly improved at kicker. In 2024, Jake Moody was 24 of 34 of field goal attempts, and he cost them games. I mean, Deebo Samuel tried to pick a fight with his own kicker and long snapper on the sidelines during a game, lol.
Eddy Piñeiro is 28 of 29 on field goals this season, and 6 of 7 from 50+ yards.
Follow Jimmy & PhillyVoice on Twitter: @JimmyKempski | thePhillyVoice
Like us on Facebook: PhillyVoice Sports
Add Jimmy's RSS feed to your feed reader