The San Francisco 49ers held their second practice of training camp on Monday. Once again, the session was open to fans.
As he did on Sunday, head coach Kyle Shanahan observed team drills with general manager John Lynch. Shanahan is recovering from injuries suffered during a recent car accident. Assistant head coach and offensive line coach Chris Foerster has assumed the interim head coach role.
While Shanahan watched for 30 minutes on Sunday, he observed a bit longer on Monday—probably about 45 minutes. Shanahan even showed an ability to move out of the way quickly when quarterback Brock Purdy threw a deep pass to wide receiver Mike Evans, which headed toward the coach.
"I saw it after. I was like, 'Dang, I almost hit Kyle,'" Purdy said. "But I was mad we couldn't complete the throw. But yeah, heads up, Coach."
Below are some of the key takeaways from the 10:10 a.m. PT practice at the SAP Performance Facility, compiled from multiple media reports.
Noteworthy non-participants
These are the players who did not practice and are not on an injury list.
- DL Andrew Farmer (back)
- DT Gracen Halton (knee bone bruise)
- WR Christian Kirk (calf strain)
- OT Vederian Lowe (high-ankle sprain)
Farmer, Halton, Kirk, and Lowe all sustained their injuries during Sunday's practice. Lowe is expected to miss considerable time. Halton and Kirk could also miss some time.
Injury updates
Rookie defensive end Romello Height, a third-round pick selected to help bolster the 49ers' pass rush, went down during practice and was carted off the field. The good news is that Height avoided a more serious injury, with the 49ers announcing that the rookie was dealing with cramps.
RELATED Romello Height avoids serious injury after being carted off the practice field
"A guy with a high capacity," defensive coordinator Raheem Morris said of Height. "Obviously a guy with great energy. He brings a lot of juice to us and brings some things to us that we needed, that we went out and got in the draft. Really pleased with what he's done so far."
Second-year defensive end Mykel Williams, who is working his way back from an ACL injury, was spotted getting some light work in on the side during practice.
Unavailable players
Physically unable to perform (PUP)
- DT Alfred Collins (shoulder)
- RB Isaac Guerendo (pectoral)
- TE George Kittle (Achilles)
- DE Mykel Williams (ACL)
Injured reserve (IR)
- S Darrick Forrest
Reserve/left squad
Offensive notes
Brock Purdy is excited about wide receiver Mike Evans' potential impact on the 49ers' offense. The quarterback shared what it's been like building chemistry with the veteran player.
"It's been great," Purdy said. "We've slowly gotten on the same page over time, from OTAs, summer we got together a little bit, and then, obviously, the first couple days here, it's been really, really fun. Just what he brings to the table in terms of his size and speed and his catching radius, how smart he is with just football in general. So, for me, it's been really fun.
"I'm still getting used to him and everything, but being out there, and just giving him a chance, and watching him come down with it has been awesome. I grew up watching him and stuff, and to now be able to throw to him and be on the same team and compete together, for sure, I pinch myself, and I'm like, this is surreal for me."
Purdy's best throw of the day may have been to Evans down the middle, which came following an interception to safety Ji'Ayir Brown (more on that below).
Rookie wide receiver De'Zhaun Stribling continues to impress, hauling in four passes during team drills. Quarterback Mac Jones connected with the first-year wideout for a touchdown, with Stribling beating cornerback Darrell Luter Jr. on the play. The rookie has displayed a knack for consistently making plays and securing the football throughout training camp.
"Quick out of cuts, strong and has caught everything first two practices," Vic Tafur of The Athletic.
Stribling also hauled in a sideline pass from Purdy, as the two continue to build chemistry. Purdy praised Stribling on Monday morning.
"Dude is a baller, and I mean that," Purdy said during a radio interview. "It's hard to say that for a rookie, right off the jump, but just seeing him run routes, going up against defenders in OTAs and then in camp yesterday. He's a great route runner. He's smart. He's learned the playbook really quick, which is awesome."
RELATED Brock Purdy raves about De'Zhaun Stribling as the rookie returns the praise
Running back Christian McCaffrey has also impressed early in training camp.
"Christian McCaffrey also a too-obvious standout," Tafur wrote. "Had four of Niners' first six plays in scrimmage and exploded into secondary on runs and catches. Would have absolutely trucked a starting DB — who we'll leave nameless because we come in peace — if they had pads on."
Running back Jordan James was involved early in the first-team period but did not receive a single rep during the second-team period. The 49ers also appear to be increasing rookie running back Kaelon Black's practice reps, though that may have been related to James not participating late in the session. Black has been having a nice camp so far, showing plenty of burst in his limited opportunities. We'll see if he can secure the backup job behind McCaffrey.
Practice concluded with second-year quarterback Kurtis Rourke hitting wide receiver Junior Bergen for a deep completion, and then a shorter one to wide receiver Malik Turner.
Defensive notes
Defensive end Nick Bosa continues to be limited during practices as he works his way back from an ACL injury. Bosa is participating in individual drills but remains sidelined during team drills.
Cornerback Deommodore Lenoir said having Bosa back on the field is a major boost for the 49ers' defense.
"He's one of the best players in the NFL, so to have him back on the defense, creating pressure, and just being him, it's a big help to us," Lenoir said.
Linebacker Fred Warner continues to impress as he returns from the serious ankle injury he suffered last season.
"Fred Warner has been making a lot of plays [in the] first two days — and even made tweeting gestures to reporters after blowing up a run play and screen pass today," Tafur wrote.
Malik Mustapha and Ji'Ayir Brown opened team drills as the starting safeties. Brown is working to hold off the competition for the starting job and made a big play on Monday. During team drills, Brown stretched out to intercept Purdy, who was attempting to fit a pass into a tight window for wide receiver Jacob Cowing.
Marques Sigle got some reps in place of Mustapha.
Cornerback Renardo Green had an impressive leaping pass breakup on a Purdy pass intended for Cowing.
"He made a big-time play today," Morris said of Green. "He's shown up in a big way. He showed up at OTAs. He's exciting. He's got great length, he's got great ball skills, he's got all the ability in the world."
Lenoir told reporters that Green is playing with more confidence this offseason and expects the young cornerback to take a significant step forward in 2026.
Cornerback Eli Apple recorded a pick-six off Rourke on a pass intended for Bergen. Cornerback Jack Jones broke up a pass intended for Stribling. Jones, a former full-time starter elsewhere, is competing for the starting cornerback job currently held by Green.
Darrell Luter Jr. also recorded a nice pass breakup on a Purdy pass intended for Evans.
Next practice
The 49ers will return to the practice field on Tuesday, July 28. However, that session will be a jog-through, and the media will not have access.
The next media-accessible practice will take place on Wednesday, July 29, at 10:10 a.m. PT. That session will not be open to fans.
Social media: 49ers practice updates
#49ers Nick Bosa and Osa Odighizuwa attacking the sleds 😤
Via: @jesuszarate87 pic.twitter.com/H9z3OA54ya
— OurSF49ers (@OurSf49ers) July 27, 2026
#49ers George Kittle looking good before training camp begins today 👀 pic.twitter.com/nSDrIXLkBH
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2026
49ers interim Head Coach Chris Foerster getting extra coaching time with rookies Willis Carver & Enrique Cruz Jr pic.twitter.com/ILea6TYK6T
— Brad (@Graham_SFN) July 27, 2026
#49ers RB Jordan James working on his pass catching before practice
James is the early favorite for RB2 duties behind Christian McCaffrey pic.twitter.com/zgfJLVMxJs
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2026
Flippin' into the #49ers rookie hype machine 😤 pic.twitter.com/LcX5xOgscf
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2026
#49ers QB 1 Brock Purdy getting locked in at Day 2 of training camp 🔥 pic.twitter.com/4kM7lqAWoZ
— OurSF49ers (@OurSf49ers) July 27, 2026
#49ers Mike Evans just gets straight to work, a true professional 👏 pic.twitter.com/k5OWhRW2FB
— OurSF49ers (@OurSf49ers) July 27, 2026
#49ers rookie WR De'Zhaun Stribling showcasing his speed working gunner drills pic.twitter.com/qOhphhBDUx
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2026
#49ers Dre Greenlaw putting in work on Day 2 of training camp 😤 pic.twitter.com/6nU61vEfdh
— OurSF49ers (@OurSf49ers) July 27, 2026
#49ers Fred Warner leads the way during LB drills 🔥 pic.twitter.com/0rdJdYYljO
— OurSF49ers (@OurSf49ers) July 27, 2026
#49ers Fred Warner leading the LB's through individual drills pic.twitter.com/RuHJ6w2pDA
— ???????????????????????????????????????????? (@TheSFNiners) July 27, 2026
Chris Foerster and Klay Kubiak: Two important guys for the #49ers in Kyle Shanahan's absence pic.twitter.com/lhCzbNK8Zd
— Matt Lively (@mattblively) July 27, 2026
Raheem Morris going through his first Training Camp with the #49ers as their new defensive coordinator pic.twitter.com/7JENjO3iT6
— Matt Lively (@mattblively) July 27, 2026
#49ers QB1 Brock Purdy pic.twitter.com/msGWdsbNbT
— Matt Lively (@mattblively) July 27, 2026
Big question for the #49ers this year...will Christian McCaffrey have a lighter workload? He was second in NFL in carries with 311. pic.twitter.com/U7ifn6Ricu
— Matt Lively (@mattblively) July 27, 2026
49ers rookie WR De'Zhaun Stribling
— 95.7 The Game (@957thegame) July 27, 2026
looks nice 👀🔥 pic.twitter.com/pSHo3ripfH
Brock Purdy putting in work at Day 2 of training camp 💪 pic.twitter.com/sCcqpuKPHW
— 95.7 The Game (@957thegame) July 27, 2026
Fred Warner vibin while leading the LB's during individual drills 😎 pic.twitter.com/fktHvSTz8T
— 95.7 The Game (@957thegame) July 27, 2026
Still here this season for the #49ers?
The substation pic.twitter.com/BsEa1EDGxx
— Matt Lively (@mattblively) July 27, 2026
85 wants to be out there so bad 😭 pic.twitter.com/UfZ40RAOEU
— 49ers on NBCS (@NBCS49ers) July 27, 2026
Comments