Not ready for regular season: Vikings' starting offense can't find end zone

For a team that spent the offseason talking up improvement on offense, the Minnesota Vikings’ starting group has not shown much improvement during the preseason. Sunday night’s game against the San Francisco 49ers marked the third straight contest in which the Vikings’ first-team offense failed to reach the end zone. Minnesota won 32-31 but had trouble protecting the quarterback, which was the last thing the team wanted to see after the 2016 season was derailed by struggles on the offensive line.

One thing the Vikings should feel good about is the health of their starting offense. Tackle Riley Reiff, receiver Laquon Treadwell and running back Latavius Murray made their preseason debuts. Treadwell caught three passes for 36 yards, and Murray carried the ball twice for 6 yards and caught two passes.

For the second straight game, the Vikings’ first-team defense had a forgettable performance, giving up 176 yards passing and 14 points to the 49ers’ starters.

QB depth chart: Sam Bradford started and played the entire first half. Several of his first-quarter drives were stalled by sacks, but he moved the ball downfield more often as the game went along and closed out the half with a 28-yard pass on the run to receiver Adam Thielen. Bradford finished 17-of-21 for 134 yards.

Veteran backup Case Keenum took over in the second half and led two touchdown drives, the second of which included a 36-yard pass to Stacy Coley, a 20-yard throw to Rodney Adams and a 16-yarder to tight end Kyle Carter.

When it was starters vs. starters, the Vikings looked …:vulnerable. The Vikings’ starters had their toughest preseason outing against the 49ers, on both sides of the ball. Bradford completed passes at a high rate but gained only 6.3 yards per attempt, and the Vikings failed to produce points with the first-teamers in the game. The run game wasn’t much more fruitful as starter Dalvin Cook gained just 17 yards on five carries.

On defense, Minnesota kept starters on the field for the entire first half, but that didn’t slow down San Francisco quarterback Brian Hoyer, who opened the game 8-for-8, including a 46-yard touchdown pass to receiver Marquise Goodwin. Hoyer finished 12-of-17 with two touchdowns.

One reason to be concerned: Coach Mike Zimmer said the team hoped to have its starting offensive line set for the regular season by the end of preseason game No. 3. If that’s the case, the starting five did not make a good first impression as a unit against the 49ers. Bradford was sacked three times in the first quarter and the Vikings struggled to run the ball for the majority of the first half, gaining only 22 yards on eight rushes.

Minnesota’s matchup with San Francisco marked the first time the starting group has played together in a preseason game. Reiff missed the first two preseason matchups recovering from a back injury and left guard Alex Boone missed last week’s game against Seattle. The Vikings certainly wanted to see more chemistry from the front line than they had on Sunday night.

That guy could start: After missing a big chunk of training camp and the first two preseason games, 2016 first-round draft pick Laquon Treadwell was in action against the 49ers and showed signs of promise. He caught all three passes thrown his way for a total of 36 yards, including a 19-yard catch in the first quarter. Treadwell had only one reception last year, but appears to be in line to start once the regular season arrives.

Centers Nick Easton and Pat Elflein have been battling during camp for the starting job. If Sunday night’s lineup is indicative of the regular season, then Easton will be snapping the ball to Bradford come Week 1.

Rookie Ben Gedeon received his second straight preseason start. It appears he is ahead of Emmanuel Lamur and Edmond Robinson for the Vikings’ open weakside linebacker position.

Rookie watch: After two strong games to open the preseason, Cook was mostly a non-factor, especially in the passing game where he had previously stood out. His only catch went for a 5-yard loss. Adams, a fifth-round selection, scored his second touchdown of the preseason, again on a screen pass near the goal line. He caught a pass from Keenum behind the line of scrimmage and dodged a tackler for the score. Adams also caught a 20-yard pass on the Vikings’ second touchdown drive.

Special teams battles: The Vikings have not yet decided on a kicker, punter or kick returner. On Sunday, running back Jerick McKinnon made a strong case to win the kick returner job by taking one back 106 yards for a touchdown. Coley and Adams had received opportunities in previous preseason games. Kicker Marshall Koehn nailed a 58-yard field goal with air to spare, but he missed a 47-yard kick wide left. Koehn has been in a neck-and-neck fight with veteran Kai Forbath.