At Friday’s practice, perhaps the two most competitive 49ers locked horns after a play. Receiver Jauan Jennings and cornerback Deommodore Lenoir, who are both excellent at antagonizing opponents, had finally irritated each other enough to spark the first post-play fight of training camp.
It was a small skirmish: a few shoves that lasted only about five seconds and saw a single swing from Lenoir. But consider it a moment that verified training camp had truly begun. Three practices in, competitive juices are clearly flowing — and that’s critical for a 49ers team with a depth chart to settle.
“I think we have as many position spots open — on the final 53 and the practice squad — as we’ve had since probably 2018,” 49ers coach Kyle Shanahan said this week. “If I could simplify my rambling: It’s time to get to work.”
Jennings and Lenoir aren’t necessarily battling for jobs — those two veterans are locked into their starting roles. But they’re both feisty tone-setters, and their kerfuffle helps signal that battles around the rest of the roster are ready to rage, especially once the 49ers don pads for the first time Monday.
One is already in full force. That’s the kicking competition, which pits incumbent Jake Moody against signee Greg Joseph. Both started 4-for-4 on Wednesday. Moody then missed one kick Friday from about 50 yards. Joseph missed twice, from about 40 yards and then from about 50.
New 49ers special teams coordinator Brant Boyer has designed the competition for maximum visibility. There’s a rapid-fire approach in front of the whole team, which star edge rusher Nick Bosa is enjoying watching. Moody and Joseph attempt the same kick in succession before the ball is moved back 10 yards.
“I want to see them kicking in the same wind direction, consistency, ball flight, [snap-to-kick] times,” Boyer said. “I want to let the team see them. I think it’s cool that everyone’s watching; that’s how you create pressure on the guys. I think it’s really good for competition.”
Following his 2024 struggles, Moody has ditched his three-step kicking approach for a two-step wind-up. As a result, Moody says, he’s lost a bit of power but gained control. That can translate into the consistency he’ll need to demonstrate to keep his job.
“I see a guy who lost his confidence a little, but I also see a guy who was injured half the year,” Boyer said. “He’s a super talented kid, and he just has to get his stinger back, so to speak. Greg Joseph is putting all the pressure that he can on him. That battle is gonna be fun to watch.”
Here are four other positional battles that should begin blossoming during the 49ers’ second block of camp practices, which starts Sunday.
Cornerback
Between Lenoir and Renardo Green, the top two spots are set — although Green did limp away from his final pass breakup after an impressive practice Friday. If Green misses any time, other defensive backs aiming for the third cornerback role will have an added chance to shine in coming days.
Obvious candidates are rookie Upton Stout and veteran signee Tre Brown. At just 5-foot-8, Stout would likely have to win the nickelback role to crack the 49ers’ top three. Brown, meanwhile, has enjoyed starting success at outside cornerback. Pro Football Focus scored Brown as its top-graded corner in press coverage in 2023, when he was with the Seattle Seahawks. It’s worth noting that Brown has also rotated into some slot corner snaps over the first three practices. This can maximize the 49ers’ options down the road.
Don’t forget about third-year cornerback Darrell Luter Jr., who on Friday knocked away a pass intended for rookie Jordan Watkins. Luter has been limited to special teams so far in his NFL career but has the length to make noise in the secondary — and this looks like his first legitimate chance to earn playing time there.
Friday’s practice ended with Jakob Robinson, an undrafted rookie out of BYU, swatting away another pass intended for Watkins. Robinson has already added some muscle in his first few months with the 49ers and looks to be, at the very least, a good candidate for the practice squad.
Safety
“it is a wide-open competition at safety,” 49ers defensive coordinator Robert Saleh said this week. “At both spots.”
Malik Mustapha starred as a rookie, but he’s not expected back from his ACL tear until after training camp. That has opened an immediate door for Jason Pinnock, a signee who previously played under Saleh with the New York Jets.
Incumbent Ji’Ayir Brown, who intercepted 49ers backup QB Mac Jones on Friday, has taken first-team reps alongside Pinnock. Richie Grant and rookie Marques Sigle have been the second-team safeties.
Saleh has shown an affinity for exceptionally athletic safeties in the past. Both Pinnock and Sigle, whose 4.37-second 40-yard dash was the fastest among all safeties in the 2025 draft class, fit that bill. Might that help one of those players earn the upper hand over Brown, whom the 49ers drafted back when Steve Wilks was defensive coordinator, for the second safety spot once Mustapha returns?
Left guard
When Aaron Banks left in free agency to sign with the Green Bay Packers at $18 million annually, Ben Bartch seemed like the logical next man up. He’d been the first to fill in for an injured Banks in 2024 and actually outperformed the first-stringer — albeit in a shortened sample that didn’t last even two games.
Injuries have been Bartch’s biggest recurring issue. A high ankle sprain ended his 2024 season, and a quad injury away from the facility rendered him unavailable for the start of camp. Fourth-year lineman Nick Zakelj has taken all first-team reps at left guard so far this camp.
We’ll see how the 49ers divide responsibilities when Bartch is back at practice, which should be relatively soon. They also have veteran Matt Hennessy, who has posted strong run-blocking grades over his limited NFL action at left guard, and two rookie options for the position: seventh-round pick Connor Colby and undrafted signee Drew Moss. Like Hennessy, both of those players are strong run blockers, but they’ll have to polish their pass protection to enter the top of this conversation with Bartch and Zakelj.
Running back
Christian McCaffrey and Isaac Guerendo have a clear hold on the top two spots, but what happens beyond that is murky. Both rookies, fifth-round draft pick Jordan James and undrafted free agent Corey Kiner, look comfortable running the ball. Both have similar builds and athletic profiles to former Atlanta Falcons running back Devonta Freeman, and both have looked comfortable catching the ball out of the backfield.
That may give them an immediate leg up over veteran Patrick Taylor Jr., who struggled in the receiving game last season and dropped another pass Friday. Taylor, though, is a strong pass protector. Both James and Kiner will have to demonstrate that they can deliver in that regard too. This really won’t be possible until the pads come.
Thankfully, that intensification is just around the corner. And that’ll mark the first opportunity for perhaps the most wide-ranging position battles — the ones along the defensive line — to truly roar. Buckle up.