It seems like a million years ago, but Jimmy Garoppolo did play in 2018 for the 49ers — a little. He started three games before getting injured.
How did he do? What can his performance tell us about the future of the team?
If you remember a vague sense of “Meh, he was a little disappointing,” well that’s about right. Compared to his great run at the end of 2017, leading the woeful Niners to five straight wins at the end of the season, Garoppolo’s 2018 campaign was a bit disappointing.
He numbers were down for completion percentage, yards per attempt, sacks and fumbles. The last two were especially bad; he had two fumbles in three games this year, after none in six games in 2017. (Consider it five games, though; he only had three snaps against Seattle.) And he managed to get sacked 13 times in three games, vs. only eight sacks in six (or five) games for his first San Francisco season.
So that’s bad. But the story is a bit more complicated than that. What Garoppolo really had this year was two pretty decent games, except for sacks, and one terrible one against Minnesota in Week 1. In that bad game, he was 15 for 33 (45.5%), with one TD and three interceptions.
So let’s look in depth at that Vikings game in Week 1.
Minnesota came with pressure right away, and Garoppolo struggled with it. Keep in mind that he had a green offensive line. Starting right tackle Mike McGlinchey was a rookie. Center Weston Richburg and right guard Mike Person were free agent pickups. Laken Tomlinson was a first round flop for the Lions, picked up at a thrift shop price ( a 2019 fifth rounder) in 2017. The line eventually jelled but it was a work in progress in Week 1.
Garoppolo had made his name getting rid of the ball quickly and effectively, but on the first drive alone he threw a screen into the dirt under pressure from Danielle Hunter, then targeted a triple-teamed George Kittle on third down. He could have dumped off to Matt Breida on that play, or waited a bit longer — he had a clean pocket — for Marquise Goodwin to get wide open on a comeback. But he seemed jittery and threw quickly and unwisely.
This was not the only play where Garoppolo either overestimated his ability to fit it into tight windows, or underestimated Minnesota’s stifling defense. That said, he actually did fit in some great passes in traffic, and delivered good 50-50 balls on other downs. Notably, he put the ball in rookie Dante Pettis’ arms in the end zone midway through the second quarter, but Trae Waynes got an arm in there to break it up.
He also drove the ball down to the Vikings one yard line before Alfred Morris fumbled on two consecutive runs, managing to recover only one of them. (I’ll let you guess whether it was the first or second.)
If it seemed like Garoppolo was under a lot of pressure against the Vikings, well, he was. Mike Zimmer’s D is tough. But you may have forgotten that the Niners top two right guards (Mike Person and Joshua Garnett) were injured by early in the 3rd quarter — and by early, I mean FOUR SECONDS into the second half. Rookie right tackle Mike McGlinchey had to move to guard in his regular season debut, and Garry Gilliam took over at right tackle. That’s ... not ideal.
On the next drive, Kyle Shanahan called a brilliant play — fake the run left, bootleg and fake throw right, then pivot and throw deep left again to Kittle, 40 yards down field. The gifted tight end, who had 54 yards in the first half alone, was wide open. Jimmy G’s throw was a bit too long but catchable; Kittle had fingers on it but didn’t sprint or reach quite enough. Given his YAC ability, he easily would have run it in for a touchdown to tie the game at ten.
On the next play, Kendrick Bourne slipped and fell in the flat on his route. Garoppolo’s pass under pressure was fine, but rookie CB Mike Hughes had an easy, undisputed catch for a pick six. Despite this string of bad breaks, Garoppolo did not appear discouraged.
On the very next play, Garoppolo came back with a 56-yard strike to Kyle Juszczyk, down to the Minnesota 19. On the next play, he scrambled for a four yard gain inside the red zone, no small feat.
Then a bad one. He had Juszczyk open again on a drag route but threw short incomplete. On third down, he put the ball in Pierre Garçon’s hands in the end zone, but Mike Hughes undercut him hard and the WR couldn’t hang on. FG SF, 17-6. But it could just as easily have been 24-17 SF at that point.
Still the Niners kept coming. Next drive: Breida for 11, Kittle for 36, Breida for 3 and then 6. All of a sudden, it’s 3rd and 1 at the Vikings’ 19. Coverage is tight but Garoppolo scrambles and slides for a first down.
He gets sacked on the next play — Mike Zimmer was a defensive coordinator before he was a head coach, and he sends Danielle Hunter against Gilliam with predictable results. But he snaps back, scrambling away from heavy pressure on the next play, and hits rookie Pettis for a 22-yard touchdown. 24-13 Minnesota with a bit more than a quarter to go.
Did I mention that this was Garoppolo’s worst game, by far? Good. Cause that’s important.
Minnesota had to punt, and SF took over just seven seconds into the final quarter. And then Garoppolo threw an interception. It was rookie Dante Pettis, of recent first NFL career touchdown fame, against first team All-Pro CB Xavier Rhodes. The throw was a bit long, which you might think would be the safe way to throw it, but Rhodes did his best Plastic Man imitation and LITERALLY grew his arms six inches to tip, bobble, and grab it.
(Full disclosure: he did not LITERALLY stretch his arms six inches but it sure as hell looked like it.)
The Niners held again, and San Francisco took over with 13:43 left in the final quarter. The OL continued to struggle; the TV commentators were openly talking about how SF could only run to the left, and this was not lost on Mike Zimmer, whose team stuffed for no gain. But Garoppolo threw to a still-healthy Trent Taylor for 7 yards, then to Pettis for 39 more down to the Vikings’ 40.
On the next play, Morris got stuffed for a five yard loss. On 2nd and 15, Jimmy G was under serious pressure (just before an Everson Griffen hit) and went deep to Kittle, who had a step, at the 10 yard line. But the pass was too long, incomplete. Huge play, Jimmy G goes to Trent Taylor, broken up, but two penalties on Minnesota. Defensive holding is declined, they accept roughing the passer.
First down, Niners. Breida for 10 to the Vikings 19. Another pass to Trent Taylor for a first down first down at the ten. Morris gets a yard, Taylor gets four, and now it’s a crucial third-and-goal at the Vikings’ four yard line with 8:17 left in the game. At this point, the Niners have already gone 82 yards in crunch time.
Garoppolo throws to Kittle in the back of the end zone. It’s barely too high, by three inches maybe, but San Francisco has to settle for a field goal. Kittle touched it, but it remained an eight-point (one score) game.
The defense held AGAIN, and SF took over with 7:09 left. Breida for five on first down, Incomplete to Garçon, who the Niners have signaled they don’t want to keep, and then a crucial third-and-six at the midfield. The Vikings bring everybody and Harrison Smith gets home. San Francisco punt time.
The defense steps up AGAIN, a strangely unheralded performance, giving Jimmy G one more chance for greatness — down one long score (8), with a 1:49 left.
This is where the legend of Jimmy G suffers. Starting at his own 11, when everyone knew his had to pass, his throw to Trent Taylor fell short. He then threw deep to Trent Taylor again at the Niners’ 30, but Harrison Smith picked it off and sealed the game.
Bottom line: In his worst (of three) games, Garoppolo threw four or five passes too quickly, perhaps showing nerves. But he also made several tough throws and got some big plays against one of the NFL’s best defenses. Then he got notably better in next two games as the OL gelled and Kittle emerged as a star. I’m excited for his return this year.