Here is how the 49ers stack up with the Cardinals position by position:
QUARTERBACKS: 49ers. The Cardinals might have made the playoffs last season if Carson Palmer hadn’t thrown 22 interceptions. Neither Blaine Gabbert nor Logan Thomas is a quality backup.
RUNNING BACKS: 49ers. Andre Ellington is a terrific, young running back who averaged 5.5 yards per carry last season. But he’s a small, change-of-pace running back. The Cardinals still need a back who can carry the load.
WIDE RECEIVERS: Cardinals. This one is close. I pick Arizona because their top-three receivers complement each other very well. Larry Fitzgerald is the possession receiver in the slot. Michael Floyd and Ted Ginn are the deep threats outside. The 49ers have three possession receivers.
TIGHT ENDS: 49ers. Not close. Rob Housler isn’t in Vernon Davis’ class.
OFFENSIVE LINE: 49ers. This offseason, the Cardinals signed a good left tackle — Jared Veldheer. But San Francisco still has a much better offensive line than Arizona.
BASE DEFENSIVE LINE: Cardinals. The Cardinals gave up fewer yards per carry than the 49ers last season. Calais Campbell is a much better run defender than Justin Smith at this stage in their careers.
NICKEL DEFENSIVE LINE: 49ers. Calais Campbell is an elite interior defensive lineman, but the Cardinals lack edge rushers.
LINEBACKERS: 49ers. The Cardinals lost Karlos Dansby in the offseason. Patrick Willis and Ahmad Brooks are better than Daryl Washington and Matt Shaughnessy.
CORNERBACKS: Cardinals. Arizona signed Antonio Cromartie this offseason. He has been a Pro Bowler the past two seasons. Ditto for Patrick Peterson, the Cardinals’ No.1 cornerback.
SAFETIES: 49ers. Eric Reid is a better safety than Tyrann Mathieu. The Cardinals probably will start a rookie at strong safety — first-round pick Deone Bucannon. The 49ers will start a veteran — Antoine Bethea.
SPECIAL TEAMS: Cardinals. Justin Bethel led the NFL in special teams tackles last season with 20. And Ted Ginn Jr. is one of the best punt returners in the league.