The 49ers returned to the practice field Saturday and, for the first time, moved the ball during practice. This was the first time we could evaluate the offense when now that it was time to move the chains.
Nick Bosa sat out of team drills. Javon Kinlaw was in and out. And with Arik Armstead still out, the defensive line was without their three most talented players. DT Hassan Ridgeway, OT Jaylon Moore, and WR Marcus Johnson all sat out of practice, too.
Here’s what I saw during practice.
Trey’s trends continue
The longer practice goes along; the more Trey Lance gets comfortable with what he’s seeing. The more Lance becomes comfortable with what he sees, the more dangerous he becomes as a quarterback.
Lance was roughly 11-for-20 on the day. One of those passes went to Jimmie Ward, who jumped in front of Elijah Mitchell on an underneath route after Lance felt the pressure. After the play, Lance didn’t hesitate to go up to Ward and ask for an explanation of what happened.
Before that play, Lance’s day fell into the “hit or miss” category. After a couple of first-down conversions to Brandon Aiyuk and Jauan Jennings to start off the team period, Lance missed his next four throws, although one was a drop from Jennings. Lance threw into coverage on two occasions and was fortunate not to throw an interception on both plays.
Kyle Shanahan is betting on Lance learning from his mistakes. Lance showing a willingness to talk to defenders after errant throws is a great sign. In training camp, you want Lance to see what he can and can’t get away with so long as he doesn’t make the same mistakes over and over.
During the final move-the-ball period, Lance looked his best with 1:15 remaining on the clock with a full field in front of him. He went 5-for-6 with three completions to George Kittle, including one for an explosive play. The offense converted a third down before Lance kept the offense ahead of the chains on another scramble.
It should be pointed out that the offense had to burn a timeout on one play where Lance ran but failed to get out of bounds. But, the way the drive ended, you’ll live with that “rookie” mistake.
Lined up on the 15-yard line with six seconds remaining, Lance dropped back to throw, extended the play with his legs, and found Ray-Ray McCloud — who was the most active receiver of the day — uncovered in the front of the end zone for a score. It capped off a statement from the offense, letting the defense know they can compete against an elite unit.
Lance continues to overthrow his wideouts on deep passes. Some are good misses where there is nowhere else to put the ball, while others don’t give the wideout a chance when he needs to. Overall, Lance played well, much like his surrounding parts.
Supporting cast steps up
McCloud played during the 2-minute drill instead of Jennings, which was new. McCloud is far more sudden, which allows the offense to run more routes with him. Jennings tends to run yards under ten yards. McCloud’s speed opens the field, giving the other playmakers more space.
McCloud had a hand full of receptions on the day, with the majority of them coming at the intermediate level between 10-15 yards. McCloud looked a lot like Trent Sherfield in training camp last year the way he stole the show from the Niners’ more prominent receivers.
For the second day in a row, Ty Davis-Price made a name for himself. TDP took a carry with the second team, made one cut to get upfield, and wound up running over safety George Odum.
That was enough to impress the coaches and allow Davis-Price reps with the starters. On the next series, TDP ran with the first team exclusively. He broke a tackle in the backfield. The rookie running back stacked good practices back-to-back and is making a strong argument for carries during the season.
Action in the slot
Rookie Samuel Womack broke up a pass in the slot. McCloud did most of his damage from the slot. Womack sniffed out a screen, beat a block, and made a tackle for loss from the slot.
For as much action as there was in the slot, the Lance to Kittle connection caught my eye. Lance hasn’t relied on his star tight end often during camp. His clear-cut WR1 is Brandon Aiyuk.
It’s as if Kyle Shanahan realized he could throw slot fades to Kittle for easy completions. We’ve seen more and more of those types of concepts at practice, but Saturday was the most slot fades I’ve seen this team run in ages. Kittle’s an impossible cover, as he’s too fast for linebackers and too big for defensive backs.
Moore speed at safety
One change on the defensive side saw Tarvarius Moore run with the starters, while Talanoa Hufanga ran with the 2s for all but one series.
Moore’s athleticism makes a difference, as he can get to throws Hufanga can’t. That’s a battle that appeared Hufanga had already won, but today’s change is a clear-cut sign it’s not.
Tarvarius didn’t make any eye-popping plays, but the offense also didn’t do much his way when he was on the field. The difference in man coverage between the two is apparent as Moore can hold his own.
Odds and ends
The offensive line provided plenty of running lanes for the running backs on Saturday. They continue to get better the more they play. There was one run to the right where both Mike McGlinchey and Kittle were the key cogs to a big play. The duo moved Drake Jackson.
Speaking of the right side of the line, during 1-on-1 drills, Spencer Burford proved why he’s a starter. He beat every defensive lineman the 49ers threw at him. The only hiccup of the day for Burford came on Lance’s lone incompletion during the two-minute drill, where he let a defender cross his face and into the backfield.
Aaron Banks didn’t have the same luck against Javon Kinlaw. But you don't have to be perfect when you’re playing next to Trent Williams.