Here are the 49ers’ grades after their 26-16 win over the Houston Texans.
QUARTERBACK: B-plus. Jimmy Garoppolo took more hits and faced more pressure than last week, and didn’t play well most of the game. His quarterback rating until the 49ers’ final drive of the third quarter was 67.8. He kept forcing passes into the middle of the field even though the Texans defense was clogging that area and daring him to throw outside. As a result, Garoppolo threw one interception and three other passes that could have gotten picked off – they bounced off the hands of Texans defenders. But Garoppolo improved as the game progressed. He led an 85-yard touchdown drive at the end of the third quarter, which gave the 49ers a 23-16 lead. He ended that drive with a touchdown pass. He helped seal the victory in the fourth quarter with three completions on four pass attempts. And he finished the game with 334 passing yards and a quarterback rating of 92.2. Very good.
RUNNING BACKS: A-minus. As good as Garoppolo was, Carlos Hyde was even better. He ran hard and fought for every yard he gained – the offensive line didn’t help him. Hyde rushed for 78 yards on 14 carries – 5.6 yards per attempt – and scored the 49ers’ first touchdown. Some team is going to pay him big bucks during the offseason, and I don’t think it will be the 49ers. They’ll get someone cheaper. Hyde did whiff trying to catch a deep pass in the second quarter, but I’m docking him only half a grade for that botched play. He doesn’t have the skill set to make that catch consistently. Kyle Shanahan should have had Matt Breida run that route instead. Or Kyle Juszczyk. He made two nice catches for long gains.
WIDE RECEIVERS: B-plus. Marquise Goodwin caught six passes for 106 yards – his first 100-yard performance since Week 5 when he caught five passes for 116 yards against the Colts. Goodwin has taken huge strides this season. I can’t remember the last time he dropped a pass. Good for him. The rest of the 49ers receivers didn’t do much.
TIGHT ENDS: A-minus. Garrett Celek followed up a good game against the Bears with a very good game against the Texans. During the third quarter, he caught a short pass over the middle, broke two tackles and ran 61 yards. And a few plays later, he made the 49ers only touchdown catch. He’s a keeper. The 49ers still need to add another tight end for next season.
OFFENSIVE LINE: C-minus. Right guard Brandon Fusco committed a false-start penalty, center Daniel Kilgore committed a holding penalty and left guard Laken Tomlinson committed two holding penalties. These guys have to go this offseason. So does Zane Beadles. He started at right tackle in place of Trent Brown, who missed the game with a shoulder injury, and gave up four quarterback hits. Jadeveon Clowney beat Beadles at least a dozen times. But that wasn’t surprising. Clowney is a great player. What was surprising was how often Kyle Shanahan asked Beadles to block Clowney one on one. Most coaches would give their backup right tackle some help against a great pass rusher.
DEFENSIVE LINE: A. Elvis Dumvervil bounced Tom Savage’s head off the turf and knocked him out of the game. And DeForest Buckner recorded a sack and two quarterback hits. Buckner should be an All Pro this season, but he won’t even make the Pro Bowl because his sack total is low. That’s not his fault. He would have 10 sacks by now if the Niners had a good edge rusher who could force quarterbacks to step up in the pocket.
LINEBACKERS: A. The 49ers defense allowed only 3.3 yards per carry. Reuben Foster led the team with eight tackles. Eli Harold recorded a sack when no one blocked him. And Aaron Lynch recovered a fumble.
DEFENSIVE BACKS: C-plus. No one could cover Texans wide receiver DeAndre Hopkins one on one. The Niners desperately need a good corner. But they don’t need a free safety. Adrian Colbert sealed the victory when he stripped Hopkins late in the fourth quarter.
SPECIAL TEAMS: A-minus. Bradley Pinion shanked a 24-yard punt. He’s good for one shank per game. But I give this group a high grade because Robbie Gould was four for four on field-goal attempts one week after he was five for five.
COACHES: B-plus. Like Jimmy Garoppolo, Kyle Shanahan and Robert Saleh improved as the game went on. Let’s talk about Saleh first. His game plan was terrible and he made no halftime adjustments. He kept giving Hopkins one-on-one matchups against the 49ers mediocre corners. How could Saleh really think any of his corners could handle Hopkins one on one? Richard Sherman isn’t in the 49ers secondary, and Saleh isn’t in Seattle anymore. He should have known he needed to use special coverages to nullify Hopkins. And Saleh eventually did use special coverages. After he benched Dontae Johnson during the third quarter, Saleh started jamming Hopkins at the line of scrimmage with a cornerback and covering him over the top with a safety. That’s called double coverage, and it worked. Hopkins didn’t do much after the first drive of the third quarter. Saleh should have double covered him all game. Now let’s talk about Shanahan. If he were a real head coach instead of a glorified offensive coordinator, he would have made sure Saleh used special coverages against Hopkins. Shanahan is supposed to be in charge of the entire team, including the defense. He should help his defensive coordinator. Maybe he doesn’t know enough about defense to give Saleh directions. Shanahan didn’t even seem to know offense early in the game. He got outcoached most of the first half. He kept calling passes over the middle even though the Texans were expecting those passes. But by the end of the second quarter, Shanahan diversified his play calling. He dialed up two outside throws to Kyle Juszczyk, both for big gains, and the offense moved the ball easily the rest of the game. The 49ers offensive coordinator and defensive coordinator figured things out eventually. All credit to them.