Following Sunday’s win in Tampa Bay, the media’s mood around the 49ers’ offense on Monday morning was something unexpected.
“When will San Francisco bench quarterback Jimmy Garoppolo for quarterback Nick Mullens?”
“Why was head coach Kyle Shanahan’s play calling so unimpressive?”
“What’s wrong with former second-round pick Dante Pettis?”
Most of these media remarks seem to be exaggerated, after seeing an unimpressive 49ers’ offensive box score. While San Francisco did not play as well as it possibly could have, they certainly were not as bad as most claim.
The 49ers’ offense had two touchdowns called back on penalties — one reversed a George Kittle touchdown reception and one reversed a Raheem Mostert touchdown run. If those two penalties don’t happen, I’m not sure we’re having this conversation right now.
San Francisco had 166 yards through the air and 98 yards on the ground against Tampa Bay. Garoppolo finished the game, completing 67 percent of his passes, with one touchdown and one interception.
Tight end George Kittle was the 49ers’ best receiver, catching eight passes on 10 targets — but only for 54 yards. No other 49ers’ receiver had over three targets. Running back Matt Breida had the most carries of any running back, but only averaged 2.2 yards per carry.
Despite this poor box score showing, when watching the game film, the 49ers’ offense was actually quite effective. If the 49ers’ offense — primarily Garoppolo — can clean up a few things, they would have been far more effective and a non-issue.
On the first throw of the afternoon, Shanahan sets up Garoppolo on a play-action pass, allowing him to get out of the pocket and find Kittle for an easy completion. The play call gets the offense moving and increases Garoppolo’s confidence after an up and down preseason.
Garoppolo's first throw of the day is an easy one off of play action, hitting Kittle on the run. Good play call from Shanahan for Jimmy G's confidence. #49ers pic.twitter.com/4e6K2dUgnX— Akash Anavarathan (@akashanav) September 11, 2019
Now, just outside the red zone, Garoppolo does a good job avoiding the pressure from the Buccaneers’ pass rush by sliding to his left. Looking at that side of the field, the 49ers’ signal caller had two options: Kittle or wideout Kendrick Bourne. Kittle was well covered, while Bourne seemed to be streaking open. I’m sure if Garoppolo had this throw back, he’d target the third-year receiver.
On this throw, Garoppolo does a good job sliding to his left, avoiding the pressure. He probably should have hit Kendrick Bourne in the middle, but chose to throw at Kittle who was covered well. pic.twitter.com/0VP0nuf07c— Akash Anavarathan (@akashanav) September 11, 2019
In this next clip, wideout Marquise Goodwin comes from left to right, having a step on the Buccaneers’ defensive back. Garoppolo makes the right choice hitting Goodwin, but the throw is behind him and Goodwin’s unable to continue running. This is likely a result of the limited practice time, but Garoppolo has to lead the receiver to help them get yards after the catch.
Garoppolo hits Goodwin (who comes left to right), but needs to hit the receiver in front of him. With Goodwin's speed, if Garoppolo leads the receiver, this is a much bigger gain. pic.twitter.com/Jbhwl2vGX9— Akash Anavarathan (@akashanav) September 11, 2019
Rookie wideout Deebo Samuel shows his toughness and grit on this play, moving the chains on third-and-10. Samuel runs a quick slant, as Garoppolo hits him for the first down. Samuel made the catch and even bounced off of a few defenders. Highly impressive from the rookie, looking a lot like former 49ers’ possession receiver, Anquan Boldin.
On this third down, Deebo "Anquan Boldin" Samuel moves the chains on this slant. Garoppolo's throw is sliiiightly high/wide, but Samuel brings it down and has a huge gain with the #49ers backed up. pic.twitter.com/jCh7cBuBiO— Akash Anavarathan (@akashanav) September 11, 2019
This was probably the worst play by the 49ers’ offense on Sunday. San Francisco was lined up on the right hash mark, but Garoppolo was trying to make the throw back to the left side of the field, one of the more difficult throws on the field. The throw was late, slow and Buccaneers’ corner Vernon Hargreaves III was able to easily intercept the pass and return it for six points.
This was Garoppolo's WORST throw of the afternoon. Sitting at the right hash, Garoppolo throws late and slow to the left side of the field. No reason to throw and it's a pick six. Yuck. pic.twitter.com/4ibyzkGseL— Akash Anavarathan (@akashanav) September 11, 2019
Another playmaker on the 49ers’ offense: wideout Dante Pettis. However, his offseason battle with the coaching staff meant that Pettis only played a handful of snaps. But, talent shines immediately when it gets on the field. The former Husky wideout runs an option route and gets open with ease and Garoppolo is able to hit him for a quick gain.
Here's Pettis' one catch of the day on an option/choice route. Pettis gets open EASILY and has a 7-yard catch. Still dumbfounded as to why he only played a handful of snaps. pic.twitter.com/Ppn8uYgq4O— Akash Anavarathan (@akashanav) September 11, 2019
This next play shows the play-calling wizardry of Shanahan. The head coach moves running back Tevin Coleman to the right side of the formation. When the Buccaneers’ defender follows, the offense knows that they’re up against man coverage. Shanahan sends fullback Kyle Juszczyk and Coleman on crossers, while clearing out the left side of the field. All the receivers except for Coleman end up on the right side of the field and Coleman’s wide open. As a result, it’s an easy pitch and catch for 31 yards.
Here's Shanahan's genius. Moves Coleman out and realizes TB is playing man coverage. Sends Coleman/Juszczyk on crossers, clears out the left side of the field and has Coleman WIDE FREAKIN' OPEN. pic.twitter.com/IQGRYir8FP— Akash Anavarathan (@akashanav) September 11, 2019
Here’s a play where Garoppolo should have completed the pass, but his lack of practice time and lack of rhythm probably contributed to this missed throw. The 49ers’ offense runs a play-action pass and the Buccaneers’ defender took one step the wrong way and Kittle ends up wide open. Garoppolo misses him high, otherwise there’s a chance that this goes for a touchdown.
I'm sure Garoppolo would like to have this throw back. Kittle gets open as a result of the play action and TB's defenders getting fooled. IF Jimmy G hits this, there's a chance it goes for a TD. pic.twitter.com/fqZoxjEyYG— Akash Anavarathan (@akashanav) September 11, 2019
Wideout Richie James was a fringe roster player, but is developing into a great slot receiver under Shanahan — and Wes Welker’s — tutelage. James lulls the defender to sleep with a slow break off the line of scrimmage, then immediately turns on the jets and blows by the defender. Garoppolo delivers a beautiful pass and it’s the first offensive touchdown of the season.
Richie James, welcome to the party. He lulls the defender to sleep, then hits the jets and he's got the defender beat by 3-4 yards. Garoppolo has his best throw of the night and it's a TD. pic.twitter.com/gdyUzH3Qv2— Akash Anavarathan (@akashanav) September 12, 2019
Last, Kittle continues to build upon his career year, adding another facet to his game: becoming a possession receiver. Kittle runs a quick option/choice route and now Garoppolo has a safety blank and an easy gain of six yards on the play.
George Kittle's adding to his game -- becoming a possession receiver. Kittle's looking a lot like peak Gronk in this play, with the option/choice route. Easy pitch/catch from Jimmy G to Kittle. pic.twitter.com/h9ulxkENlk— Akash Anavarathan (@akashanav) September 12, 2019
The 49ers’ offense certainly had some miscues that took away points off the board, but on the flip side, there were numerous positives from the game. The Bengals’ defense is much better and the 49ers’ offense will have to improve in all facets of the game to improve to a 2-0 record.