Skip to content
KETOFOCUS.

Sweater weather calls for keto comfort food. Get Cozy →

Keto Cauliflower Gratin

Loaded with two cheeses and bacon, this creamy keto cauliflower gratin is the side dish I'm asked to bring to every holiday dinner, at 2.7g net carbs and 11.8g protein. Cauliflower is the main ingredient, but nobody at the table will care.
  • 2.7gnet carbs
  • 11.8gprotein
  • 35minutes
  • 6servings

This post may contain affiliate links. See my disclosure policy.

I started making this back in 2019 when I needed a holiday side dish that could replace potato gratin without anyone noticing. What I ended up with was a low carb side dish so ridiculously cheesy and rich that my family now requests it for every gathering, every potluck, and most weeknight dinners too.

The base is simple. Steam the cauliflower, squeeze out every drop of moisture, then smother it in a sauce made with butter, heavy cream, sharp cheddar, and gruyere. I add bacon and fresh thyme because those two ingredients take this from a basic veggie side to something people actually fight over. The gruyere melts smooth and nutty while the sharp cheddar brings that deep, punchy flavor. Together they create this velvety sauce that clings to every floret.

If you love cauliflower dishes, you already know it can do almost anything. I use it in my twice baked loaded mashed cauliflower, my cauliflower mac and cheese, and even cauliflower tots. But this cheesy gratin is my favorite way to cook it. There are only 3 net carbs per 100 grams of cauliflower, so you get all that creamy, cheesy goodness without the carb count of traditional potato gratin.

The biggest thing I learned after making this dozens of times: moisture is the enemy. If you skip the step where you press the steamed florets dry, you end up with a soupy mess instead of a thick, creamy dish. I layer the cauliflower between paper towels and press firmly until no more water comes out. Some readers roast the florets at 400 degrees instead, which works great because the oven is already on and you avoid adding moisture in the first place.

I also love that this is a perfect make-ahead recipe. I assemble the whole thing 1-2 days before, store it covered in the fridge, and bake it straight from the fridge at 375 degrees when I am ready, adding about 5 extra minutes to the bake time. The flavors actually meld together while it sits in the fridge, so if anything it tastes better the next day. It also freezes for up to 3 months. I wrap the unbaked dish tightly in foil, thaw it overnight in the fridge, and bake as directed. The texture comes out slightly softer than fresh, but the cheese sauce holds up. One of my readers figured out that reheating at 50% microwave power for the first minute, then full power for 45 seconds, keeps the gruyere sauce completely smooth and the bacon actually crisps back up. I tested her method and she is right. For the oven, I cover it with foil and reheat at 350 degrees for 10-15 minutes so the cheese melts back together instead of drying out on top.

If you are building a keto holiday spread, pair this with my sweet potato casserole, cornbread stuffing, and green bean casserole. I served all three last Thanksgiving and nobody missed the carbs. Not even the non-keto people at the table.

Low Carb Cauliflower Au Gratin with Bacon and Gruyere

spooning out cheesy gratin

I make this every time I need a side dish that actually impresses people. It is creamy and cheesy and smothered in a sauce made with butter, sharp cheddar, and gruyere. The cheese and bacon do all the talking here, not the cauliflower.

What I love about this low carb cheesy bake is how it transforms a simple vegetable into something people go back for seconds on. If you have tried my loaded cauliflower casserole, this is the dressed-up holiday version. Two types of cheese make the difference. Sharp cheddar brings a bold, punchy flavor and the gruyere melts smooth and nutty. Together they create a rich, velvety sauce that coats every single floret. Think of it as the keto answer to potato gratin.

holiday side dishes on a white wooden table

Benefits of Cauliflower on the Keto Diet

Cauliflower is the ingredient I reach for more than anything else on keto. I turn it into mac and cheese, cauliflower tots, and even broccoli cauliflower salad. There are only 3 net carbs in 100 grams, it is high in fiber and antioxidants, and it takes on whatever flavor you throw at it. For this cheesy bake, that means butter, bacon, and a ridiculous amount of cheese.

steamed cauliflower in a basket

Getting the Moisture Out of the Cauliflower

This is the step I cannot stress enough. You need to get as much moisture out of the steamed cauliflower as possible. If you skip this, your gratin turns soupy instead of creamy. I place the florets between thick layers of paper towels or clean kitchen towels, then press firmly until no more water comes out. I usually go through 3-4 rounds of towels before I am satisfied.

A few readers have told me they roast the cauliflower at 400 degrees instead of steaming, and I have tried it both ways. Roasting works great because the oven is already on and you avoid adding moisture in the first place. If you go that route, roast until the florets are just fork tender (not mushy) since they will cook more in the gratin. An Instant Pot works too. One of my readers pressure cooked the florets for 2 minutes on high with a quick release, and I have done it since. Pressure cooking traps more moisture than steaming, so I go through 4-5 rounds of pressing instead of 3-4.

creamy cauliflower gratin in a white casserole dish

Best Cheeses for Gratin

I use a combination of sharp cheddar and gruyere in this keto cauliflower casserole, and I have tested enough cheese combos to know this is the one. Sharp cheddar is pungent and earthy, while gruyere is nutty and melts like silk. If you want to add a third cheese, Parmesan works beautifully on top for extra crunch. I grate it fresh, not the stuff from the green can.

How I Make This Cheesy Cauliflower Bake

The almond flour roux is the step that confuses people. It does not thicken the way wheat flour does, so if you are standing at the stove waiting for a thick bechamel, you will overcook it. I stir the almond flour into the melted butter for 30 seconds, whisk in the cream, and simmer it for the full 5-7 minutes in the recipe card. Watch for the sauce to coat the back of a spoon. That is your signal to pull it off heat and stir in the cheese. It will still look thinner than a wheat flour sauce. It sets up in the oven once the cheese melts and the gratin bakes. I wasted batches chasing stovetop thickness before I figured this out.

Discover more keto recipes on our channel Hundreds of keto recipe videos, with step by step instructions and the tips that make keto easy.
KetoFocus
The recipe

Keto Cauliflower Gratin

Print Pin
Prep 10 min Cook 25 min Total 35 min Serves 6

Ingredients

Servings 6

Cauliflower Gratin Ingredients

Step by Step Instructions

  1. Preheat oven

    Preheat oven to 375 degrees.

    red 375 on a black background
  2. Steam cauliflower

    Steam cauliflower florets in a large pot with salted water until fork tender.

    cauliflower florets in a steamer basket
  3. Squeeze out moisture

    Remove florets and place in between two layers of paper towels or clean towels. Gently press the excess moisture out of the florets. Set aside.

    using paper towels to squeeze moisture out of cauliflower
  4. Melt butter

    In a saucepan, melt butter over medium heat. Stir in almond flour and cook for 30 seconds.

    butter simmer in a saucepan
  5. Make the sauce

    Slowly whisk in heavy cream. Add salt, onion powder, garlic powder and pepper. Bring to boil, then reduce to a simmer until thick (about 5-7 minutes).

    whisking cream sauce
  6. Of course, add cheese

    Remove from heat and stir in cheeses, bacon and thyme.

    creamy, cheesey sauce in a saucepan with a whisk
  7. Bake it

    Add half the cheese mixture to the bottom of a cast iron skillet or casserole dish. Add florets on top of the first cheese layer. Spoon remaining cheese mixture over the top of florets. Sprinkle with additional cheese and thyme. Bake at 375 for 25 minutes.

    shredded cheese and thyme on top of a casserole

Nutrition

Per serving: 1/6 of recipe

Calories
351
Fat
33.4g
Protein
11.8g
Total carbs
4.4g
Net carbs
2.7g

Nutrition is an estimate calculated from the ingredients listed. Brands vary, so check labels if you track closely.

Frequently Asked Questions

Is cauliflower gratin the same as cauliflower au gratin or cauliflower cheese?

Yes, all three names describe the same idea: cauliflower baked in a cheese sauce with a browned cheese crust on top. 'Au gratin' is the French name for that crust, and cauliflower cheese is the British name for the dish. I use the shorter name, but if you search any of the three you are looking for this. The real difference between recipes is the cheese blend and whether anyone bothers pressing the moisture out. I use sharp cheddar and gruyere together, which gives more depth than one-cheese versions.

Can I make this dairy-free or vegan?

I have tested a dairy-free version using full-fat coconut cream instead of heavy cream and nutritional yeast with a cashew cheese blend in place of the cheddar and gruyere. The butter has to go too, so use the same 3 tablespoons of coconut oil for the roux. For a vegan version, leave out the 6 slices of bacon as well. It is a different dish (you lose that nutty gruyere depth), but it works as a creamy, savory side. I would skip trying to find a perfect vegan cheese substitute and lean into the coconut cream with lots of garlic, thyme, and nutritional yeast. The flavor shifts, but it is still really good.

What size casserole dish do I need?

My recipe as written fits in a dish slightly smaller than 8x10, or a 10-inch cast iron skillet. If you are doubling it for Thanksgiving or a bigger group, use a 9x13 casserole dish. I have doubled this more times than I can count and the only thing I adjust is the bake time. I add about 5-7 extra minutes since the thicker layer needs more time for the center to bubble.

Can I use coconut flour instead of almond flour in the sauce?

I would stay with almond flour for this one. It has enough fat to play nicely with the butter without fighting the cream. Coconut flour absorbs far more liquid, so if it is all you have, cut it to about 1 tablespoon instead of 3. The sauce sets thicker and denser that way.

Browse by ingredient
Similar recipes

People who cooked Keto Cauliflower Gratin also made

Reviews

Tap to rate

4.7 from 23 ratings, 18 written

Made this recipe?

Replying to Lawonica

Your rating

Dani

Pulled this out expecting to have broken the sauce somewhere, and it held. I’m new enough to keto that I wasn’t sure almond flour could actually thicken cream the way regular flour does, and now I am. What got me was how the onion and garlic powder dissolved into the sauce. Four spices and it tasted like there was something else going on. First keto gratin.

Reply

Rick

I brought this to Thanksgiving and it disappeared faster than the mashed potatoes!

Reply

Alex

I stood over the butter and almond flour roux waiting for it to break or clump, and it just didn’t. First gratin, first roux. Can you substitute coconut flour here, or does almond flour do something specific to how the sauce sets?

Reply

Annie Lampella

Almond flour has enough fat in it to play nicely with the butter and not fight the cream. Coconut flour absorbs way more aggressively, so you’d cut it to about 1 tablespoon instead of 3, and the sauce still sets thicker and denser. I’d stay with almond for this one.

Reply

Ana

The almond flour sauce needs more stovetop time than the recipe suggests, learned that the hard way. Pulled it too early and the whole thing came out soupy once baked, still good enough to eat but not what it should be. Second time I let it simmer two full minutes past the first bubble and it set up perfectly. Four stars because the gratin itself is really solid, just don’t rush that sauce.

Reply

Corinne

I assumed it would taste like cauliflower. Doesn’t.

Reply

Annie Lampella

Six slices of bacon and two kinds of cheese will do that. I stopped telling people what’s in it.

Reply

Diane Lee

The thing I gave up on going keto wasn’t bread, it was my grandmother’s scalloped potatoes. Heavy cream, whatever hard cheese she had, every Sunday. I figured that whole category was just closed to me. This gratin proved me wrong. I stood at the counter eating it before I even plated it, not a sophisticated review, but an honest one.

Reply

Annie Lampella

The gruyere and cream sauce hit those same Sunday-dinner notes. Nobody needs to know.

Reply

Matt Wilson

Genuinely wasn’t sure almond flour could hold a cream sauce. I’ve tried low-carb substitutes that look promising and then break or turn grainy once they cool, so I went in skeptical. This one stayed smooth, coated the cauliflower evenly, and the cheddar and gruyere melted into it without any weird texture. My grandmother made gratin with a proper roux and I’d kind of written off that whole category of dish four months into keto. Actually eating this and not feeling like I was settling was bigger than I expected. I texted my sister after. It doesn’t taste exactly like hers but I’m not mourning it anymore, and that’s really the whole point.

Reply

Annie Lampella

Thanks Matt! The gruyere is what keeps that sauce silky instead of grainy. Glad it held up for you!

Reply

Rachel

crushed pork rinds mixed in with the top layer. obsessed.

Reply

Annie Lampella

Pork rinds on top is so obvious and I completely missed it. The crunch is what this gratin needed.

Reply

Elaine N.

My teenager went back for seconds and asked if it was some kind of pasta. Told him it was cauliflower and he just shrugged and kept eating. The gruyere does something to this sauce I wasn’t expecting.

Reply

Annie Lampella

That’s the gruyere. It goes nutty in the cream sauce in a way cheddar just doesn’t. Shrug and keep eating is the whole review.

Reply

Denise

Squeeze the cauliflower until you think you’ve gotten it all out, then squeeze again. I skipped that step the first time and the sauce came out watery. Second batch was completely different.

Reply

Annie Lampella

Three rounds with dish towels is my floor. It looks dry after the first two and then you press again and there’s still liquid coming through.

Reply

Rosa

My son scraped every last bit of gruyere crust off the top before I could even serve it, and he’s the one who spent four years telling me he hates cauliflower.

Reply

Annie Lampella

Four years of hating cauliflower, one gruyere crust. He probably skipped right past the cauliflower part entirely.

Reply

Heather

Wrung the cauliflower out way more than seemed necessary. Sauce stayed thick though. Swapped regular gruyere for smoked and it picked up the bacon better than I expected.

Reply

Annie Lampella

Smoked gruyere with bacon is a really good instinct. The smokiness layers instead of just sitting on top. Filing that away for the next time I make it.

Reply

Samantha

The squeeze step is where this either works or doesn’t, and I undersold it the first time. Paper towels got maybe a third of the moisture out. Switched to a thin dish towel and wrung it out over the sink the way you would a wet chamois cloth, and the sauce came together without breaking and the whole thing set up the way it’s supposed to. Worth knowing on the gruyere too: buy a block and grate it yourself, pre-shredded has anti-caking agents that mess with the melt and you end up with a grainier sauce than you want. Let it rest about five minutes before serving, the sauce tightens up and you get cleaner slices. Four stars because I’d push the bacon to at least a full cup next time, but the base recipe is solid once you figure out the moisture.

Reply

Annie Lampella

Yeah, block gruyere only. Pre-shredded doesn’t melt right in cream sauce, the anti-caking coating is the issue. And the chamois cloth comparison is accurate, paper towels quit halfway through.

Reply

Alicia

I make a batch of this every Sunday and it holds up through the week way better than I expected (cream sauces usually break on me by day two). The thing that made the difference was really committing to squeezing out the cauliflower moisture with a dish towel before it goes in, otherwise it gets watery on reheat. The gruyere is doing something special in that sauce and I’ve stopped making other cauliflower recipes since I found this one.

Reply

Annie Lampella

The gruyere is what holds that sauce together on reheat. Sharp cheddar alone wouldn’t make it three days.

Reply

Beth

I was convinced the cauliflower would just turn watery and ruin that cream sauce, but squeezing it out in the towels actually works. The gruyere gives it this nutty depth I wasn’t expecting. Genuinely surprised.

Reply

Annie Lampella

The towel step is the one I was most skeptical about writing into the instructions. Glad it actually holds up out there.

Reply

Kristen

Been batch cooking this on Sundays for about a month now and the reheating game took me a while to crack. Squeeze out the cauliflower way more aggressively than you think, and I mean really lean into it with the towels. When I skimped on that step the gruyere sauce broke on reheating and the whole thing got watery and sad. Now I press for a full minute and the leftovers are freaking indistinguishable from fresh. Portion into individual containers right after it cools, reheat covered at 50% power first minute then full power for 45 seconds, and it holds. The bacon actually crisps back up in the microwave which blew my mind a little. Four containers ready every Sunday and I’m not even close to tired of it.

Reply

Annie Lampella

The bacon crisping back up in the microwave is the part I didn’t expect either. That first minute at 50% is what saves the gruyere. Going straight to full power breaks the sauce every time.

Reply

Sam Johnson

Made this eight or nine times now. The moisture step is the one I keep refining. Originally just patting the florets dry, now I press hard with a clean towel and let them sit a full five minutes before they go in. The sauce comes out completely different when you get that step right, thicker, clings to every piece. Gruyere is non-negotiable for me. Cheddar alone doesn’t have that nutty depth. I bump the oven to 385 for the last ten minutes to get real color on top. Cold winter nights, this is on the table every other week.

Reply

Annie Lampella

The five minute sit is the part I kept skipping and wondering why my sauce wasn’t thicker. And yeah, 385 at the end. That’s how the gruyere actually browns.

Reply

Luis

I’m new to keto cooking and this is my first time making a gratin, so bear with me. When you melt the butter and stir in the almond flour before the cream, does the sauce thicken like a regular bechamel, or does almond flour behave differently and stay thin before it comes together? I bake with almond flour all the time but never in a hot cream sauce, so I have no idea what to expect. Scared I’ll pull it too early thinking something’s wrong, or overcook it chasing thickness. Is there anything visual to watch for, like coating the spoon or a color change, that tells you it’s actually ready for the cheese? Making this Saturday and that step has me nervous.

Reply

Annie Lampella

Almond flour doesn’t work like wheat – no starch, so it won’t gel the same way. You’re not chasing bechamel consistency here. Watch for the cream to just barely coat the back of a spoon, then go straight to the cheese. It thickens up in the oven.

Reply

Lawonica

This recipe was perfect! I cooked a head of cauliflower for 2 minutes in my instapot. I am excited to try more recipes!!😊

Reply

Annie Lampella

IP works well here. Just press the florets really dry after, pressure cooking traps more moisture than steaming and that extra liquid goes straight into the cream sauce.

Reply

Susan

This recipe is delicious! The whole family loved it. I roasted the cauliflower instead of steaming to avoid issues with moisture. It was perfect.

Reply

LaVerne

How long did you roast it?

Reply

Regan

I too roasted mine instead of steaming it. The oven is already on, so this will save you a step and a dish to wash. Plus no added moisture this way. I cooked the cauliflower just enough to be tender bc it’s going to cook more in the oven when mixed with the other ingredients.

Reply

Keep going

More Sides Recipes

See all 62 Sides recipes

Get new recipes from Annie

One email a week. Unsubscribe whenever you like.