The Vikings offense showed much more reason for excitement in their limited showing this week against the Seattle Seahawks than they did last week against the Buffalo Bills. Though they finished with three points before the second unit took over, there was more consistent offensive movement overall than in their prior performance.

Notably, the running game looked much better; Dalvin Cook threaded together several runs of eight yards or more and ended the day with 5.7 yards per carry. He also generated a decent success rate, which means that it wasn’t built entirely off scattered big runs.

Aiding him in that effort were an offensive line unit missing its best blocker from the offseason but good enough to create some good lanes. In fact, they should be given even more credit for creating some big holes that Cook didn’t take advantage of in this game and in the prior game. While Cook didn’t seem to make more than one of these vision errors a game, it’s worth keeping track of.

Most notably, right tackle Mike Remmers and temporary guard Nick Easton did some of the best work across the line of scrimmage to create those lanes — though there weren’t particularly bad showings as run blockers from the first unit. In pass protection, there was a hit surrendered by rookie Pat Elflein and some hairy by-the-skin-of-his-teeth work by Remmers, but largely it was a much better showing than we saw last week.

All of that meant a comfortable situation for Sam Bradford, who took on more aggressive throws in this game than he has been prone to in his career with the Vikings. One of those shots resulted in a big play to Stefon Diggs for 39 yards, but it’s likely that blown coverage was more responsible for that yardage than anything else.

On his other aggressive throws, Bradford threw it to receivers well covered by cornerbacks, and the receivers didn’t have the leverage to win. One of those throws was placed well enough and Michael Floyd had the advantage of height and a corner without his head turned around, but couldn’t reel in the difficult catch. The other throw should have been an interception.

Bradford also took too-risky of a throw on a slant into cover-two, which led to a big hit on Diggs. An open Adam Thielen on the outside would have gained that many yards with more opportunities for yards-after-catch without a big hit in the way.

Between the receivers, the most obviously impressive player was Diggs. His route running created significant space against a talented secondary and gave easy targets to Bradford, who took advantage of that leverage. We didn’t see much of Thielen, but he certainly found himself open enough to demand more targets than he eventually got.

Overall, the offense fared well but Bradford had his issues, again failing create on third-and-long but also taking uncharacteristic risks.

Defensively, the Vikings gave fans more serious reasons for concern. Mackensie Alexander will want to wash his hands of the game, but his performance is reminiscent of what happened in his limited snaps last year. His play in the slot demonstrated difficulty dealing with standard slot routes, issues maintaining the same coverage concept as his teammates and overall problems limiting space for receivers.

Beside him, Terence Newman was struggling until an injury forced him out of the game earlier than the rest of the first-team defense.

Because defense is largely built around preventing big weaknesses, solid strengths from the Vikings in other areas could be overshadowed by a struggling portion of the secondary. There didn’t seem to be much concern from Xavier Rhodes, Harrison Smith or Antone Exum, who started at safety with the first-team unit in the game. Though both Rhodes and Exum had big plays completed in their coverage assignment, neither was at fault and otherwise played well against both the run and the pass.

If there is a unit that continues to deserve hype this year, it’s the defensive line. While Everson Griffen was asked to stay at home to prevent Russell Wilson from scrambling to his left, Danielle Hunter was unleashed to do whatever he could against the slipperiest quarterback in the league. After threatening pressure several times over right tackle Germain Ifedi, Hunter finally earned a sack on Wilson, and paired that up with a set of tackles in the run game.

won't be too aggressive about projecting based off of a few reps against an awful right tackle, but Hunter should get 50 sacks this year — Arif Hasan (@ArifHasanNFL) August 19, 2017

Though Tom Johnson again had issues holding stout against the run, he seemingly did a better job in this game than last week but could lose his job outright to the backups behind him.

The standout linebacker last week was Anthony Barr, but this week was Eric Kendricks. After he slipped form on the first running play — failing to wrap up running back Eddie Lacy — he was a constant nuisance the rest of the time he was on the field. He followed that up with a tackle at the line of scrimmage and a tackle for loss shortly thereafter. Generally speaking, Kendricks was a big asset to the defense.

Barr didn’t make much of an impact, but neither was he clearly blown out of a play assignment or exploited in coverage. Though not a perfect followup to his form from a week ago, it’s not a bad next step.

Instead, Ben Gedeon was the more interesting follow. Gedeon is credited with two tackles and three assists, but should be worried about his play in coverage, where he was worrisome once more. Aside from failing to carry his tight end up the seam on one assignment, he generally found himself late to the ball when forced to chase. He did a good job finding it when working downhill, but his positives need to be balanced with negatives.

Individually, most of the Vikings players played well, some at an astoundingly good level. But defense can not often be carried by great individual performances and two glaring problems will be more easily remembered than a few bright spots.

Other notes from the night: