Here's who stood out during the 49ers 19-16 preseason loss to the Kansas City Chiefs. Keep in mind, most of the starters didn't play, and the ones who did didn't play long.
1. Quarterback Trey Lance.
Completed just 5 of 14 pass attempts, but three of his throws were dropped, and two of his completions were screen passes to Jauan Jennings that were ruled backward passes, which technically are runs. So Lance really should have been 10 of 16 (62.5 percent). Which means he played well. He threw an 80-yard touchdown pass that Jimmy Garoppolo couldn't throw in his dreams -- that was when Lance was playing with some of the starters. But then the 49ers took out those starters, and so Lance got sacked four times in the first half. Not good. He also fumbled once and threw two passes the Chiefs defenders dropped. Also not good. But he never scrambled, rolled out or ran a designed run, which means the 49ers didn't get to evaluate him doing the things he'll do when he plays in the regular season. Wasted opportunity, but not his fault. He'll play much better when the 49ers let him do all the things they make him do in practice.
2. Quarterback Jimmy Garoppolo.
Completed all three of his passes, which is good. But those throws traveled a combined four yards past the line of scrimmage, which is par for the course for Garoppolo. And on third and 15, he checked down to a running back, which shows you Garoppolo is ready to be a backup again. He's a natural backup, the best one in the NFL.
3. Safety Talanoa Hufanga.
Started at free safety in place of Jimmie Ward, who had the night off, and made a key tackle to force the Chiefs to punt. Hufanga is a playmaker who probably will start alongside Ward by the end of the season.
4. Running back JaMycal Hasty.
Finished with 10 carries for 63 yards, one touchdown and one fumble. The fumble was bad, but fumblitis is correctable -- Raheem Mostert and Jeff Wilson Jr. cured their fumbilitis. Hasty can as well. He currently is the second-most explosive back on the roster after Mostert, and should make the team.
5. Wide receiver Trent Sherfield.
Caught an 80-yard touchdown pass from Lance. The 49ers need to find a role in the offense for Sherfield. He might be their third-best receiver.
6. Wide receiver Jauan Jennings.
Had 49 total yards in the game, and showed good hand-eye coordination and the ability to run through tackles after the catch. He just might make the team over Richie James Jr., who can't catch anything. More on James below.
7. Wide receiver Nsimba Webster.
Had a 34-yard end around and a 43-yard kick return. He looks like one of the most explosive players on the team. The 49ers need to find a way to keep him.
8. Linebacker Justin Hilliard.
Recorded a team-high eight tackles. Might make the team, although he probably won't start, because the 49ers just signed Mycal Kendricks.
9. Cornerback Deommodore Lenoir.
Started at cornerback because Jason Verrett and Emmanuel Moseley had the night off, and intercepted a pass. The 49ers seem higher on Lenoir than the other rookie cornerback, Ambry Thomas, who did not start and did not intercept any passes.
10. Defensive end Alex Barrett.
Recorded a sack during the second half. Probably will make the practice squad.
THE NOT SO GOOD
1. Head coach Kyle Shanahan.
Chose not to feature the full spectrum of Lance's talent. Called plays like Mac Jones was the quarterback. Forced Lance to stay in the pocket behind a terrible offensive line and throw passes to receivers who couldn't get open. So Lance took a beating. Is that what Shanahan wanted? After the game, I asked him why he didn't use Lance's legs more. "Because that's what we wanted to do," he said. Oh. Maybe he should want to do something smarter next time. Just a thought.
2. Right guard Daniel Brunskill.
Gave up a sack. Not a starting-caliber offensive lineman. Needs to get replaced.
3. Right guard Aaron Banks.
Gave up a sack and left the game with a shoulder injury. Doesn't seem like he can replace Brunskill any time soon.
4. Left guard Colton McKivitz.
Also gave up a sack. Also not as good as Brunskill.
5. Left tackle Jaylon Moore.
Also gave up a sack. Moore is the 49ers' swing tackle, and he's not good. Scary thought.
6. Left tackle Shon Coleman.
Also gave up a sack. The 49ers backup offensive linemen are attrocious.
7. Running back Trey Sermon.
Averaged a measly 2.9 yards per carry and fumbled. He should play better when the 49ers have Trent Williams and Alex Mack, but this was a bad start for Sermon.
8. Wide receiver Richie James Jr.
Dropped a pass from Lance, which is what James has been doing all offseason. It almost seems like James wants the 49ers to cut him, and I'm guessing they'll grant him his wish. They don't need him.
9. Cornerback B.W. Webb.
Gave up a touchdown catch to Byron Pringle while playing nickelback. Webb currently is the 49ers backup nickelback, but he's no good. Which means the 49ers don't have a backup nickelback. They should probaby find one.
10. Quarterback Josh Rosen.
Completed 10 of 15 passes, but also threw an interception. When he spoke after the game, he practically whispered his answers. He sounded depressed. I feel so bad for him. I hope he gets a legitimate chance to turn his career around.