Michigan has a good football program, and it’s certainly a lot better since Jim Harbaugh assumed control as coach in 2015.

The Wolverines, on paper, have enough talent to win 9 or 10 games every year, and they’ve consistently done that under their 7th-year head coach.

Saturday’s bitter 37-33 loss to No. 8 Michigan State shouldn’t change opinions — at least not drastically — in regard to the trajectory of the winged-helmet wearing Wolverines, who were No. 6 in the Associated Press poll entering the rivalry clash.

At 7-1, Michigan’s dreams are still within reach. The season isn’t over because of the Spartans’ comeback heroics in the 3rd and 4th quarter.

Again, Michigan is a good program and in the best shape it’s been for at least 20 years.

However, Harbaugh’s futility against ranked teams and rivals can’t be ignored. He’s 3-9, combined, against Michigan State and Ohio State. He has lost 2 in a row to the Spartans and has yet to beat the Buckeyes.

Those are the goals in Ann Arbor: Beat rivals, win meaningful games and compete for a league title.

With the exception of beating rivals, the Wolverines have steadily worked toward returning to the top of the Big Ten standings.

But they have to get over the hump.

They have to realize that they are not elite; they’re just good — and that’s OK, for now. Now in the 7th season under Harbaugh, it’s time for Michigan to put its money where its mouth is and rebound from Saturday’s upset loss.

Yeah, there were iffy calls on Saturday. Every game has at least one or two of them. Harbaugh, though, was simply outcoached by Mel Tucker, who in his second season in East Lansing is the only MSU coach in the past 20 years to win his first two meetings vs. Michigan.

It’s time for Harbaugh, and Michigan, to self-evaluate and formulate a winning strategy for the rest of the season. There are still four more games on the regular-season schedule, and the Wolverines — if they get right — could easily finish with another 10-win season … maybe even 11 if they find a way to upend mighty Ohio State, which is clearly head of the class in the B1G.

“It’s not the way we wanted it to go,” Harbaugh said of the loss to MSU. “The players played hard — and now they’re going to have to strengthen their resolve.”

It’s on the players to make things work for the rest of the year. But Harbaugh also needs to take responsibility and face the fact that he has fallen short when the cards are on the table. An atrocious record against ranked teams looms over his head like a dark cloud.

He’s 11-17 against top-25 teams, 2-9 vs. those teams on the road and 2-13 vs. top-1o opponents. There is no way to sugarcoat it: Harbaugh simply hasn’t gotten it done at a high level.

Sure, the Wolverines have star power and have beaten up on lesser opponents. But the glory of a 7-0 start in 2021 was quickly erased when the clock expired at Spartan Stadium. UM should have won that game, leading 30-14 in the 3rd quarter. But the train was derailed, and CB Charles Brantley became yet another Spartans rivalry legend with his game-sealing interception late in the 4th quarter.

Michigan loves its storied football history, which has been romanticized by sayings like “the team, the team, the team,” the phrase “Michigan Man” and a whole lot of bravado.

That was then, and this is now. And even back then, Michigan wasn’t an annual national title contender. It was still a 9- to 11-win team, regardless of the hype and hysteria.

Firing Harbaugh seems to be the easy solution, at least in the minds of some fans. That’d be a dumb move, though. Why fire a guy who has done more for Michigan football in the past 7 years than coaches such as Rich Rodriguez and Brady Hoke? Why start another rebuild? Why ignite the flames of an overexaggerated history and set sky-high expectations?

Michigan is a good team with a good coach. Not everyone can be elite, and it’s time for the Wolverines to get real and realize that they have a lot of work to do before being recognized as a top-tier program, starting with their own league.