Before practice, the 49ers announced two roster moves. They signed defensive tackle Michael Dwumfour to a one-year deal. To make room on the roster, the team released cornerback Eli Apple.
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
- DT Evan Anderson (knee bruise)
- S Ji'Ayir Brown (ankle)
- WR Jacob Cowing (hamstring)
- DT Jordan Elliott (back)
- DT Kevin Givens (pectoral)
- CB Renardo Green (hamstring)
- RB Isaac Guerendo (shoulder)
- RB Jordan James (broken finger)
- WR Jauan Jennings (calf)
- CB Fabian Moreau
- DE Sam Okuayinonu (groin)
- LB Chazz Surratt
FB Kyle Juszczyk returned after missing time with a cut on his heel.
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)
Non-football injury (NFI)
- QB Kurtis Rourke (ACL)
Injured reserve (IR)
- DE Tarron Jackson (neck)
- WR Trent Taylor (back)
- CB Tre Tomlinson (undisclosed)
Injury updates
Rookie DL Mykel Williams was shaken up during red-zone drills, favoring his left knee. Medical staff examined him. Williams was able to walk to the sideline and eventually left the practice area. After practice, head coach Kyle Shanahan told reporters Williams underwent a "good exam."
"Hopefully, just hyperextended his knee," Shanahan said. "So, we're gonna get a further evaluation now, but looked good when we examined him."
CB Darrell Luter Jr. and rookie S Marques Sigle were evaluated for concussions but cleared.
Quick notes
DE Nick Bosa returned to practice after missing the last three sessions due to soreness. ESPN's Nick Wagoner logged at least three would-be sacks for the veteran pass rusher during team drills.
"Bosa usually is pretty good, but I think he's still working to get to his top self," Shanahan said after practice. "He was a little sore earlier in the week. We took Monday off. I think he just did individual on Tuesday. So, this was the first day for him to get back there in about six days and really compete."
CB Upton Stout continued to shine during one-on-ones, this time, against a different team. He even came away with an interception.
DE Robert Beal Jr. and rookie DT Alfred Collins had some successful reps during one-on-one drills. Rookie DT Sebastian Valdez, nicknamed "The Hulk" by teammates, continues to impress, winning three of his four one-on-one reps.
Rookie DL Mykel Williams impressed before his injury, continuing to display solid pass-rushing skills as an interior lineman. He also recorded a would-be sack during team drills.
LT Trent Williams did not participate in team drills. Spencer Burford started in his place.
LB Dee Winters continues to showcase his versatility. He has been impressive in coverage and, against the Broncos, showed he can also be a threat as a pass rusher—blitzing to force an incompletion by QB Bo Nix. Winters nearly had an interception during two-minute drills.
Nix found success when targeting CB Darrell Luter Jr., and the 49ers' defensive backfield drew a fair number of flags during practice.
The Broncos' defense stymied the 49ers' offense during team drills. QB Brock Purdy and his playmakers struggled to get anything going. Purdy tossed two interceptions during seven-on-seven work—both while targeting Pearsall. Denver's pass rush racked up several would-be sacks against 49ers quarterbacks and tackles for loss against RB Christian McCaffrey and others.
"I think they came out ready to roll, to compete," Purdy said. "You could feel them. They were in the backfield a couple of times, and had a couple of sacks, and obviously, some TFLs (tackles for a loss), it looked like. So, they were ready to roll."
While most of the 49ers' offense struggled during the early periods of practice, rookie WR Jordan Watkins stood out as a bright spot, making several catches.
The first-team offense fared better during red-zone drills. Purdy connected with McCaffrey over the middle for a touchdown in this session, and later found Watkins for another score.
Later in red-zone work, Purdy hit WR Ricky Pearsall, who was matched against Broncos rookie CB Jahdae Barron, for a 30-plus-yard touchdown to the right corner of the end zone. That came after Pearsall made a first-down catch against CB Patrick Surtain earlier in the drive. However, the 49ers had little success targeting Surtain overall.
Purdy capped off his day by hitting WR Demarcus Robinson for a 14-yard touchdown against CB Riley Moss.
Cam Inman of Bay Area News Group charted Purdy as completing 19 of his 26 pass attempts during full-team drills, including touchdowns to McCaffrey, Robinson, Pearsall, and Watkins.
"I thought Brock had a really good day," Shanahan said. "I never know for sure until I watch the tape, but we put him in a lot of challenging positions and I thought he handled most of them pretty well."
K Jake Moody connected on all seven of his field-goal attempts—though some were close—hitting from 28, 33, 36, 40, 46, 51, and 54 yards out during special teams drills. He also drilled a 52-yarder to cap a two-minute drive at the end of practice.
Moody's 52-yarder was set up by a pass from QB Mac Jones to TE Brayden Willis. Jones also connected with rookie WRs Junior Bergen and Jordan Watkins on the drive.
Next practice
The 49ers will not practice again until after Saturday's game against the Broncos. Dates for the following week's practices have not yet been released. The team is scheduled to practice with the Las Vegas Raiders in Henderson, Nevada, next week.
Social media: 49ers-Broncos practice updates
Related News
More San Francisco 49ers News
-
49ers' biggest roster hole entering training camp identified by CBS Sports
The San Francisco 49ers made sweeping changes to their roster this offseason. While the additions of wide receivers Mike Evans and Christian Kirk generated most of the headlines, the team also focused on strengthening its defense. CBS Sports' Josh Edwards recently identified... -
49ers top 5 most intriguing training camp storylines
Training camp for the San Francisco 49ers is right around the corner. The rookies report next Saturday, July 18, while the veterans come to camp the following Saturday, July 25. With all due respect to the Yuletide season, football fans will tell you this is "the most wonderful... -
49ers waive offensive lineman ahead of training camp
The San Francisco 49ers announced Friday that they have waived offensive lineman Zach Thomas ahead of the start of training camp. Rookies are scheduled to report on Saturday, while veterans will arrive a week later. The San Francisco 49ers today announced they have waived OL... -
Ranking the 49ers Position Groups Ahead of Training Camp
Despite the seemingly never-ending Brandon Aiyuk saga, the San Francisco 49ers have had a productive offseason, addressing several positional weaknesses and reshaping key areas of the roster. That said, a few concerns remain, and some spots still feel more unsettled than...