The up-and-down nature of the NFL was never more apparent than on Sunday.

Coming off an impressive showing in Week 7, the 49ers had an all-around bad day at the office. The Houston Texans, whose offense was pathetic in their previous game, did very little wrong.

As a result, the 49ers are limping home after a 26-15 loss to the Texans.

The 49ers were riding the high of a 20-10 win over the Atlanta Falcons. Now, they stand at 5-3 on the season and fall behind the Los Angeles Rams and Seattle Seahawks in the NFC West.

Meanwhile, the Texans were coming off a rough road loss to the Seahawks on Monday night.

Here is the report card from the 49ers’ Week 8 game against the Texans:

Rushing offense

The 49ers simply could not find any rhythm on offense, which meant they were not able to sustain drives and stick with the running game.

One week after running the ball 39 times, the 49ers had just 10 attempts on the ground. And two of those carries came from quarterback Mac Jones. Christian McCaffrey was held to 25 yards on eight rushing attempts.

Grade: C-minus

Passing offense

After a rough start, the 49ers showed some sign of life within the final minute of the first half when Jones hit Kendrick Bourne for 18 yards and George Kittle for a 17-yard touchdown.

The 49ers had an opportunity for a huge play in the third quarter but Jauan Jennings could not haul in a deep over-the-shoulder pass from Jones. Jennings made amends with a 25-yard catch on a third-and-17 to set up a touchdown. Tight end Jake Tonges had a 2-yard scoring catch in the second half.

Jones completed 19 of 32 passes for 193 yards with two touchdowns and one interception. He was sacked two times for minus-18 yards.

Grade: C

Rushing defense

The 49ers had way too many missed tackles and repeatedly could not wrap up Texans ballcarriers short of the first-down marker. Rookie Woody Marks led the Texans with 62 yards rushing on 11 rushing attempts.

Houston gained 157 yards on the ground on 36 carries.

Nobody on the 49ers’ defense looked particularly sharp, though Tatum Bethune (14), Malik Mustapha (11) and Dee Winters (10) registered double-digit tackle totals.

Grade: D-plus

Passing defense

The 49ers’ pass rush was bad, and their pass defense might have been worse.

The 49ers generated no pressure at all on Houston quarterback C.J. Stroud, who has been under extreme duress for most of the season behind the Texans’ offensive line. On this day, Houston’s offensive line was much better than the 49ers’ defensive line.

Stroud, who had been in a slump, completed 30 of 39 passes for a season-high 318 yards with two touchdowns and one interception.

Deommodore Lenoir ended the 49ers’ interception-less streak at 14 games with a pick late in the first half.

Grade: F

Special teams

There was not a whole lot to grade in this game because the 49ers’ defense had a difficult time getting off the field and forcing punts.

Backup running back Brian Robinson provided the first spark for the 49ers on Sunday with a 46-yard kickoff return late in the first half. That return, and a 15-yard facemask penalty, got the 49ers in position for a late-half touchdown.

Grade: B

Coaching

Defensive coordinator Robert Saleh tried to blitz. That did not work. He tried to play coverage. That did not work, either.

There was little the 49ers did on either side of the ball that produced good results. There were just way too many times in which the Texans had receivers open in the middle of the field.

Offensively, the 49ers were inconsistent.

Grade: C

Overall

Houston has one of the NFL’s top defenses. And it looked the way. But the Texans have one of the worst offenses, and the 49ers’ defense made them look good.

The 49ers’ battered and tattered team looked more battered and tattered than it has at any other point this season.

Grade: C-minus

Download and follow the 49ers Talk Podcast