The Good and Not So Good from Day 14 of Training Camp: Trey Lance is Near Perfect

In this story:
SANTA CLARA -- Here's who stood out on Day 14 of 49ers training camp. Keep in mind, the following players are injured and did not practice: Jimmie Ward, Charvarius Ward, Emmanuel Moseley, Arik Armstead, Mike McGlinchey, Daniel Brunskill, Elijah Mitchell, Danny Gray, Jaylon Moore, Dontae Johnson and Curtis Robinson.
THE GOOD
1. Quarterback Trey Lance
Completed 11 of 14 pass attempts against a defense that was missing three-quarters of its starting secondary, which explains Lance's struggles early in camp. He's not necessarily inaccurate -- he was on point today. His top receivers -- George Kittle, Deebo Samuel and Brandon Aiyuk -- simply have struggled to get open against Moseley and the two Wards. With those three injured, everything is now available to Lance. His best pass today was a 20-yard missile up the seam to Kyle Juszczyk. Lance's only misses were an overthrown deep pass to Deebo Samuel, a well-thrown deep out to Willie Snead who couldn't get his second foot in bounds, plus the daily drop by Jauan Jennings (more on him in a minute). Lance appeared to throw with a higher arm slot today, so his passes didn't sail high. Keep it up, Trey.
2. Wide receiver Deebo Samuel
Made a spinning one-handed catch with his left hand on a pass Lance threw behind him on 3rd and 6. Samuel makes extremely impressive catches for a receiver who drops so many passes.
3. Running back Jeff Wilson Jr.
Split first-string reps with Trey Sermon and completely outperformed him. Wilson Jr. was explosive and decisive, while Sermon was slow and hesitant. It's amazing the 49ers have spent third-round picks on running backs two years in a row and neither of them are better than Wilson Jr.
4. Left tackle Justin Skule
Skule had a horrific start to a camp and first preseason game, because he's coming off a torn ACL. So either he's washed up or rusty. Today, he won both of his reps during 1 on 1s -- he beat Samson Ebukam, who's having an excellent camp, and Kemoko Turay (more on him in a minute). Skule appears to be improving, which could mean his struggles were mostly rust.
5. Right tackle Alfredo Gutierrez
Beat Drake Jackson and planted him on the ground face-first during 1 on 1s. Gutierrez never won in this drill last year. He has improved so much since then.
6. Right guard Nick Zakelj
Beat Kerry Hyder and Robert Nkemdiche during 1 on 1s. Zakelj is a rookie who was awful the first two weeks of camp, but has improved steadily. Give him credit.
6. Right tackle Colton McKivitz
He's the new starting right tackle while Mike McGlinchey is injured. Today, McKivitz beat both Nick Bosa and Jordan Willis during 1 on 1s. Impressive for a player the 49ers cut just last year.
8. Right tackle Jordan Mills
The only player who could block Charles Omenihu (more on him in a minute). The 49ers have elevated Mills to second-string right tackle now that McGlinchey is injured, which means Mills could make the 53-man roster.
9. Defensive end Charles Omenihu
Beat both starting guards -- Aaron Banks and Spencer Burford -- during 1 on 1s. The 49ers are looking for an interior rusher who can replace Arden Key on third downs, and it appears Omenihu will win that job.
THE NOT SO GOOD
1. Wide receiver Jauan Jennings
Dropped a pass again. He's having an awful training camp. To be fair, Kendrick Bourne used to drop a dozen passes every year in camp and then play well during the regular season. Maybe Jennings is the same way.
2. Guard Aaron Banks
Got bullied by someone named Kevin Atkins during 1 on 1s. I'm quite curious to see what will happen when Banks faces starting defensive tackles in the regular season, because he can't block backups in practice.
3. Defensive end Kemoko Turay
He's a terrific athlete, but he doesn't bend well, which means he's not particularly effective as an edge rusher. He either gets pushed behind the quarterback or he does a spin move to the inside. Today, he tried the spin move against Trent Williams and Justin Skule and got nowhere both times. Turay has been one of the biggest disappointments of camp so far.
4. Safety George Odum
Gave up a 10-yard catch on 3rd and 5. Also gave up a 15-yard catch on 2nd and 13. In both cases, Odum was nowhere near the ball. He was backpedaling rather than breaking on passes right in front of him. He has an opportunity to start at free safety now that Jimmie Ward is out for roughly a month with a hamstring injury, but as of now it seems the 49ers will go with Tarvarius Moore.

Grant Cohn has covered the San Francisco 49ers daily since 2011. He spent the first nine years of his career with the Santa Rosa Press Democrat where he wrote the Inside the 49ers blog and covered famous coaches and athletes such as Jim Harbaugh, Colin Kaepernick and Patrick Willis. In 2012, Inside the 49ers won Sports Blog of the Year from the Peninsula Press Club. In 2020, Cohn joined FanNation and began writing All49ers. In addition, he created a YouTube channel which has become the go-to place on YouTube to consume 49ers content. Cohn's channel typically generates roughly 3.5 million viewers per month, while the 49ers' official YouTube channel generates roughly 1.5 million viewers per month. Cohn live streams almost every day and posts videos hourly during the football season. Cohn is committed to asking the questions that 49ers fans want answered, and providing the most honest and interactive coverage in the country. His loyalty is to the reader and the viewer, not the team or any player or coach. Cohn is a new-age multimedia journalist with an old-school mentality, because his father is Lowell Cohn, the legendary sports columnist for the San Francisco Chronicle from 1979 to 1993. The two have a live podcast every Tuesday. Grant Cohn grew up in Oakland and studied English Literature at UCLA from 2006 to 2010. He currently lives in Oakland with his wife.
Follow grantcohn