San Francisco 49ers cut Joe Williams, two FA additions but keep 2018 draft class

Joe Williams lasted only one season with the 49ers. Bob Kupbens/Icon Sportswire

SANTA CLARA, Calif. -- The San Francisco 49ers cut 33 players on Friday and Saturday, trimming their roster to the NFL-mandated 53 players. Here's a closer look at the cuts:

Most significant move: Releasing running back Joe Williams. Really, the Niners didn't have any moves that came as much of a surprise and this one doesn't either. But letting Williams go was worth noting for a couple of reasons. First, the 2017 fourth-round selection became the first draft pick of the Kyle Shanahan/John Lynch regime to be let go. Of more importance, Shanahan and Lynch showed that they understand the idea of sunk cost. More stubborn decision-makers might keep wishing and hoping that Williams would pan out. But when Williams combined injuries with a lack of production, the Niners decided to move on. Ideally, you wouldn't whiff on a fourth-round pick such as Williams but hanging on to someone who wasn't working out only exacerbates the issue. Shanahan and Lynch didn't do that here, which is a good sign.

More late-round gems?: Speaking of draft picks, the 2018 class remains well-represented on the 49ers' roster. In fact, aside from defensive lineman Kentavius Street (who was always going to redshirt this year after a spring knee injury), the rest of the team's nine-man draft class made the initial roster. That seemed like a long shot at the time of the draft but after strong offseason showings from late-round picks like defensive lineman Jullian Taylor, defensive back D.J. Reed and wide receiver Richie James, the Niners might have found instant contributors on the draft's final day for the second year in a row. Safety Marcell Harris making it was probably the biggest surprise of the group, but the 49ers clearly believe his upside outweighs his recent injury history and lack of production in the preseason. Harris also remains a candidate for injured reserve depending on how things shake out elsewhere.

Free-agent misses: Guard Jonathan Cooper and defensive end Jeremiah Attaochu weren't the Niners' biggest free-agent moves but both were signed with a specific role in mind and each was given a decent sized signing bonus to take one-year deals with the team. Neither made the 53-man roster. Cooper and Attaochu were both plagued by injuries, which played a big part in their inability to really get going during the preseason. The 49ers have plenty of cap space so they can easily eat the dead money that comes with cutting Cooper and Attaochu, but they have to be disappointed to get nothing in return from two players they hoped could contribute when they signed them.

49ers moves:

Released (33): QB Jack Heneghan, QB Nick Mullens, RB Jeremy McNichols, RB Joe Williams, RB Jeff Wilson Jr., RB Ja'Quan Gardner, FB Malcolm Johnson, WR Steven Dunbar Jr., WR Aaron Burbridge, WR Aldrick Robinson, TE Ross Dwelley, TE Wes Saxton, TE Cole Hikutini, OL Jonathan Cooper, OL Chris Gonzalez, OL JP Flynn, OL Coleman Shelton, OL Najee Toran, OL Andrew Lauderdale, OL Darrell Williams Jr., OL Pace Murphy, DL Jeremiah Attaochu, DL Chris Jones, DL Niles Scott, DL Will Sutton, LB Korey Toomer, LB Pita Taumoepenu, DB Dexter McCoil, DB Emmanuel Moseley, DB Tarvarus McFadden, DB Antone Exum Jr.,DB Tyvis Powell, P Jeff Locke.

Traded: LB Eli Harold to the Detroit Lions for a conditional seventh-round pick in 2020.

Acquired: OT Shon Coleman from the Cleveland Browns for a 2019 seventh-round pick.

Non-football injury/reserve list: DL Kentavius Street