John Lynch and Kyle Shanahan have major decisions looming. For the second-straight year, the 49ers front office enters the offseason with the goal of keeping their once-championship contending roster intact. That objective comes with a host of challenges. For starters, the 49ers could be working with less than anticipated as the league's salary cap is expected to take a hit due to lost revenue as a result of the COVID-19 pandemic.
Equally as troubling, the 49ers entered the offseason with a whopping 38 players set to hit the open market once the NFL free agency period begins on March 17.
Here is a breakdown of free agency designations, according to NFL.com:
Unrestricted Free Agent (UFA): Any player with four or more accrued seasons and an expired contract; free to negotiate and sign with any team.
Restricted Free Agent (RFA): A player with three accrued seasons and an expired contract. RFAs are free to negotiate and sign with any team, but their original team can offer them one of various qualifying offers ("tenders") that come with the right of first refusal and/or draft-pick compensation.
Exclusive Rights Free Agent (ERFA): Any player with fewer than three accrued seasons and an expired contract. If his original team offers him a one-year contract at the league minimum (based on his credited seasons), the player cannot negotiate with other teams.
Follow along with all of San Francisco's offseason moves on the 49ers Free Agency Hub.
Unrestricted Free Agents
DE Ezekiel Ansah
The 49ers signed Ansah to a one-year deal following the Week 2 loss of Nick Bosa and Dee Ford. He appeared in just two games before suffering a season-ending bicep injury.
QB C.J. Beathard
San Francisco's backup quarterback closed out the season for the 49ers following injuries to Jimmy Garoppolo and Nick Mullens. He played six total games and started San Francisco's final two contests. Beathard finished his fourth season with the 49ers completing 63.5 percent of his passes, a career high, for 787 yards, six touchdowns and no interceptions.
**Beathard signed with the Jacksonville Jaguars on March 24.
OL Tony Bergstrom
Bergstrom was signed to San Francisco's practice squad in late October and was elevated to the active roster for the team's final four contests.
DL Ronald Blair III
Blair III remained on the Physically Unable to Perform list (PUP) throughout the season after suffering setbacks in his recovery from an ACL injury sustained in Week 10 of 2019.
** The 49ers released Blair III on March 12.
WR Kendrick Bourne
The former undrafted free agent appeared in 15 games in San Francisco (five starts) and was second on the team behind Brandon Aiyuk in yards (667), targets (74) and receptions (49). He led the team with 13.6 yards per catch for pass catchers with 25 or more receptions. He also added two touchdowns on the season.
**Bourne signed with the New England Patriots on March 19.
In his second season with the 49ers, Coleman appeared in eight games and amassed 87 yards from scrimmage on 32 touches in a crowded backfield featuring Raheem Mostert, Jeff Wilson Jr. and Jerick McKinnon.
OL Tom Compton
Compton played in seven games and made three starts at right guard. The veteran offensive lineman missed multiple games after suffering two concussions in a span of three weeks.
OL Ben Garland
With Weston Richburg spending the season on PUP, Garland stepped in and played five games at center. Garland suffered a calf injury in Week 6 that kept him sidelined for the remainder of the season.
OL Hroniss Grasu
The 49ers signed Grasu in August with the team's number of injuries at center. He played in nine games and made three starts in his lone season in San Francisco.
In his first season with the 49ers, Hyder Jr. appeared in all 16 games and finished the season with career highs in sacks (8.5), quarterback hits (18) and tackles (49). Hyder's 8.5 sacks led all 49ers defenders.
**Hyder signed with the Seattle Seahawks on March 23.
The 49ers fullback appeared in all 16 games in his fourth season in San Francisco and registered 202 receiving yards on 19 receptions and four touchdowns and added two more scores on the ground, a career high.
** The 49ers signed Juszczyk to a five-year contract extension on March 15.
RB Jerick McKinnon
After being sidelined for two-consecutive seasons due to setbacks from an ACL injury, McKinnon appeared in all 16 games for the first time since 2017. He finished the year with 319 yards rushing on 81 carries and five touchdowns to add to 253 receiving yards on 33 receptions and a score.
With the number of injuries at the cornerback position, Johnson appeared in 14 games (three starts) in 2020 and recorded 23 total tackles, two quarterback hits, a sack and three passes defended in his seventh NFL season (six with the 49ers).
** The 49ers re-signed Johnson to a one-year deal on March 19.
DL D.J. Jones
In his fourth season with the 49ers, San Francisco's nose tackle started 14 games and registered three sacks and three quarterback hits, all career highs, and also notched 20 total tackles and a pass defended.
** The 49ers re-signed Jones to a one-year deal on March 23.
DL Dion Jordan
San Francisco added depth along their defensive line at the start of training camp with the signing of the former Miami Dolphins 2013 third-overall pick. Jordan appeared in 13 games and tallied three sacks, his largest output since the 2017 season (4.0), five quarterback hits, a forced fumble, fumble recovery and a pass defended.
TE Jordan Reed
Reed signed a one-year deal back at the start of training camp after missing the entire 2019 season with a concussion. He went on to appear in 10 games in San Francisco and catch 26 passes for 231 yards and four scores, including his multi-touchdown performance in Week 2 against the New York Jets.
CB Richard Sherman
Sherman appeared in just five games in 2020 after dealing with a calf injury in the season opener that he re-aggravated in Week 15.
S Jaquiski Tartt
Tartt appeared in seven games in his sixth season in San Francisco and registered 30 total tackles (20 solo), four passes defended and an interception. His season was cut short after being placed on Injured Reserve with a season-ending turf-toe injury in Week 9.
** The 49ers re-signed Tartt to a one-year deal on March 22.
CB Jamar Taylor
Taylor was released from the team ahead of final roster cuts, however, re-signed with the team in Week 4 following an injury to nickel corner K'Waun Williams. In his first defensive snap with the 49ers, he recorded his first-career full sack against Philadelphia Eagles quarterback Carson Wentz. He went on to appear in eight games (three starts) and registered 22 total tackles, two for loss, three forced fumbles, two interceptions and a sack. Taylor's season came to a close following an ACL tear in the Week 12 win over the Los Angeles Rams.
WR Trent Taylor
After missing the entire 2019 campaign with a foot injury, Taylor returned in 2020 and appeared in 12 games and caught 10 passes for 86 yards to add to nine punt returns for 112 yards (12.4 yards per return, a career high).
DL Solomon Thomas
Thomas suffered an ACL tear in Week 2, ending what was projected to be a promising season for the former first-round pick.
**Thomas signed with the Oakland Raiders on March 19.
The 49ers decision to re-sign Verrett last offseason paid off as the corner is coming off of his most productive season since 2015. Verrett played 803 snaps in 2020, a career high, and registered 60 total tackles (50 solo), two tackles for loss, seven passes defended and two interceptions. He was recognized as PFF's eighth-highest graded cornerback in 2020.
LB Joe Walker
Walker signed with the 49ers at the start of free agency in 2019 as a former member of the Arizona Cardinals. Appearing in 12 games, Walker played 61 percent of San Francisco's special teams snaps in 2020.
CB Ahkello Witherspoon
The 49ers former third-round pick appeared in 11 games and made four starts amid San Francisco's injuries at cornerback. He finished the season with 20 total tackles, four passes defended and an interception that helped San Francisco seal their Week 16 victory over the Cardinals.
**Witherspoon signed with the Seattle Seahawks on March 19.
CB K'Waun Williams
Williams appeared in eight games (four starts) at nickel corner and registered 22 total tackles, five for loss, four passes defended, a forced fumble, two sacks and two quarterback hits.
** The 49ers re-signed Williams to a one-year deal on March 26.
Williams returned to the top of his game in his first season with the 49ers after missing the entire 2019 campaign with the Washington Football Team. He appeared in 14 games in 2020 and earned Pro Football Focus' top grade of any tackle in the league, aiding him to his eighth-career Pro Bowl nod.
** The 49ers re-signed Williams to a six-year deal on March 23.
The 49ers received Willis in a trade with the Jets in October. The former Cincinnati Bengals third-round pick appeared in seven games with San Francisco and registered 2.5 sacks, five quarterback hits and 13 total tackles, two for loss.
** The 49ers re-signed Willis to a one-year deal on March 23.
Restricted Free Agents
TE Ross Dwelley
Dwelley played in all 16 of San Francisco's contests in 2020 (nine starts) and caught 19 receptions for 245 yards and a touchdown.
** The 49ers signed Dwelley to a one-year contract extension through the 2021 season on March 5.
S Marcell Harris
Harris appeared in all 16 games for San Francisco and made four starts with injuries at the safety position. He finished the season with 37 total tackles, three passes defended, two forced fumbles and two fumble recoveries.
** The 49ers signed Harris to a one-year contract extension through the 2021 season on March 5.
QB Nick Mullens
Following various injuries to Garoppolo in 2020, the former undrafted quarterback appeared in 10 games (eight starts) and completed 64.7 percent of his passes for 2,437 yards and 12 touchdowns to 12 interceptions.
Pepper signed with the 49ers as a free agent on September 30, where he went on to appear in 12 games for San Francisco last season and registered two special teams tackles.
** The 49ers signed Pepper to a two-year contract extension through the 2022 season on Feb. 4.
QB Josh Rosen
Rosen was signed to the 49ers active roster on December 23 from the Tampa Bay Buccaneers practice squad.
** The 49ers signed Rosen to a one-year extension on Feb 8.
Wilson Jr. originally signed with the 49ers as an undrafted rookie free agent in 2018. In 2020, he led the 49ers with 126 carries for 600 yards and seven touchdowns, all single-season career highs. He also tallied career highs in receptions (13), receiving yards (133) and receiving touchdowns (three).
** The 49ers re-signed Wilson Jr. to a one-year deal on Jan. 26.
Exclusive Rights Free Agents
In his second season in San Francisco, Brunskill once again was a versatile cog along the 49ers offensive line. Brunskill started all 16 games and split time at both right guard and center.
** The 49ers tendered a one-year contract to Brunskill on March 12.
WR River Cracraft
Cracraft appeared in nine games and caught six receptions for 41 yards. He also returned five punts for 40 yards.
** The 49ers signed Cracraft to a one-year contract extension on Feb. 22.
Moseley appeared in 12 games (eight starts) and registered 47 total tackles, a career-high nine passes defended and notched an interception on the season.
** The 49ers signed Moseley to a two-year contract extension on March 15.
RB Austin Walter
Walter was signed to the 49ers practice squad on September 23 and was later promoted to the active roster on November 11. He appeared in four games in 2020 and registered one carry for three yards, one reception for 27 yards and returned five kickoffs for 93 yards.
** The 49ers signed Walter to a one-year extension on Feb 8.
CB Ken Webster
San Francisco signed Webster from the Dolphins practice squad on September 16, where he went on to appear in nine games and registered four tackles and one forced fumble on special teams.