SF may be the best balanced team in the league as far as talant. That said, you really have to take away their ground game to stand a chance. Examples:TB: 98 yds rushing, but Winston had 3 INTs and one pick-six, I believe. 31-17 SF
Cincy: 259 yds rushing, 41-17 SF
Pitt: 168 yds rushing, 24-20 SF
Browns: 275 yds, 31-3 SF
Rams: 99 yds, 20-7 SF
Skins: 137 yds, 9-0 SF
Carolina: 232 yds, 51-13 SF
Cards: 101 yds, 28-25 SF
Seattle: 87 yds, 24-27 Seahawks
Cards: 34 yds, 36-26 SF (Cards must have worst DBs; gave up 408 in air)
GB: 112 yds, 37-8 SF (several short fields after that mess)
Ravens: 174 yds, 17-20 Baltimore
Saints: 162 yds, 48-46 SF (this was a passing game all the way around)
Falcons: 120 yds, 22-29 Atlanta
Rams: 119 yds, 34-31 LA
Seattle: 128 yds, 26-21 SF
MN: 186 yds, 27-10 SF
GB: 285 yds, 37-20 SF
In the three games they lost, they averaged 127 yds rushing; games won it was 157 yds. While it's only 30 yards, it's the TOP that also hurts. You could look at that 30 yards as three more drives. Their average TOP was 31:37, with only the Saints and Eagles higher. (GB was better than I would have guessed at 31:28.).
This really points out the biggest key to their offense. The two games I highlighted were the games with their lowest production on the ground.
Guess who was out injured - George Kittle.
He's the best TE in football right now and, if he's playing, it forces you to adjust your defense to stop him (usually by playing an extra DB or dropping a LB deeper into coverage). The challenge is that he's also a great run blocking TE so it makes it even harder to stop the run when you put an extra DB on the field to stop the seam routes and you end up with Kittle blocking him (or the linebacker playing deeper).
The fact that the two remaining teams have arguably the two best TEs in the league is saying something. Tom Brady also changes from having some of the best stats of all time to just an above average QB over the last decade without Gronk on the field.