Layers of the Vikings roster were overturned last offseason in the biggest free agency exodus under coach Mike Zimmer.

More changes are ahead in 2021, as the Vikings have 10 unrestricted free agents and four restricted free agents scheduled to be available to other teams, in some capacity, come March. Here's a deeper look at how the five most active free agents fared in 2020.

Unofficial NFL stats, such as QB pressures, missed tackles and targeted passes, are compiled by Unrestricted free agents (UFAs) and restricted free agents (RFAs) are designated as such.

1. Safety Anthony Harris (UFA) played on the one-year, $11.4 million franchise tag after tying the NFL lead with six interceptions during the 2019 regular season. General Manager Rick Spielman's move didn't really pay off for the Vikings or Harris, who was tagged last year with the salary cap room gained by Kirk Cousins' contract extension. Spielman wanted to tag and trade Harris, according to league sources at the time, but failed, and Harris became the only Vikings defender — and just one of four players overall — to play every down with 1,075 snaps [100%].

Not penalized. Deflected seven passes with no interceptions. Typically always in the right place, but environment changed drastically with often unreliable and rotating cornerbacks. Was most effective as a single-high safety breaking on underneath routes. Plays with strong instincts and anticipation, but looked to be guessing more in 2020. Allowed four touchdowns in coverage. Caught flat-footed and chasing Packers receiver Davante Adams on a 24-yard touchdown before halftime of the Week 1 loss. Looked backward to see safety Harrison Smith intercept Titans quarterback Ryan Tannehill in the Week 3 loss; Mike Zimmer alluded afterward that should've been Harris' deep zone. Later vs. Tennessee, Harris jumped a third-down route by Titans receiver Adam Humphries for a deflection. Made a similar play to break up a first-down pass over the middle in the Week 6 loss to Atlanta. Let Bucs receiver Scotty Miller breeze by on the 48-yard touchdown in the Week 14 loss.

Like most Vikings defenders, Harris had a really bad final month. Missed a career-high 10 tackles, including six in the final three games. Took a bad angle and missed Alvin Kamara on the opening 40-yard score of Kamara's record-tying six touchdowns in the Week 16 loss. Couldn't keep up with Lions receiver Marvin Jones, who ran by Harris for a 43-yard touchdown in the first quarter of the Week 17 win. Harris isn't going to win many races against NFL speed. He wins off intellect and anticipation. So, as the Vikings' pass rush fell off precipitously, teams schemed up some deep shots over Harris.

The 48-yard Miller touchdown in Tampa Bay was a good example. It's the first quarter. On the previous third down, Zimmer blitzed Bucs quarterback Tom Brady. Miller gets open deep, but Brady doesn't see him and throws incomplete at the feet of receiver Chris Godwin.

On the next third down, the Bucs send Miller (#10) deep again. This time, Zimmer pulls back with a three-man rush and eight-man coverage blanketing the first-down marker on third-and-4. Harris (#41) is the lone deep safety in centerfield coverage.

After letting Miller go by him on the previous third down, Harris again keys on the shorter route — an intermediate dig by Mike Evans (#13) — with Miller (#10) sprinting by cornerback Chris Jones (#26). This time, it's a Miller touchdown as Brady has all day against a three-man rush.

2. Linebacker Eric Wilson (UFA) went from reliable spot starter to a dependable fixture in the defense as injuries removed Anthony Barr and Eric Kendricks from the lineup. Took over the in-helmet microphone and relayed play calls as well. Didn't leave the field on defense after Barr's torn pectoral Week 2 in Indianapolis. Played 1,035 snaps [96.3%], second on the defense. Penalized once for grabbing the face mask of Panthers receiver Robby Anderson in the Week 12 win. Led the defense with 122 combined tackles, including a team-high eight for a loss.

Allowed two touchdowns in coverage. Fell down while Seahawks tight end Will Dissly caught a 19-yard touchdown in the Week 5 loss. Career-high three interceptions, including his first in the NFL when a pass bounced off the chest of Colts tight end Mo Alie-Cox near the goal line. Also picked off a poorly-thrown ball by Seahawks quarterback Russell Wilson, and sat on a crossing route to intercept Lions quarterback Matthew Stafford in the Week 9 win. Solid coverage linebacker who trailed only safety Harrison Smith on the team with eight deflections. Stepped into Barr's role as the leading blitzer, turning 71 pass rushes into eight hits and three sacks. But production fizzled as Wilson maintained that role and had just two hits and no sacks in the last seven games.

Missed too many tackles, and was less effective against the run. Wilson's team-high 20 missed tackles tied for the third most among all NFL linebackers. It was a consistent issue, missing at least one in every game except for the Week 15 loss to Chicago, when he led the team with 11 combined tackles (one for a loss) while the Bears ran free. Wilson's 17 run stops trailed Kendricks' 25 in 11 games.

Wilson showed he can be an every-down linebacker, especially if he cleans up tackling, but it's likely going to be for another NFL team that will pay him to play passing downs, which is his strength as an athletic sideline-to-sideline linebacker required for today's NFL.

The Panthers tested that range in the Week 12 win, where on this first-and-10 play, Wilson shows his awareness and anticipation. Panthers receiver Curtis Samuel (#10) first motions left, bringing corner Jeff Gladney with him, removing a Vikings defender from that side when Samuel motions back to the right for a sweep toss from Teddy Bridgewater.

Wilson (#50) shuffles to his left during Samuel's pre-snap motion, anticipating the run and putting him in position to outrun blocks by Panthers tight end Ian Thomas and running back Mike Davis. This is the kind of range an NFL front office will pay for at linebacker.

3. Guard Dakota Dozier (UFA) took over on the left side, winning a training camp battle over Aviante Collins for the starting job. Career backup got his first full-time job after re-signing with the Vikings on a one-year, $1 million deal in March. One of four Vikings players — third on offense with quarterback Kirk Cousins and center Garrett Bradbury — to play every down with 1,082 snaps [100%]. But it's hard to see him back in anything other than a reserve role next season. A team-high nine penalties included four false starts and four holding calls. Allowed a team-high 46 pressures, most among all NFL guards, while consistently struggling to handle defensive line twists that led to immediate issues on offense. Surrendered six sacks, including a sack-fumble by Seahawks defensive end Damontre Moore in the Week 5 loss.

Dozier was more serviceable as a run blocker, but his issues in pass protection were consistently the weakest link in the chain once the struggling Dru Samia was replaced by Ezra Cleveland at right guard. Dozier had a particularly bad four-game stretch against the Jaguars, Bucs, Bears and Saints, including a season-worst seven pressures in the key Week 15 loss to the Bears.

On the opening first down vs. Chicago, Dozier (#78) gets walked into the backfield by Bears defensive tackle Brent Urban (#92).

This immediate pressure leads to a sack on Cousins, in part because Cousins looks left — perhaps trying to counter safety Eddie Jackson's (#39) slot blitz with a throw to receiver Justin Jefferson (#18) — and misses an easy outlet to Dalvin Cook (#33) to his right.

If the quarterback can't react quickly enough, the protection has to be there. If Cousins had the blocking, it's a good read and easy completion to Jefferson.

4. Defensive end Ifeadi Odenigbo (RFA) stepped into a starting role, one he maintained even after the Yannick Ngakoue trade upset expectations. He was the most productive pass rusher for the 2020 Vikings, however that's not saying much after a franchise-low 23 sacks since it became an official stat in 1982. Led the defensive line with a career-high 697 snaps [64.8%] and 15 starts, missing the season finale due to a chest injury. Penalized three times (one declined), including being drawn offside by Aaron Rodgers' hard count — in an empty U.S. Bank Stadium — on the opening third down of the season. Team-high 42 pressures, including 15 quarterback hits, looking more effective as an interior pass rusher on third downs before the Ngakoue trade after Week 6 limited his role. Had just half the sacks (3.5) from his seven in 2019 as a part-time contributor. Strong games against the Titans and Jaguars, including a safety on Jacksonville quarterback Mike Glennon. But admittedly struggled to maintain an impact, saying opponents picked up on his tendencies more often as a first-year starter.

Surest tackler on the defense with just two misses, but not often in position to make plays unless rushing the passer; 35 combined tackles (three for a loss) ranked third on his own defensive line. Underwhelmed as a run defender with seven stops — Danielle Hunter and Everson Griffen combined for 37 in 2019.

Odenigbo has some burst as a pass rusher and that's obviously where he was most effective last season. On this second-and-14 play against Atlanta, an obvious throwing down, Odenigbo (#95) cleans up through two blockers for the split sack.

Defensive tackle Jaleel Johnson (#94) works against the Falcons' line slide protection to the right and appears to fluster Falcons quarterback Matt Ryan, who pulls the ball and gives Odenigbo time to fight past a couple first-round draft picks in Falcons left tackle Kaleb McGary (#76) and left guard Chris Lindstrom (#63).

5. Defensive tackle Jaleel Johnson (UFA) was thrusted into the starting lineup when nose tackle Michael Pierce opted out in July, leading to Shamar Stephen's move to nose and Johnson's starting job as the three-technique defensive tackle — the spot they've cycled replacements ever since Kevin Williams left. Johnson played a career-high 655 snaps [60.9%] in 16 starts. Penalized twice. Full-time player for an underwhelming defensive line. Missed five tackles. Second on the line with 15 run stops, just two in the final six games. Less effective with more work, providing little pass rush production with 1.5 sacks among seven pressures, trailing Armon Watts (12) and Stephen (9).

Johnson, the 2017 fourth-round pick out of Iowa, apparently became a target in the running game where opponents averaged 4.6 yards on the Vikings. Coaches have said he can play haphazardly, and he was caught out of position in New Orleans.

Saints coach Sean Payton said postgame their flurry of pre-snap motions before runs were done, in part, to get desired matchups on the defensive tackles as Kamara ran wild.

On this first down, Saints tight end Adam Trautman (#82) motions right, leading to Johnson (#94) shifting closer to center — to the nose alignment — and Stephen (#93), the better run stopper of the two, shifting away — to the three-technique alignment.

"You can force the nose tackle to be the three [technique]," Saints coach Sean Payton said after the Vikings' Dec. 25 loss, "and you can force the three to be the nose, but it really had nothing to do with their [linebacker] depth."

Johnson maintains his gap to the right of the left guard (#74), until Kamara (#41) sets him up with a juke left and cutback right into a wide-open lane. Every Vikings defender was getting demolished by Saints left tackle Terron Armstead (#72), maybe adding to Johnson's eagerness to jump the play that side. Either way, poor execution.