GLENDALE, Ariz. — What a difference a year makes.
Just over 12 months ago, the 49ers soared in State Farm Stadium, where they clinched the 2023 NFC West Championship against the Arizona Cardinals.
But as they packed their bags in the same spot Sunday, the 49ers found themselves in the polar opposite position. They’d lost to the Cardinals, 47-24, finishing a 6-11 season and securing sole possession of last place in the NFC West.
The 49ers’ slide ceased being stunning well over a month ago, as injuries and losses piled up. But the sheer evisceration of their defense over the final three weeks of this season was enough to sound serious alarm bells.
Star edge rusher Nick Bosa called the 49ers’ three-game finish, which saw them allow more than 38 points and 153 rushing yards per game, “embarrassing.”
“It’s hard to look guys in the faces as the leader on the team while that’s the product we keep putting out,” Bosa said.
Star linebacker Fred Warner echoed that assessment.
“For as long as I’ve been here, I’ve always known playing dominant defense,” Warner said. “It just hasn’t been good enough — not even close. To be a part of that, knowing that I’m out there every game and knowing it still isn’t good enough, it obviously is a gut punch to my own pride. I’m going to do everything in my power to make it right.”
So begins the 49ers’ project of offseason atonement. Quarterback Brock Purdy, who didn’t play in the finale due to an elbow injury that’s not considered serious, is now eligible to sign a contract extension that’s expected to become the centerpiece of the team’s financial framework. That’ll be the headlining business of the offseason, but the 49ers have plenty of work to do beyond that.
They face a plethora of questions, beginning with coaching leadership of the defense and special teams — two units that delivered downright atrocious football across the finish line.
On their way to giving up a season-worst 47 points Sunday, the 49ers allowed 151 rushing yards and another fake punt conversion. It was the second time this season that they were victimized by that type of trick play.
Before reporters even had a chance to ask about the futures of defensive coordinator Nick Sorensen and special teams coordinator Brian Schneider, coach Kyle Shanahan landed a preemptive statement that indicated a busy week is coming at 49ers headquarters.
“As far as everything, I know you guys have a job to do,” Shanahan said. “But anything for the offseason, coaches, players, any of that stuff — I’ve got a job to do, too. I’ve got to finish this out the right way with our team tomorrow. So any of that stuff, I’ll answer later in the week for you guys.”
The 49ers enter this period of maneuvering on an especially unsatisfactory note. Rookie running back Isaac Guerendo and right tackle Colton McKivitz exited with knee and ankle injuries, respectively. Not a single 49er reached any of the incentives and milestones that were within reach entering Sunday’s final game. Bosa wanted one more sack to reach 10 on the season but was kept off the stat sheet entirely. Fellow edge rusher Leonard Floyd needed 1.5 more sacks to hit a $1 million incentive, but he also failed to reach Arizona quarterback Kyler Murray.
Receiver Jauan Jennings suffered a particularly visible disappointment, though it came while he showcased the type of fight that the 49ers will need to turn their struggles around in 2025. Jennings, who entered the game 77 receiving yards shy of his first 1,000-yard season, was ejected after getting tangled up on consecutive plays with Arizona cornerback Sean Murphy-Bunting.
Officials also threw Murphy-Bunting out of the game, but Jennings and the 49ers didn’t think that was fair — as it was the cornerback and not the receiver who instigated post-whistle contact. Jennings had simply driven Murphy-Bunting into the ground while blocking during live plays, which is legal.
“Humans make mistakes,” Jennings said. “They threw me out. I think it was a mistake. … I tried to get up, and he wouldn’t let me get up — just kept grabbing my jersey, grabbing my face mask, anything to grab me, and I was just trying to get him off me.”
Jennings’ ejection came after he’d racked up 52 receiving yards. He finished the season at 975 yards — just 25 short of 1,000.
“It hurts a lot,” Jennings said. “I believe everything happens for a reason. Give me another chance next year.”
The 27-year-old receiver projects to be a key component of the 49ers’ retooling effort. So does fellow wideout Ricky Pearsall, who delivered a team-best six catches for 69 yards against the Cardinals. It was a homecoming for the rookie, who grew up in Arizona and had more than 50 family members in attendance at State Farm Stadium.
The 49ers offense didn’t struggle to move the ball — backup QB Josh Dobbs threw for 326 yards, and running back Patrick Taylor Jr. ran for 109 yards — but they turned the ball over three more times. Dobbs threw two interceptions and lost one fumble.
On the other side, the 49ers defense did very little to get the ball back, continuing a disturbing trend that ultimately doomed the team over the past two months. Sorensen’s defense logged only two takeaways in the nine games since the midseason bye, all while Shanahan’s offense gave the football away 15 times. The 49ers’ minus-13 turnover differential in that span was better only than the Cleveland Browns’ minus-15 differential.
“The takeaways or the lack thereof is what killed us,” Warner said.
After also lamenting the 49ers’ profuse struggles in the turnover department, Tight end George Kittle looked ahead as he began to exit the locker room.
“We’re going to do everything we can to fix that,” he said.
Not long after that, the 49ers’ flight took off from the desert of disappointment back to the Bay Area, where a boatload of offseason work awaits them.