Michigan’s pre-rivalry week showing wasn’t what was expected.

The No. 6-ranked Wolverines were supposed to easily handle Northwestern, which has been up-and-down all year, Saturday in Ann Arbor.

However, a sluggish first half and a semi-dull second half led to a 33-7 victory.

The score didn’t actually reflect Michigan’s struggles, though.

It wasn’t until late in the 3rd quarter that the Wolverines acted with a sense of urgency — they probably knew that they had to ramp-up efforts or risk facing a lull entering rivalry week.

DJ Turner’s interception in the 4th quarter, a fantastic pick off a tip, basically was the play that really set Michigan in motion … but again, it was a late burst during an otherwise mundane afternoon.

Now 7-0 heading into next week’s date with No. 9-ranked Michigan State in East Lansing, the Wolverines must take a deeper look at their roster and ask themselves “have we peaked, are we fizzling out?”

Michigan just hasn’t looked quite as lethal during the past 3 games. Lackluster vs. Rutgers, average against Nebraska and almost unbearable to watch vs. Northwestern.

Clinging to a 17-7 lead after a missed Wildcats’ field goal attempt in the 3rd quarter, the Wolverines hung on long enough to eventually open up the game in the 4th quarter.

What has led to Michigan’s apparent decline in firepower?

Let’s take a look at what’s working and what isn’t.

Bland play-calling

The rushing game hasn’t been as powerful as earlier in the season. Of course, Michigan put up big numbers in the beginning of the season but it just hasn’t produced anywhere near expectations. Running back Blake Corum wasn’t going to rack up 100 yards every game. And he did reach that plateau Saturday vs. Northwestern — but the Wolverines seem a bit off-kilter when it comes to offensive rhythm … and that starts with the running game.

Sure, Corum went off for 100-plus and 2 TDs. Hassan Haskins had a productive afternoon too, also breaking the 100-yard threshold and scoring twice. This week, Michigan showed off its familiar running game but the rushing attack just hasn’t been consistent during the past three games; it’s been either a highlight or afterthought.

Will Cade break loose?

By the looks of things, Michigan is keeping QB Cade McNamara relatively in the safe zone for a couple of reasons. Firstly, it’s clear that McNamara doesn’t have the accuracy to consistently drop big passes on defenses. He was 0-for-4 on deep balls in the first half alone.

Despite the fact that he’s throwing a lot more, McNamara still hasn’t wowed with his arm through 7 games. He’s been reliable and steady, but he hasn’t been anything to strike fear into an opponent. Unless he finds a way to post a 300-yard game, McNamara won’t be considered a true game-changer — he’s definitely a game manager, though.

Still giving up big plays

Northwestern RB Evan Hull had a 75-yard TD run in the first half and a 25-yard reception in the second half. Chunk-yardage plays spell doom, and the fact that Michigan is vulnerable is cause for concern as the Wolverines head into the meat of their schedule.

Michigan State has several big-play threats. Michigan won’t pull off a win vs. the Spartans if it continues to allow plays that quickly shorten the field for the opposition.

Bubble screens and hitting the edge worked for the Wildcats. The Spartans, when at full capacity, can do similar things with their passing game. Michigan had trouble with Malik Washington and Hull, so imagine what Spartans stars such as WRs Jayden Reed and Jalen Nailor will do next Saturday.

JJ getting prepared

If the Wolverines have an emergency or want a change of pace, QB JJ McCarthy will be ready. He hasn’t thrown the ball a lot, mostly just coming in for a handoff or taking it himself with a run, but he’s gaining valuable experience and could be an X-factor against the Spartans. The element of surprise with McCarthy is one of the most intriguing storylines surrounding Michigan’s offense.

He can break off a big run or connect on a deep pass. Scenario: 4th-and-3, roughly 4:30 to play — he avoids tacklers and a huge loss before throwing across his body to find TE Carter Seltzer for the 1st down, a prime example of McCarthy’s ability to make things happen.

He’s more athletic than McNamara, but that doesn’t mean that he needs to replace McNamara — at least right now, at this point of the season. It’s already too late to move in a new direction at QB, but it helps to have a backup who’s comfortable should things go awry.

D-line still humming

Aidan Hutchinson was a focal point of Northwestern’s offense. The Wildcats knew they had to bottle up the soon-to-be All-American or risk having QB Ryan Hilinski eating dirt all afternoon. Hutchinson, along with DL Mike Morris, had a sack in the first half.

Along with pressuring the QB, Hutchinson also scooped up a fumble in the 4th quarter — a play that definitively decided the outcome of the game. That recovery was Northwestern’s signal to pack up and head back to Evanston.

Christopher Hinton had a tackle vs. Northwestern, but his presence was a lot more than what can be covered on a stat sheet. Because of Hinton, the Wolverines were able to penetrate the backfield with linebacker Josh Ross, who was the glue of the defense vs. the Wildcats.