All 49ers

The Good and Not So Good from 49ers Camp: Purdy Throws Two Picks

Good day for Mykel Williams, not so good for Brock Purdy.
Jun 11, 2025; Santa Clara, CA, USA; San Francisco 49ers quarterback Brock Purdy (13) watches Tanner Mordecai (14) throw a pass during a team OTA at Levi's Stadium. Mandatory Credit: D. Ross Cameron-Imagn Images
Jun 11, 2025; Santa Clara, CA, USA; San Francisco 49ers quarterback Brock Purdy (13) watches Tanner Mordecai (14) throw a pass during a team OTA at Levi's Stadium. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

In this story:


SANTA CLARA -- The 49ers just finished Day 1 of training camp. One wide receiver decided not to hold out, another wide receiver pulled his hamstring, the franchise quarterback threw two interceptions, and the rookie first-round pick made a strong first impression.

Here are the players who stood out.

THE GOOD

San Francisco 49ers wide receiver Jauan Jennings (15) jogs during training camp at the SAP Performance Facility.
Jul 29, 2022; Santa Clara, CA, USA; San Francisco 49ers wide receiver Jauan Jennings (15) jogs during training camp at the SAP Performance Facility near Levi Stadium. Mandatory Credit: Stan Szeto-Imagn Images | Stan Szeto-Imagn Images

1. WR Jauan Jennings.

Did not hold out or in. Showed up to practice and was a full participant. Even caught three passes during team drills. Also hugged Kyle Shanahan and John Lynch before practice and seemed genuinely happy to see them. I interpret this to mean that Jennings feels confident that the 49ers will take care of him before the season starts, either with an extension or a raise. So there's no reason to start drama. We'll see if I'm right. I'd hate to think that Jennings gave in despite having all the leverage.

San Francisco 49ers defensive lineman Mikel Williams (98) cools off during a water break from the teamís rookie minicamp.
May 9, 2025; Santa Clara, CA, USA; San Francisco 49ers defensive lineman Mikel Williams (98) cools off during a water break from the teamís rookie minicamp. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

2. DE Mykel Williams.

Lined up at left defensive tackle on third and long during team drills and effortlessly beat Dominick Puni before "sacking" Brock Purdy. Williams didn't actually touch Purdy -- he simply ran right by him. If you weren't staring at Williams the entire play, you would have missed it. He won his matchup almost instantly, and he beat one of the best players on the team. This guy is going to be special.

San Francisco 49ers linebacker Dee Winters (53) against the Arizona Cardinals at State Farm Stadium.
Jan 5, 2025; Glendale, Arizona, USA; San Francisco 49ers linebacker Dee Winters (53) against the Arizona Cardinals at State Farm Stadium. Mandatory Credit: Mark J. Rebilas-Imagn Images | Mark J. Rebilas-Imagn Images

3. LB Dee Winters.

Intercepted Brock Purdy (more on him in a minute) and returned the pick for a touchdown. Winters was playing the flat in zone coverage, he read Purdy's eyes and broke early on the pass. Winters clearly is outstanding in pass coverage when he knows a pass is coming. We'll see how he performs against runs and play-action passes.

NFL New York Giants safety Jason Pinnock
NFL New York Giants safety Jason Pinnock | Kyle Terada-Imagn Images

4. FS Jason Pinnock.

Also intercepted Brock Purdy (I'll get to him, don't you worry). On this play, Purdy heaved a pop fly that Pinnock dove for and caught. Pinnock is the 49ers' best healthy safety and it's not close.

San Francisco 49ers running back Jordan James (29) catches a pass during a team OTA at Levi's Stadium.
Jun 11, 2025; Santa Clara, CA, USA; San Francisco 49ers running back Jordan James (29) catches a pass during a team OTA at Levi's Stadium. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

5. RB Jordan James

He's extremely quick and he's a good receiver. He caught two passes during team drills and strung together multiple cuts every time he touched the ball. Which means he's not just a one-cut runner like Isaac Guerendo. James has the potential to be a starter for the 49ers when Christian McCaffrey is out.

THE NOT SO GOOD

San Francisco 49ers quarterback Brock Purdy (13) works on passing drills during the first day of training camp at SAP Perform
Jul 23, 2025; Santa Clara, CA, USA; San Francisco 49ers quarterback Brock Purdy (13) works on passing drills during the first day of training camp at SAP Performance Facility. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

1. QB Brock Purdy.

Threw two interceptions and no touchdown passes. To be fair, he never played in the red zone, so he didn't have many opportunities to throw touchdown passes. Still, the interceptions were his fault. On the first one, a deep pass squirted out of his hand and was extremely underthrown before it got intercepted by the free safety. Maybe Purdy's hand was clammy. On the second interception, Purdy forced a pass to his first read and got picked off by Dee Winters, who was 10 yards away from him. Purdy simply isn't the same quarterback when Christian McCaffrey and Trent Williams aren't on the field. When they play, Purdy is calm and takes what the defense gives him. When they don't play, he forces passes and makes mistakes. That's why his interception percentage has gone up every year of his career. Today, Williams and McCaffrey warmed up and went through positional drills but did not compete during 11-on-11 team drills.

San Francisco 49ers wide receiver Jacob Cowing (19) hauls in a pass during the first day of training camp at SAP Performance
Jul 23, 2025; Santa Clara, CA, USA; San Francisco 49ers wide receiver Jacob Cowing (19) hauls in a pass during the first day of training camp at SAP Performance Facility. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

2. WR Jacob Cowing.

Pulled his hamstring during the first 30 minutes of practice and did not return. Cowing was having a terrific offseason, but hamstring injuries usually take at least three weeks to heal, which means he could miss most of training camp. The 49ers' wide receiver room is in shambles.

San Francisco 49ers safety Ji'Ayir Brown (27) against the Arizona Cardinals at State Farm Stadium.
Jan 5, 2025; Glendale, Arizona, USA; San Francisco 49ers safety Ji'Ayir Brown (27) against the Arizona Cardinals at State Farm Stadium. Mandatory Credit: Mark J. Rebilas-Imagn Images | Mark J. Rebilas-Imagn Images

3. SS Ji'Ayir Brown.

Gave up a 30-yard catch to George Kittle on the first play of practice. Afterward, Kittle said that Deommodore Lenoir was the one who busted the coverage, and that probably is true. Still, Brown was the last line of defense and was painfully slow to react. He's just slow in general. When Malik Mustapha returns, Brown should go to the bench.

NFL San Francisco 49ers cornerback Renardo Green
NFL San Francisco 49ers cornerback Renardo Green | Kelley L Cox-Imagn Images

4. CB Renardo Green.

Got flagged for a pass-interference penalty against Jauan Jennings, then blew a coverage while playing zone and gave up a 20-yard catch to Demarcus Robinson. Green seems to be having a tough time now that the 49ers are counting on him to start.

San Francisco 49ers wide receiver Equanimeous St. Brown (7) makes a leaping catch during passing drills on the first day.
Jul 23, 2025; Santa Clara, CA, USA; San Francisco 49ers wide receiver Equanimeous St. Brown (7) makes a leaping catch during passing drills on the first day of training camp at SAP Performance Facility. Mandatory Credit: D. Ross Cameron-Imagn Images | D. Ross Cameron-Imagn Images

5. WR Equanimeous St. Brown.

Got one target and dropped it. He was running a go route up the right sideline, Mac Jones threw him the ball, St. Brown jumped too soon and the ball bounced off his hands as he landed on the ground. Not a pretty play.

San Francisco 49ers place kicker Jake Moody (4) reacts after missing a field goal in the first half.
Jan 5, 2025; Glendale, Arizona, USA; San Francisco 49ers place kicker Jake Moody (4) reacts after missing a field goal in the first half against the Arizona Cardinals at State Farm Stadium. Mandatory Credit: Matt Kartozian-Imagn Images | Matt Kartozian-Imagn Images

6. K Jake Moody.

Made all five of his field-goal attempts, which is bad news because now the 49ers are going to talk themselves into keeping him based on a few kicks in practice when there's no pressure, and he's going to break their heart as soon as the season starts. I can feel it.

THE MAJOR TAKEAWAYS

1. The 49ers have a hamstring issue. First, Ricky Pearsall injured his hamstring during Phase 1 of the offseason program, before practices even started. Now, Cowing injured his hamstring less than a half an hour into the first practice of training camp. Clearly, some of these players are warming up properly. Unfortunately for the 49ers, hamstring injuries tend to linger.

2. The pass rush looks extremely promising. It's not just Nick Bosa anymore -- it's Bosa and Mykel Williams and Bryce Huff. That's a formidable trio.

3. Purdy needs to start making fewer mistakes in practice. He's entering his fourth season in the league, he's the highest-paid player in franchise history and he's coming off a season in which he threw 12 interceptions in 15 games. They say you practice like you play.

Read more


Published | Modified
Grant Cohn
GRANT COHN

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.

Share on XFollow grantcohn