SANTA CLARA -- Here's who stood out on Day 11 of 49ers training camp. Keep in mind, the 49ers wore pads, and all 11 starters on offense practiced while the defense sat Emmanuel Moseley for the entire practice and Charvarius Ward for most of the practice, which means the offense dominated.
1. Quarterback Trey Lance
Had by far his best practice of camp. Completed 13 of 17 passes, threw no interceptions and scored three touchdowns: a 10-yard touchdown pass to Deebo Samuel, a 10-yard touchdown scramble and a 65-yard touchdown run on a zone-read play. On the long touchdown, Lance kept gaining speed like a boulder rolling downhill -- no one could catch him. He's faster than he showed last year during the regular season. Today, he had scrambles that went for 8 yards, 9 yards and 10 yards, and he also had quarterback-designed runs that went for negative 2 yards, 5 yards and 65 yards. He's an extremely dangerous runner, and he's an underrated passer, too. His best throw of the day came on 3rd and 22, when he stepped up in the pocket, scrambled to his right, stopped and calmly fired across the middle to Brandon Aiyuk for 25 yards. That's the kind of play Jimmy Garoppolo never would even attempt. Kyle Shanahan probably would call a screen pass for Garoppolo on 3rd and 22, but not for Lance. Shanahan trusts him to make a play. Lance's worst throw was on 4th and goal from the 1. Shanahan called Sprint Right Option, and Jauan Jennings was open running to the pylon, but Lance threw the ball slightly behind him and Samuel Womack broke it up. Had Lance thrown it slightly ahead of Jennings, it probably would have been a touchdown catch. So he wasn't perfect, but he had the best practice a 49ers quarterback has had in years.
2. Wide receiver Deebo Samuel
Caught two passes from Lance -- a 10-yard touchdown in the red zone and a 15-yard catch near the sideline off play action. They're finally developing the chemistry they couldn't develop when Samuel wasn't practicing.
3. Wide receiver Jauan Jennings
Dropped a pass, which is his daily routine, but made up for this mistake by making an 11-yard catch on 2nd and 2, as well as a 25-yard catch on 3rd and 7. This morning, Kyle Shanahan said Jennings is a late starter. I see what he means. Jennings was terrible last week, but he was excellent today.
4. Running back Elijah Mitchell
Caught a checkdown pass that Lance fired a few feet over his head. Mitchell jumped, extended and made one hell of a grab. Lance tends to throw the checkdown passes a bit high, so it's important that Mitchell can make this catch.
5. Running back Jeff Wilson Jr.
Had another long run between the tackles -- something he does every day. He clearly is the second-best running back on the team after Mitchell.
6. Running back Jordan Mason
Had a 25-yard run between the tackles while playing with the second-string offense. It's hard to judge running backs in camp when there's no tackling, but Mason has been the third-best running back in practice after Mitchell and Wilson.
7. Offensive tackle Jordan Mills
Won all of his reps yet again during 1-on-1 pass-rush drills. Mills has been on the team just a few days and already looks like the best backup offensive tackle on the roster, plus he's a better 1-on-1 pass protector than Mike McGlinchey.
8. Defensive tackle Javon Kinlaw
Took two reps during 1 on 1s and twice beat Aaron Banks (more on him in a minute). Both times, Kinlaw got underneath Banks' pads and pushed him into the quarterback's lap. Then during 11 on 11s, Kinlaw knocked Banks to the ground and stuffed running back Ty Davis-Price at the line of scrimmage. Kinlaw is looking more and more like a young Arik Armstead as camp progresses.
9. Defensive end Drake Jackson
Broke Colton McKivitz's ankles with an inside move during 1 on 1s. McKivitz fell to the ground and all the defensive linemen laughed. Jackson appears to be a better edge rusher than an interior rusher at this time.
10. Defensive end Alex Barrett
Won all of his reps yet again during 1 on 1s, which is amazing because he's a defensive end taking all of his reps at defensive tackle, and no one can block him. Literally no one. Look for Barrett to make the 53-man roster.
THE NOT SO GOOD
1. Quarterback Brock Purdy
Threw the most pathetic 40-yard completion I've ever seen. Malik Turner was wide open running down the right sideline -- think Kyle Juszczyk streaking downfield wide open in Tennessee last season. Purdy took a few beats to spot him. Then Purdy got everything he had into a long throw, which fluttered and died. Turner had to stop and wait for the ball to get to him, but it did after what felt like seven seconds. He looked like he was waiting for a bus.
2. Wide receiver Danny Gray
Tried to catch a third-down pass with his chest and dropped it. Gray really should use his hands instead.
3. All the backup tight ends
None of them have the potential to become starters one day. They're all slow backups, which means George Kittle has to play most of the snaps during the regular season, which leads to injuries for him. Too bad the 49ers haven't tried to acquire a young, talented player at this position.
4. Guard Aaron Banks
He's the weakest big offensive lineman I've ever seen. He looks like Mike Iupati, but he plays like Mike Person, in the sense that he can't hold his ground against anyone. He can get his hands on a defensive lineman, but can't anchor, which is a major problem. Rookies Spencer Burford and Jason Poe both anchor better than Banks right now.
5. Guard Nick Zakelj.
Terrible in pass protection. Might be the worst player on the team. Probably will get cut and placed on the practice squad.
6. Center Daniel Brunskill
Lost all of his reps during 1 on 1s. Brunskill seems to have regressed. Jake Brendel is clearly the better option at center.
7. Offensive tackle Justin Skule
Lost all of his reps during 1 on 1s. Couldn't even get his hands on defensive linemen to block them. Lost instantly a few times. Probably won't make the team.
8. Cornerback Ambry Thomas
Almost broke up a pass, but gave up a touchdown catch instead.
9. Cornerback Emmanuel Moseley.
Sat out his second straight practice with an undisclosed injury. The 49ers will be in trouble if he misses time.