The 49ers’ 2020 offseason has been relatively busy for a team that went in aiming for continuity.
A slew of trades highlighted both the 49ers’ free-agency period and their draft. Now the COVID-19 pandemic has thrown the NFL calendar into an unprecedented state of uncertainty where preseason has been cancelled, training camp rosters have been cut to 80, and nearly 70 players opting out of the 2020 campaign.
Here’s a quick recap of what happened to the 49ers in the offseason:
Key free agent signings

OL Tom Compton
Compton embodies the type of free agent the 49ers set out to acquire this offseason. He’s an experienced, versatile interior offensive lineman who played in Kyle Shanahan’s offense in Washington. He also spent time with the Jets and Vikings, and will contend for the starting right guard job.
DE Dion Jordan
The 49ers could benefit from some added quality in their defensive end depth chart. Jordan, a former No. 3 overall pick, hasn’t lived up to his draft status, but he offers a good low-risk, high-reward option as a rotational piece on the 49ers’ defensive line.
DE Kerry Hyder
Hyder is a little bit like Jordan. His best season came in 2016 when he had 8.0 sacks for the Lions under now-49ers defensive line coach Kris Kocurek. Hyder suffered an Achilles injury the following year and hasn’t been able to replicate his success from that 2016 campaign. After spending 2019 with the Cowboys and earning one sack in 16 games, he reunites with Kocurek in San Francisco.
CB Jamar Taylor
The 49ers signed Taylor when they let go of cornerback Teez Tabor. It looked like a somewhat inconsequential signing at the time, but DJ Reed was claimed by Seattle off waivers leaving a spot open on the cornerback depth chart. Taylor has experience in the slot and outside and could wind up making the club as a backup to nickel corner K’Waun Williams.
Key re-signings

FS Jimmie Ward
San Francisco gambled last year by bringing Ward back on a one-year deal to be their starting safety. He missed the first three games with an injury, but was stellar in the 13 games after that. Ward re-signed on a three-year deal worth up to $28.5 million.
DL Arik Armstead
Year 5 was a breakout season for Armstead who led the 49ers in 2019 with 10 sacks. Pairing strong production as a pass rusher with his already stout run defense earned him a hefty five-year, $85 million contract. Armstead is a versatile piece who can play on the end and slide down to play defensive tackle. The 49ers are hoping he bounces back with another great year in 2020.
DE Ronald Blair III
Blair has been a quietly strong contributor for the 49ers since joining the club in 2016 as a fifth-round pick. He was on his way to a career year last season before tearing his ACL in Week 10 while sacking Seahawks quarterback Russell Wilson. Going into the offseason with an injury may have tempered the market some for Blair, but he’s back in the Bay Area and should contribute again once he’s healthy.
OL Ben Garland
A quality backup center is vital to the 49ers given Weston Richburg’s injury history in two years with the club. He went down with a knee injury in Week 14 last season and Garland filled in nicely in his stead. Garland will hold down the center job until Richburg returns, and he could also put himself in the running for the starting right guard job.
Key losses

OT Joe Staley
Day 3 of the 2020 draft was a significant day in 49ers history. Staley officially announced his retirement shortly after the team announced a trade for seven-time Pro Bowl left tackle Trent Williams. The 49ers will go into the year with a new left tackle for the first time since 2007 when Staley was drafted in the first round.
OL Mike Person
Staley wasn’t the only starter the 49ers lost on the offensive line. They also released their starting right guard. Person held that job for the last two seasons, but a neck injury toward the end of last year sidelined him for two games. San Francisco released him before the start of the 2020 league year. Person later announced his retirement after seven NFL seasons.
DB DJ Reed
The 49ers probably didn’t anticipate losing Reed this offseason. He suffered a season-ending pectoral tear in a workout while away from the team. They waived him with the likely hope he’d clear waivers and revert to their Injured Reserve. Seattle claimed him instead.
Trades

DeForest Buckner to Colts
The 49ers’ first move of the offseason was a blockbuster trade that sent star defensive tackle DeForest Buckner to the Colts in exchange for the No. 13 overall pick in the 2020 draft.
Matt Breida to Dolphins
San Francisco was very active moving around the draft. On Day 3, they traded Breida to the Dolphins for a fifth-round pick. The 49ers were short on draft capital the final day, and glut of talent at RB allowed them to move on from Breida after three seasons.
Marquise Goodwin to Eagles
Another Day 3 trade involved moving Goodwin and a sixth-round pick to the Eagles for Philadelphia’s sixth-round pick. It looked like the 49ers may wind up cutting Goodwin, but they held onto him and wound up finding a suitor to move him in a pick swap.
Trent Williams from Washington
Before Staley officially announced his retirement, news broke that the 49ers were trading a 2020 fifth-round pick and a 2021 third-round selection to Washington for Williams. The seven-time Pro Bowler missed last season, but he could end up being an upgrade over Staley — who was excellent in his own right.
Draft picks

Round 1, Pick 14: DL Javon Kinlaw
The 49ers acquired a fourth-round pick from the Buccaneers to move back one spot in the draft, where they selected Kinlaw from South Carolina. He’s a massive defensive tackle with a ceiling that could allow him to be better than Buckner, who he’ll replace on the defensive front.
Round 1, Pick 25: WR Brandon Aiyuk
In a surprise move, the 49ers packaged the 31st overall pick with a fourth-round choice and a fifth-rounder to move up to No. 25 for Aiyuk. The Arizona State product had a huge senior year and offers explosive after-the-catch ability that’s become a staple for the 49ers’ offense.
Round 5, Pick 153: OL Colton McKivitz
San Francisco selected McKivitz out of West Virginia with the pick they acquired from the Dolphins in the Breida trade. He played right tackle for the Mountaineers, but there’s a chance the 49ers try and move him inside to compete for the starting right guard job.
Round 6, Pick 190: TE Charlie Woerner
The pick swap with the Eagles allowed the 49ers to slide up and take Woerner, one of the best blocking tight ends in the draft class. He didn’t do much receiving at the University of Georgia, but he’s a versatile blocker and a good enough athlete to offer improved depth for San Francisco at tight end.
Round 7, Pick 217: WR Jauan Jennings
Jennings’ tape is borderline scary. He’s not fast, but the former high school quarterback is as competitive as they come. Jennings overcame a couple suspensions to become a well-liked team captain. The tackle-breaking machine could quickly find a home in the 49ers’ offense if he proves athletic enough against NFL competition.
Coaching changes

Joe Woods to Cleveland
Woods was a huge part of the 49ers’ turnaround last year. He was the defensive backs coach and defensive passing game coordinator, helping San Francisco churn out the No. 1 pass defense in the league. Browns head coach Kevin Stefanski hired Woods away from the 49ers to be his defensive coordinator.
DB coach Tony Oden
Oden has been coaching in the NFL since 2004 in various capacities — mostly coaching defensive backs. He joins the 49ers as the defensive backs coach after two years in Miami coaching safeties and defensive backs.
Passing game specialist Mike Rutenberg
Rutenberg has less NFL experience than Oden, but he did work with 49ers defensive coordinator Robert Saleh when the pair was together in Jacksonville. Rutenberg broke into the NFL in 2003 as head coach Joe Gibbs’ assistant in Washington. He also spent time at UCLA as a graduate assistant and worked his way up through the coaching ranks to land an important job in San Francisco.
Opt-outs

OT Shon Coleman
Coleman was in line to be the 49ers’ swing tackle last year before a season-ending leg injury in Week 1 of the preseason. He was on a one-year deal after re-signing this offseason, and was going to contend for a reserve tackle spot again in 2020.
WR Kelvin Benjamin
Benjamin was a free agent signee of the 49ers this year after spending the last four years with the Chargers. He was on a one-year deal and should be back with San Francisco next season.
OL Jake Brendel
The 49ers added Brendel for depth along the interior of the offensive line. He played in 21 games with three starts across three seasons with the Dolphins before making his way to Denver then San Francisco.
Odds and ends

George Kittle still in waiting
The long-anticipated Kittle extension is still pending. San Francisco has made it clear they’re ready to overhaul the tight end market to lock up the All-Pro long-term, but NFL Media’s Mike Silver reported in early August that the two sides are still experiencing a disconnect. There’s speculation Kittle wants to be paid like a top wide receiver. The difference between the 10th highest-paid receiver and the highest-paid tight end is about $6 million per year. Kittle is on the final year of his rookie contract and would be a free agent this offseason if he doesn’t come to an agreement with San Francisco.
Deebo Samuel injured
Samuel suffered a Jones fracture in his left foot during a player-organized workout in the offseason. His original timeline was 12-16 weeks, which could mean he misses the first part of the season. San Francisco’s confidence in that timeline will determine whether he starts the season on the PUP list or on the active roster.
Richie James Jr. injured
James was also hurt in an offseason workout. He injured his hand and is on the active/Non-Football injury list. He’s supposed to return some time in August where he’ll compete for a roster spot. James also spent time on the NFL’s reserve/COVID-19 list before reverting to the NFI.
Visit with Ziggy Ansah
Ziggy Ansah took a physical with the 49ers around the same time the team had Dion Jordan in for a visit. Ansah didn’t wind up signing, but he passed his physical according to NFL Media’s Ian Rapoport and could be on their radar if they need another DE later in camp.
Kyle Shanahan extension
The 49ers extended Shanahan through the 2025 season and made him one of the highest-paid coaches in the league following the team’s run to Super Bowl LIV. Shanahan originally signed a six-year deal. That was torn up and replaced with his new long-term contract.
John Lynch extension
While Lynch was already among the NFL’s highest-paid GMs, he earned a new five-year deal that runs through the 2024 season. No reason was given for why it doesn’t match up with Shanahan’s like their initial contracts did, but both were compensated for their roles in returning the 49ers to prominence.
Jordan Reed on the way
Lynch said in a pre-season press conference that the 49ers had agreed to terms on a deal with the former Pro Bowl tight end, but Reed’s signing has yet to be officially announced. The oft-injured tight end missed last season with his seventh concussion, but he’s hoping to return to the field in 2020. He’s one of the NFL’s best receiving tight ends when he’s healthy.