

The San Francisco 49ers’ Week 8 matchup against the Houston Texans was a story of missed opportunities and mounting injuries. The Texans, led by head coach DeMeco Ryans, the former 49ers defensive coordinator, handed San Francisco a 26–15 loss in Houston on Sunday, snapping the Niners’ momentum and finally exposing the toll of their long injury list.
After being held to barely 250 yards last week against Seattle, Houston’s offense exploded for nearly 500 yards of total offense. C.J. Stroud was sharp from the opening drive, spreading the ball around with rhythm and confidence. Jalen Noel emerged as one of his favorite targets, carving up the Niners’ secondary in key moments, while the Texans’ offensive line gave Stroud time against a depleted San Francisco pass rush.
Sunday marked a bit of a full-circle moment for Ryans, who spent six years with Kyle Shanahan and Robert Saleh, first when all three were in Houston as assistants and Ryans as a player, and later when Ryans took over as defensive coordinator in San Francisco after Saleh left for the Jets. If anyone knows how to attack Shanahan’s scheme, it would be Ryans and it showed today. Houston’s defensive front, led by Will Anderson Jr., caused chaos all afternoon.
San Francisco’s offense looked out of rhythm from the start. Christian McCaffrey, the team’s centerpiece, didn’t record a touch in the first quarter as the 49ers failed to move the chains. The Texans’ defensive line dominated up front, and the 49ers struggled to find balance or rhythm.
The bright spot came just before halftime. After a big return set the offense up with good field position and just 50 seconds left in the half, San Francisco finally found life. George Kittle capped the drive with a touchdown, on National Tight Ends Day. Later, 49ers other tight end, Jake Tonges, added another score to keep the Niners within reach, but turnovers and missed opportunities ultimately doomed them.
It’s becoming an unfortunate theme for Shanahan’s 49ers but another game, another wave of injuries. Linebacker Dee Winters left but later returned. Rookie Alfred Collins also exited briefly before rejoining the defense. Upton Stout, however, had a tough outing, getting targeted frequently by Stroud and the Texans’ receivers. The injuries continue to pile up, with San Francisco’s total now at 2,036 games missed since 2017 because of injury, the most in the NFL during that span.
The 49ers had chances to claw back into the game, but a late interception in the final two minutes sealed their fate. Kendrick Bourne and Jauan Jennings had quiet days overall, though Jennings made a huge late grab to keep a drive alive.
Still, the 49ers’ lack of early execution proved too much to overcome. Now 5–3, San Francisco faces an uphill climb as they try to get healthy.