The San Francisco 49ers held their seventh training camp practice on Thursday following a scheduled rest day. They made several roster additions ahead of practice, signing RB Ameer Abdullah, QB Carter Bradley, WR Marquez Callaway, and WR Andy Isabella. Notably, Bradley is the son of assistant head coach Gus Bradley.
A few new names and faces to the squad. pic.twitter.com/YR1CQCA8dK
— San Francisco 49ers (@49ers) July 31, 2025
Here are some key highlights from the 10:25 a.m. PT practice at the SAP Performance Facility, compiled from multiple media reports.
Noteworthy non-participants
- DE Nick Bosa (rest)
- WR Jacob Cowing (hamstring)
- CB Renardo Green (hamstring)
- RB Jordan James (knee)
- WR Jauan Jennings (calf)
- FB Kyle Juszczyk (rest)
- CB Deommodore Lenoir (hip)
- RB Christian McCaffrey (rest)
- OT Trent Williams (rest)
After practice, head coach Kyle Shanahan noted that Lenoir is dealing with hip irritation and will miss this block of practices. James is dealing with a knee issue, while there is no timetable for Jennings' (calf) return.
RELATED Lenoir sidelined with hip irritation, no Jennings timeline, James nursing knee
WR Ricky Pearsall returned after a scheduled rest day Tuesday, while rookie DE Mykel Williams was back after missing one session with a minor ankle issue.
Unavailable players
Physically unable to perform (PUP)- WR Brandon Aiyuk (ACL/MCL)
- OL Andre Dillard (ankle)
- DE Yetur Gross-Matos (knee)
- S Malik Mustapha (ACL)
- LB Curtis Robinson (ACL)
- QB Kurtis Rourke (ACL)
Injured reserve (IR)
- DE Tarron Jackson (neck)
- WR Trent Taylor (back)
- CB Tre Tomlinson (undisclosed)
The 49ers activated OL Ben Bartch (quad) from the NFI list ahead of practice.
Quick notes
QB Brock Purdy continues to build chemistry with WR Ricky Pearsall, who is gradually easing back from a hamstring injury.
"We're just still trying to get Ricky back," head coach Kyle Shanahan said after practice. "We're easing him in. I think he had one practice back or two—just eight plays. Then he got one off. And then today, I think he got eight plays again. So we're easing him back in. It'll get there. We're just trying to make sure he can last throughout camp."
OL Ben Bartch immediately worked with the first-team offense at left guard in his first practice back. However, Shanahan confirmed that the starting spot remains up for grabs, with Nick Zakelj also in the mix.
"No, there's a competition. Yeah, definitely," Shanahan said. "One that we're excited to see. Bartch got his opportunity last year, played real good versus Buffalo. He was one of the guys that I was excited to evaluate those last three games of the year, but he got hurt on the third play of the game the next week, so we really didn't get a chance to do that.
"And then, he hurt his quad squatting when they were away, so real excited to get him back out there today. It's given Zakelj a lot more reps, which has been good for him, but we're excited to watch those two go at it."
Darrell Luter Jr., Dallis Flowers, and Upton Stout saw increased reps at cornerback with Deommodore Lenoir and Renardo Green still sidelined.
Rookie DT C.J. West briefly left team drills with a limp but returned and finished practice. He continues to shine during training camp.
Purdy connected with WR Demarcus Robinson on what looked like a 50-yard strike down the left sideline, beating Luter in coverage.
"Brock, when he gets the look and it's there, he rarely misses it," Shanahan said. "I've been happy with him. We've got a few opportunities, some we've come short on, but he had a real good one today, and he's had a few throughout camp."
Robinson continues to show consistency and reliability, building strong chemistry with Purdy.
On defense, LB Chazz Surratt recorded multiple would-be sacks on blitzes, while rookie LB Nick Martin forced a fumble from WR Junior Bergen and had a run stop on consecutive plays.
Penalties remained an issue for both offense and defense.
Quarterback play
According to The Athletic's Matt Barrows, Purdy completed all eight of his pass attempts. He was sacked once and lost a fumble (caused by rookie DE Mykel Williams), but also connected with Robinson on a deep shot. Mac Jones went 10-of-11, while Tanner Mordecai finished 5-of-5.
ESPN's Nick Wagoner noted that 49ers quarterbacks combined to complete all 22 passes when not under pressure—helped by the absence of starting cornerbacks Lenoir and Green.
Kicker competition
Kickers Jake Moody and Greg Joseph both went 4-of-4, connecting from 33, 37, 43, and 54 yards out. Moody's final attempt was close but appeared good to the reporters on hand.
Next practice
The 49ers will hold their next practice on Friday, August 1, at 10:25 a.m. PT.
Social media: 49ers practice updates
#49ers WR Andy Isabella making his training camp debut with the squad 👀 pic.twitter.com/erasrOkrXj
— OurSF49ers (@OurSf49ers) July 31, 2025
Newest Niner Ameer Abdullah getting punt return reps today. https://t.co/lKOKUpFYzL pic.twitter.com/1OL0uQZhRE
— KNBR (@KNBR) July 31, 2025
#49ers new QB Carter Bradley, son of new defensive assistant Gus Bradley pic.twitter.com/Pbxd3FOTlD
— OurSF49ers (@OurSf49ers) July 31, 2025
#49ers RB Patrick Taylor eludes The Ball for a nice gain. pic.twitter.com/QU2dWSKZBu
— Eric Branch (@Eric_Branch) July 31, 2025
New 49ers QB Carter Bradley throws to new WR Andy Isabella pic.twitter.com/QIvcfnUbKK
— David Lombardi (@LombardiHimself) July 31, 2025
Trent Williams, Nick Bosa and Christian McCaffrey were among those getting rest day's today, the #49ers' 3rd straight padded practice. I had Brock Purdy 8-8 (w/ a sack and a fumble, but also a deep-ball strike to Demarcus Robinson), Mac Jones at 10-11 and Tanner Mordecai at 5-5.
— Matt Barrows (@mattbarrows) July 31, 2025
Notes and observations from #49ers practice No. 7:
- It was a bit of a long practice for a "light" day coming out of an off day. The Niners went just shy of 90 minutes on a relatively warm day.
- CB Deommodore Lenoir did not practice again as he deals with what HC Kyle…
— Nick Wagoner (@nwagoner) July 31, 2025