Use more tight spaces and twisty areas. Limiting the range of visibility limits the range of detection and starting encounter range when both sides are acting stealthy. It's harder to fireball minions when they are already in your face or the encounter area is only 20' roundish already because of friendly fire.
That also helps with the improved invisibility. A close range encounter that starts with the wizard using his turn to cast a defensive spell starts with determining when he takes that first action so if the situation suits surprise checks it's not that hard to surprise the wizard often enough. No action first round, takes a beating. If initiative was also lost takes a beating the second round too before the defensive spell is up. Doesn't take an offensive action until round 2 or 3 depending on surprise either way. Make sure the opponents are using that delay effectively. (Or laugh when the rest of the party destroys that monster while the wizard turns invisible and hides.)
Don't give the wizard a target he can attack. Bow range is greater than spell range for the vast majority of spells and walking into a room that erupts into a stinking cloud spell while the door close allowing 7 rounds before the room fills with sand gets a bit more problematic. There are things the wizard can do in that situation but it's not as easy as "I magic missile the darkness".
Create an encounter with timed events on specific rounds, like reinforcements from x area arrive on round 3 or 4. On round 6 y trap is armed and triggered if the kobolds from z area are not dispatched first.
Encounters are as basic or complex as the DM decides to design them. Ultimately the goal is resource attrition so it doesn't matter if it's 8 combats over the course of the day or 1 massive complex battle with waves of opponents and triggered events (at least as far as the wizard is concerned -- too many single big battles is hard on short rest classes). Mixing up both styles helps to vary combat and if the wizard doesn't know how many combats to expect then it's harder to determine when to blow through slots.
Play the occasional drawn out running the clock where long resting isn't an option and the day is 14 battles long. The thing to keep in mind is just because the game session only have 1-2 encounters doesn't mean the characters are getting a long rest every session. It's pretty normal in the game I run for starting off a new session from a point in the previous session that did not provide a long rest in between.
Start a session with assassins attacking while the party is resting and interrupting that long rest. No rest means no resource recovery. Don't abuse that. It's interesting used once, maybe twice with a long gap in between.
Add a lot of social and exploration encounters. Wizards have tools to handle those but charms tend to let the target know what happened after the fact and multiple exploration challenges can eat through slots that will no longer be there for the combat encounters. And even wizards can only prepare for so much.
The short answer is "variety".
Hope that helps.