The San Francisco Giants’ offense has been so bad over the last three weeks that Wednesday’s three-run output felt like an outburst.

In many ways, it was.

Since Wilmer Flores hit three home runs in one game against the A’s on May 16, the Giants have failed to score more than four runs in a game. That’s 11 straight contests, now.

In the Giants’ last 21 games, they’ve scored four runs or fewer 16 times — that’s 75 percent of the time.

And in those 21 games, the Giants have scored one run — just one — a third of the time.

In the last 13 days, the Giants have scored a total of 24 runs. Subsequently, their position in the wild card standings has slipped to the point where they, after a 4-3 series-sweeping loss to the Tigers Wednesday, were not a playoff team.

Given how bad the offense has been, it’s incredible that the Giants held onto a spot for as long as they did.

And looking at the team’s starting nine, it’s hard to imagine things are going to dramatically turn around anytime soon.

Yes, there will be better days ahead for Matt Chapman (who had a great game Wednesday after shortening his swing) and perhaps even Willy Adames (who is now hitting .208 with an abysmal .621 OPS). But will that counteract the bad?

Flores, who grounded into two tough-to-swallow double-plays on Wednesday, might be nearing the end of his magic run, and Mike Yastrzemski (.450 OPS in the last two weeks) and Jung Hoo Lee (.657 OPS over the same stretch) aren’t pulling their weight in the leadoff and clean-up spots, respectively.

The Giants’ offense was never supposed to be all that good. This is a team that’s built around pitching and defense. So when it’s below-average for as long as it has been, it’s a big issue — there’s no reason to believe a big, three-week counterbalancing hot streak is coming for San Francisco’s bats.

There’s only so much first-year president of baseball operations Buster Posey can do to fix this lineup. Posey has been preaching patience and trust, but how much patience can one have for a group of players that, on the whole, shouldn’t be trusted to be anything better than mediocre?

There’s no question that the Giants need to seriously consider making a move or two to improve their batting order.

The easiest place to do that is at the bottom of the order. Batting spots Nos. 7, 8, and 9 have been a hole for the Giants this season, with first baseman LaMonte Wade Jr (Wednesday’s No. 7 hitter) and Tyler Fitzgerald (the typical No. 9) posting woeful years to date. (Fitzgerald’s May has been a tough watch, in particular.)

There’s some action down at the minor-league level, with Jerar Encarnación playing first base on his rehab assignment with the Sacramento River Cats. Encarnación’s bat would be a welcome addition to the Giants’ lineup, and first base is an ideal spot for replacement.

If only Encarnación weren’t such a bad fielder. He had a bad error in Tuesday’s River Cats game.

On Wednesday, the River Cats tried one-time top prospect Marco Luciano at first base — a position he’s never played as a professional. It’s worth a shot.

But the Giants’ answers are probably not in-house.

No, Posey will likely need to do something aggressive and make a trade at some point in the next nine weeks before the trade deadline.

That is, if the Giants’ bats can perform well enough to keep them in the hunt for a playoff spot between now and then. Posey might not have all that time at his disposal.

Indeed, it’s not too early to consider a few trade options from around baseball. With first and second base being the obvious spots for upgrades, here are some names from teams to keep an eye on in the coming weeks.

Rhys Hoskins — 1B — Milwaukee Brewers >> You’ve probably already heard this name bandied about on radio and TV (or, more realistically, podcasts and YouTube). Hoskins is going to be a top target for as many as 10 teams this June and July, with the Brewers in a weird spot as an organization, Hoskins in the final year of his contract, and the market for bats being so scarce that it would be downright malpractice not to trade him.

With Hoskins being a Sacramento guy and a childhood Giants fan, the connection is easy.

And seeing as he’s slashing .282/.384/.459 this season (as of Wednesday morning), no one should fight that connection.

Ultimately, I think the rental price will be too high for the Giants, who don’t exactly have an overflowing farm system, but that doesn’t mean Posey shouldn’t be trying to land Hoskins every day until July 31.

Bo Bichette — SS — Toronto Blue Jays >> Yes, a shortstop.

I’m not advocating moving off Adames, though such a move looks justifiable at the moment.

Rather, I’m looking to play Bichette, who has only played shortstop as a pro, at second base.

Frankly, the Giants would be doing him a favor by moving him to the other side of the diamond. Bichette is a free agent after this season, and his drop-off from MVP-caliber player to one of the worst everyday players in baseball last season was dramatic. As such, I doubt there will be many teams looking to replace their shortstop with him.