Access Vikings Logo


Access Vikings

Breaking news and year-round coverage of the NFL's Minnesota Vikings. Access Vikings is the Star Tribune's blog covering team news, rumors, games and all things purple.

Vikings grades: O'Neill a silver lining for the offensive line

At the core of the Vikings’ issues on offense remained a beleaguered offensive line, which lost one starter in training camp, waited until Week 4 to start another and eventually started eight different players. A lone silver lining was the emergence of rookie Brian O’Neill at right tackle. More help is needed this offseason.

Grades are based on a 1-to-5 scale, with ‘5’ marking excellence, ‘4’ for above-average, ‘3’ for average, ‘2’ for below-average and ‘1’ for failure to perform. Players that did not accrue a season (weren’t on the active roster for at least six weeks) or played in three games or fewer are not graded. Below are individual grades, based on game and practice observations, weekly film reviews and interviews with coaches, for 14 offensive linemen who finished the season on the Vikings’ active roster, injured reserve or practice squad. Unofficial NFL stats, such as QB pressures, missed tackles and targeted passes, are compiled by

Previously: (Receivers) Adam Thielen and Stefon Diggs emerge as a top NFL duo; (Running backs/tight ends) Kyle Rudolph, Dalvin Cook filled underwhelming roles; (Quarterbacks) Kirk Cousins’ first Vikings season busted when it mattered most; (Defensive backs) Harrison Smith leads a deep secondary; (Linebackers) Anthony Barr’s contract season leaves you wanting more(Defensive linemen) Danielle Hunter’s name now among the NFL’s best

OT Brian O’Neill (3.0) — Drafted in the second round (62nd overall) out of Pittsburgh. O’Neill was immediately labeled a project pick by general manager Rick Spielman, who likened the selection to the third-round pick spent on an underwhelming LSU product named Danielle Hunter in 2015. O’Neill lived up to the ‘needs-work’ label with an inconsistent summer, bottoming out with poor joint practices against the Jaguars in training camp. This was only his fourth year playing offensive line, but coaches noted great strides in his technique. Led to impressive spot starts at right tackle when Riley Reiff went down with a foot injury. Played 800 snaps [76.1%] after being a healthy scratch in the season opener. An injury to Aviante Collins opened the door in Week 2 at Green Bay, where O’Neill played 32 snaps in his NFL debut and held up well against Clay Matthews.

Allowed 31 QB pressures (no sacks), becoming only one of two offensive tackles this season — with Dallas’ Tyron Smith — to play at least 500 pass pro snaps and not surrender a sack. Penalized four times, including three false starts. Struggled most as a run blocker, where he didn’t move many defenders.

Made his first start in Week 6 against the Cardinals and did not give up the right tackle job the rest of the season. O’Neill, a former Delaware basketball standout and Pittsburgh tight end, could be the latest success story of an athletic basketball center or tight end moving to offensive tackle. Coaches want him to add muscle to his 6-foot-7-inch frame this offseason. Ate around 6,000 calories per day this summer toward that goal.

More reading: Brian O’Neill likes to talk and block at the same time

Below is a third-and-6 play in the season finale loss. The Bears are trying to isolate Khalil Mack (#52) on O’Neill (#75). Notice how no other Bears defenders start on that side of the ball. O’Neill does what he did for much of his impressive rookie season: absorbed the initial blow, mirrored with strong hands and did not get beat quickly. If he can add necessary weight (to better anchor vs. a rush like this) and keep up his technique, O’Neill could become a long-term answer for the Vikings.

OT Riley Reiff (3.0) — One of six handpicked team captains. A solid start to his seventh NFL season was derailed by a foot injury suffered in the Week 3 loss to the Bills. Played 793 snaps [75.5%], missing three starts due to the troublesome foot. Played through the injury for three weeks, but was a liability. Beat on strip-sacks in back-to-back weeks when Buffalo’s Jerry Hughes and L.A.’s Ndamukong Suh sped around him for the turnovers. The latter, at the end of a 38-31 loss, ended the Vikings’ chances. Surrendered just one sack the rest of the season, but allowed 42 QB pressures (three sacks) total, tied for the team lead and eighth worst among all NFL offensive tackles. Penalized four times (one declined), including three for holding. Remained the group’s most consistent run blocker and best finisher.

Turned 30 in December. No more guaranteed money remains on the five-year, $58.75 million contract signed two years ago. Carries an $11.7 million cap hit for next season and would cost $6.6 million in dead cap space to cut.

C Pat Elflein (2.5) — Offseason surgeries to his ankle and shoulder set back Elflein’s second NFL season before it really started. Needed to add muscle after his promising rookie season, but prolonged rehab processes made that difficult. It showed on the field in his disappointing encore. After breaking his ankle in the NFC Championship Game loss in Philadelphia, Elflein didn’t practice with Kirk Cousins until Sept. 2 — seven days before the season opener he didn’t start. Played 863 snaps [82.1%], missing three starts. Returned as a reserve in the Week 3 loss to Buffalo. Played with a brace on his surgically-repaired left shoulder throughout the season. Clearly had rust to remove early, manifesting in bad snaps. Hiked one to the far right of Cousins in his return vs. Buffalo, leading to a fumble and failed play. Looked lost as a pass protector until he got his feet under him against the lowly Cardinals in Week 6. Allowed 33 QB pressures (four sacks), the third worst among all NFL centers. Not all his fault, as the sack tabbed against him in New England came with Cousins holding onto the ball too long with open options.

Elfein was in the Patriots’ crosshairs as Bill Belichick moved his best pass rusher, edge defender Trey Flowers, into the middle to match up against the Vikings center. Elflein had some good reps, shoving Flowers to the ground on a third-and-5 deep ball dropped by Adam Thielen. But he was later beat when Flowers twisted from the end position to sack Cousins up the middle. Elflein was also targeted on this third-and-6 play below. It’s only a four-man Patriots rush, but heavy pre-snap motion over the guards helps to isolate Flowers on Elflein, who is tossed to the side way too quickly.

As a whole, the interior line had issues against twists and stunts. Players noted communication breakdowns that did not improve much over time. Ended on a down note in the season finale loss to Chicago, when Elflein surrendered a season-worst six pressures. Penalized five times (one declined), including three holds. Fingers are crossed in Eagan hoping Elflein will have a healthy summer to build toward a rebound in 2019. An actual offseason with Cousins and possibly two new guards could benefit him greatly.

G/T Mike Remmers (2.0) — After a three-game stint at guard to end the 2017 season, one that did not exactly go well, the Vikings coaching staff asked Remmers to make the full-time move to guard where he hadn’t started consistently at any meaningful level of football. The former right tackle played 1,048 snaps [99.7%] at right guard, missing only the final three snaps of the Week 9 win vs. Detroit due to an injury suffered on an extra-point attempt at the end. One of five Vikings to play more than 1,000 snaps. Played through a lower back injury in the second half of the season. Allowed 42 QB pressures (seven sacks), tied for the team lead and third worst among all NFL guards. Had his worst games against the Bills and Rams, surrendering season-low eight pressures in each. Walked into the backfield by Bills linebacker Lorenzo Alexander (#57), leading to the pressure on Kirk Cousins’ first sack-fumble in the Week 3 loss.

Played his best games against the Lions and Dolphins, leveling Miami corner Minkah Fitzpatrick with a smart block to spring Dalvin Cook for a 27-yard screen on the opening touchdown drive. Penalized eight times (one declined), including a team-high six holding flags. Play got sloppy in the second half with four holding calls in the final six games. Embarrassed in both games against Bears DT Akiem Hicks, who beat him for multiple sacks and run stops. Hold in the season finale loss to Chicago negated a Cousins scramble for a third-down conversion. No more guaranteed money left two seasons into a five-year, $30 million deal signed in free agency. Makes Remmers a potential cap casualty or restructure candidate with a $6.35 million cap hit for next season and only a $1.8 million dead cap charge if cut. Turns 30 in April.

G Tom Compton (2.0) — The Rosemount, Minn. native signed a one-year deal with $250,000 guaranteed in free agency. Added as depth, but inserted into the starting lineup during training camp when Nick Easton underwent season-ending surgery to repair a bulging disc in his neck. Played 837 snaps [79.6%] at left guard. Missed most of three games, including two starts, due to a sprained MCL suffered eight snaps into the Week 7 win at New York. Was about the only offensive lineman who played well against the Bills in the Week 3 loss. Still had a poor season. Allowed 34 QB pressures (seven sacks), second on the team and 12th worst among all NFL guards. Had his worst games against the Rams and both outings versus the Bears. Surrendered a season-worst seven pressures in Los Angeles, where he was twice beaten quickly by Aaron Donald on two fourth-quarter sacks in the loss. Played through his knee injury in the Week 11 loss at Chicago, but could not finish the game. Penalized seven times (one declined), including four for holding. Called for holding twice in the loss at New England, negating Dalvin Cook runs of five and 13 yards. Pending free agent.

OT Rashod Hill (1.5) — Dropped 12 pounds in an effort to be better conditioned for his third NFL season. Played 529 snaps [50.3%], starting five games at right tackle and three games at left tackle. Has the ideal size (6-6, 313 pounds), but still struggles with consistent technique in pass protection and can get beat easily around the edge. Penalized four times (one declined), three for holding. Ended up playing more snaps at left tackle (254) than right tackle (225) due to Riley Reiff’s foot injury and lost his starting job on the right side when rookie Brian O’Neill impressed in his spot starts. Injured his ankle and left the Week 3 loss against Buffalo. Allowed the fifth-most pressures (27, including five sacks) of all offensive tackles between Weeks 1-8. Surrendered a sack in a flash to Ndamukong Suh on third-and-6 in the red zone at Los Angeles, leading to a Dan Bailey field goal in the loss. Lack of athleticism makes Hill a poor fit for the Vikings’ zone-blocking schemes. Pending restricted free agent.

G/C Danny Isidora (1.5) — Elevated to the No. 3 guard role in his second NFL camp and preseason. Starting taking reps at center, starting there Aug. 30 in Tennessee, to become an emergency option. Active for 14 games, making a career-high two starts when Tom Compton dealt with a sprained knee. Played 214 snaps [20.4%], jumping into the Week 7 win at New York during the first quarter. Penalized once for ineligible receiver downfield. Struggled mightily as a pass protector in his two starts, when he surrendered eight pressures including two sacks. Outmatched against the Saints’ Sheldon Rankins, who had a sack against Isidora and Elflein. Didn’t look refined in pass protection, failing most against power moves like bull rushes. Fared better as a run blocker, where he can use his impressive agility to impede linebackers and defensive backs.

G/C Brett Jones (1.5) — Acquired via trade on Aug. 26 from the Giants for a 2019 seventh-round pick. An emergency addition when center depth behind Elflein and Easton didn’t pan out. Played 191 snaps [18.2%], starting the first three games at center as Elflein was eased back into action. Didn’t show enough at guard in the preseason, where he started Aug. 30 in Tennessee, to leapfrog Isidora on the depth chart. Active for 14 games, but played only limited special teams roles after his three starts. Slightly more consistent as a pass protector, where he allowed five pressures in three games, than a run blocker. Not penalized.

G/C Nick Easton (N/A) — The Vikings front office felt highly enough of Easton to place a second-round tender (worth $2.9 million) on their starting left guard. The unraveling of the offensive line began in earnest when Easton, who had already been filling in at center for the recovering Elflein, suffered a herniated disc in his neck during training camp. He underwent season-ending surgery. Pending free agent. Turns 27 in June.

G/T Aviante Collins (N/A) — Climbed his way up the depth chart in his second NFL training camp, earning a start at right tackle in the Aug. 18 preseason game against Jacksonville. Competed with Brian O’Neill for the swing tackle job and made the initial 53-man roster as a reserve at both guard and tackle. Suffered a season-ending elbow injury during practice in Week 1. Could fight for a role at guard in 2019.

OT Storm Norton (N/A) — Signed to the initial practice squad after preseason competition. Promoted to the active roster for Week 8 and was active for his first NFL game against the Saints, appearing on three special teams snaps. The second-year Toledo product was one of 10 players to sign a futures deal on Jan. 2.

G/T Cedrick Lang (N/A) — The former UTEP basketball standout could’ve been headed for a second season on the Vikings practice squad before suffering a season-ending knee injury in the Aug. 18 exhibition against Jacksonville. Played mostly right guard last summer.

OT Adam Bisnowaty (N/A) — Signed to the practice squad on Oct. 23 when Riley Reiff dealt with a foot injury. The second-year Pittsburgh product reunited with former college teammate Brian O’Neill. One of 10 players to sign a futures deal on Jan. 2.

C Cornelius Edison (N/A) — The fourth-year Portland State product became the starting center in training camp when injuries sidelined Pat Elflein and Nick Easton. But the Vikings traded for Brett Jones to start in Elflein’s absence. Edison remained on the practice squad all season. One of 10 players to sign a futures deal on Jan. 2.

Vikings grades: Thielen, Diggs were lifelines in a troubled season

Adam Thielen and Stefon Diggs became just the seventh duo in NFL history to each catch 100 passes each in a season. They did so as the two lifelines for a middling Vikings offense, limited in receiver depth after the front office’s decision to move on from the reliable Jarius Wright last spring.

Grades are based on a 1-to-5 scale, with ‘5’ marking excellence, ‘4’ for above-average, ‘3’ for average, ‘2’ for below-average and ‘1’ for failure to perform. Players that did not accrue a season (weren’t on the active roster for at least six weeks) or played in three games or fewer are not graded. Below are individual grades, based on game and practice observations, weekly film reviews and interviews with coaches, for seven receivers who finished the season on the Vikings’ active roster, injured reserve or practice squad. Unofficial NFL stats, such as QB pressures, missed tackles and targeted passes, are compiled by

Previously: (Running backs/tight ends) Kyle Rudolph, Dalvin Cook filled underwhelming roles. (Quarterbacks) Kirk Cousins’ first Vikings season busted when it mattered most; (Defensive backs) Harrison Smith leads a deep secondary; (Linebackers) Anthony Barr’s contract season leaves you wanting more(Defensive linemen) Danielle Hunter’s name now among the NFL’s best

Adam Thielen (4.5) — Strung together another elite season with career highs in receptions (113), yards (1,373) and touchdowns (9). It was the third-most catches, trialing Cris Carter (’94-’95), and fourth-most receiving yardage, trailing Randy Moss (’99, ’00 and ’03) in a single season in Vikings history. Put talk of a slow preseason connection with Kirk Cousins at rest by setting the NFL record with eight straight 100-yard receiving games to begin a season, tying Calvin Johnson’s all-time streak record. Played 1,011 snaps [96.2%]. One of five Vikings to play 1,000 snaps. Received two All-Pro votes. Five drops tied for team lead. Penalized once for a false start.

A physical and elusive target, Thielen dominated contested catches even when he was covered. Became an instant viral highlight reel with plays like this 14-yard catch over the helmet of Saints corner P.J. Williams to convert a third down in the Week 8 loss.

But Thielen lost his only fumble of the season when he was hit by Saints linebacker Alex Anzalone at the Saints’ 15-yard line. The ensuing 54-yard return by Marshon Lattimore set up a Saints touchdown in the Week 8 loss. Emotions flared in New England, where he tied for his worst catch rate (5 of 10) of the season and yelled at officials and the Patriots sideline when safety Patrick Chung was injured during a pivotal 4th-and-1 run that was eventually challenged by Bill Belichick, who yelled back at Thielen. He then dropped a first-down pass as the drive fizzled.

Issues persisted in Seattle, where Thielen wasn’t targeted until the third quarter of a close game. After a 35-yard catch in the fourth quarter, mics picked up Thielen shouting something to the effect of it’s been there “all f—— day.” More problems arose in the season finale loss to the Bears. Thielen was enraged after a third-down incompletion, one of only five targets that day, from Kirk Cousins, who threw the corner route early and contested that he didn’t know Thielen was going to hesitate at the top of the route. Starting around the Saints and Lions games, defenses began treating Thielen like a true No. 1 receiver with double and bracket coverages on critical downs. Had only one 100-yard game, 125 yards against the Packers in Week 12, during the second half of the season.

The frustration was a product of supreme production declining. Cousins and Thielen still had the NFL’s best catch rate [73.9%] of any duo to see 100 targets. Thielen was a premium bargain for the Vikings front office at a $6.1 million cap hit last season. He could receive a new contract this offseason, perhaps in line with Diggs’ new deal. Currently set for an $8.1 million cap hit next season while under contract through 2020.

Earned $1.1 million in bonuses for surpassing 80 catches ($600,000) and earning a Pro Bowl bid ($500,000). Added another $1 million to next year’s salary via an escalator clause for surpassing 90 catches this season.

Stefon Diggs (4.5) — Had a career year after signing a five-year contract extension in July worth up to $72 million. Caught 102 passes for 1,021 yards and tied for the team lead with nine touchdowns. Capable of beating man or zone coverage with efficient footwork and premiere athleticism. Sticky hands aren’t just for commercials. Dropped one pass, trailing only DeAndre Hopkins (0) for the fewest among receivers with 100 targets. Made a fingertip snag on a three-yard touchdown in Green Bay. In the same fourth quarter, he blazed past Davon House for a 75-yard touchdown. Perhaps even more impressive was this double move on Tramon Williams for a two-point conversion.

Had a season-high 128 yards in that game. Saw a career-high 149 targets, ninth most in the league, as Thielen and Diggs were the second-most targeted duo behind Pittsburgh’s Antonio Brown and JuJu Smith-Schuster. Played 874 snaps [83.2%] in a career-high 15 games, missing one against the Lions due to a rib injury. Played through a knee injury in New England, where he was limited to six targets in 47 snaps. Stopped his route against New Orleans, leading to P.J. Williams’ pick six for the Saints. Otherwise had a strong game with 10 catches for 119 yards and a touchdown. Penalized five times, including three false starts and a hold negating an eight-yard run in Seattle.

Turned to as a shallow threat asked to break tackles and gain yards. Saw his deep target percentage drop from 25.5% to 16.3% this season. Still produced, even if in a limited capacity. Ranked top 10 in both broken tackles (12) and yards after the catch (438) among receivers. His 10-yard average per catch was a career low. Stands to benefit greatly from an offense better at protecting the quarterback and scheming receivers into more advantageous situations.

Thanks for reaching 100 catches, Diggs upped his 2021 base salary by $666,667, his 2022 salary by $750,000 and his 2023 salary by $800,000, due to an escalator clause in his contract.

Aldrick Robinson (3.0) — Signed as a street free agent in Week 3 after the Vikings waived receiver Stacy Coley, one of a flurry of moves after the disappointing tie in Green Bay. Immediately became a go-to deep threat for Kirk Cousins, who spent three seasons with Robinson in Washington. Played 252 snaps [24%]. Caught two touchdowns in Los Angeles, 10 days after signing, from 16 and 17 yards away. The latter was targeted to tight end Kyle Rudolph, but a poorly-run route put in him in the right place at the right time. Caught a career-high five touchdowns, none closer than 13 yards away, on just 17 catches with 35 targets. Dropped two passes: a deep ball against Detroit and a wide-open slant on third down in the season finale loss to Chicago. Flashed as a streaky vertical threat. Eventually became the No. 3 receiver on most third downs. Penalized once for blocking Lions cornerback Marcus Cooper in the back, nullifying Dalvin Cook’s 21-yard touchdown catch and run during the Week 16 win. Didn’t catch any of his four targets in the season finale. Said he wants to return to Minnesota in 2019. Pending free agent.

Laquon Treadwell (2.0) — In his third NFL season, Treadwell parlayed a slightly more consistent summer into chances during the first half. Stable play didn’t carry into the season. Saw career highs in catches (35), targets (53), yards (302) and his only touchdown on a 14-yard post route in Green Bay. But he also dropped three passes against the Packers, one on third down, another tipped into an interception and a third in overtime. Played 543 snaps [51.7%]. Five drops tied for team lead. Improved his release at the line, evident by beating Sam Shields’ press coverage for a 19-yard catch and run in Los Angeles. Penalized once for unsportsmanlike conduct and later fined $13,369 after he threw his helmet in Week 8. Treadwell had tackled Saints cornerback Marshon Lattimore on a 54-yard fumble return. Then sped past Detroit’s Teez Tabor on a 22-yard catch and run against the Lions, his season long. But was phased out of the offense after the Week 10 bye. Does not create consistent separation on quick routes, needed most by this version of the Vikings. Saw just 14 targets in the final seven games, including only three targets in two games under coordinator Kevin Stefanski. A healthy scratch in Detroit, Stefanski’s second game as play caller, for the first time since his rookie season. Entering a contract year in 2019, but the Vikings can move on this spring by taking a $2.5 million cap hit.

Brandon Zylstra (2.0) — The Spicer, Minn. native and CFL star signed his first NFL contract with the Vikings in January 2018. Earned a roster spot despite dealing with a hamstring injury through his first training camp and preseason. Active for all 16 games, playing multiple roles on special teams where he saw 262 snaps [58.6%]. Had one kickoff coverage tackle and his lone reception for 23 yards in the Week 7 win at New York. Played 17 snaps [1.6%] on offense. Emergency punt returner. Returned four for 26 yards, stepping in when Marcus Sherels and Chad Beebe were injured. Probably should’ve called a fair catch when he was rocked on a punt return attempt in Detroit, drawing a catch interference penalty. Then shouldn’t have called a fair catch on his second attempt the next week against Chicago. Got a hand on a season-ending Hail Mary attempt, his second target of the season. Could have a bright future with a healthy summer and more opportunities. Turns 26 in March.

Chad Beebe (N/A) — Signed with the Vikings after participating in May rookie minicamp on a tryout. Beebe, the Northern Illinois product and son of ex-NFL receiver Don Beebe, was cut and re-signed to the practice squad after his first camp and preseason. Quick-footed slot receiver impressed with reliable hands. Promoted to the active roster for an injured Stefon Diggs in Week 9. Appeared in three games. Played 46 snaps [4.4%]. Caught all four targets for 39 yards, including 21 yards in the debut against the Lions. Missed five games due to a hamstring injury. Activated for the Week 16 win in Detroit over first-round pick Laquon Treadwell, but did not play much. Turns 25 in June.

Jeff Badet (N/A) — Signed with the Vikings as an undrafted free agent for $22,000 guaranteed out of Oklahoma. Spent all season on the practice squad. One of 10 to re-sign on a futures deal on Jan. 2.

NFL Scoreboard

No NFL games today