Keto Cauliflower Mac & Cheese — Smoked
Equipment
- 1 Smoker or kettle grill set up for indirect heat Target 225°F chamber temperature. Apple or cherry wood chunks preferred.
- 1 10-inch cast iron skillet Must be oven- and smoker-safe. Enameled Dutch oven works equally well.
- 1 Food processor For ricing the cauliflower into uniform 3–5mm pieces.
- 1 Digital kitchen scale Essential for weighing xanthan gum to 0.1g precision.
- 1 Whisk
- 1 Clean kitchen towel or cheesecloth For pressing moisture from riced cauliflower.
Ingredients
Cauliflower Base
- 1 large head fresh cauliflower Approximately 900g / 2 lb. Riced in a food processor — do not use frozen.
- 1 tablespoon unsalted butter For sautéing the riced cauliflower to drive off surface moisture.
- 1 teaspoon kosher salt
- ½ teaspoon black pepper, freshly ground
- ¼ teaspoon garlic powder Low-FODMAP compatible at this dose.
Xanthan-Stabilized Cheese Sauce
- 240 g heavy cream 36% milkfat or higher. Weigh for accuracy.
- 0.8 g xanthan gum Exactly 0.2% of total sauce weight (400g). Must be weighed on a digital scale.
- 115 g full-fat cream cheese Room temperature — pulled from refrigerator 45 minutes before starting.
- 170 g sharp or extra-sharp cheddar cheese Block, freshly grated. Do not use pre-shredded.
- 1 teaspoon Dijon mustard Provides mustard mucilage as a secondary emulsifier and sharp aromatic depth.
- ½ teaspoon smoked paprika Primes the flavor profile before the live-smoke step.
- ¼ teaspoon cayenne pepper Optional. Activates TRPV1 for chemesthetic heat dimension.
- 1 teaspoon kosher salt Adjust to taste after cheese is incorporated — cheddar contributes substantial sodium.
Smoke Finish
- 15 g apple or cherry wood chips or chunks Soaked in water 30 minutes if using chips on a charcoal grill. Do not exceed 15g for a 30-minute exposure.
- 28 g sharp cheddar, grated Reserved for a final topping layer applied before the skillet enters the smoker.
Instructions
Prepare the Cauliflower
- Break the cauliflower into florets and pulse in a food processor in two batches until it resembles coarse rice — 3 to 5mm pieces. Do not over-process into dust.
- Microwave the riced cauliflower in a large microwave-safe bowl for 3 minutes on high. Spread onto a clean kitchen towel, fold the towel over, and press firmly with your hands or a heavy cutting board. Press out at least 2 tablespoons of visible moisture. This step is non-negotiable — excess water will thin the sauce and prevent crust formation during the smoke.
- Melt the butter in the cast iron skillet over medium heat. Add the pressed cauliflower, salt, pepper, and garlic powder. Sauté, stirring occasionally, for 6 to 8 minutes until the cauliflower is just tender and any remaining surface moisture has evaporated. The pan should look dry and the cauliflower should be lightly golden in spots. Remove from heat and set aside in the skillet.1 tablespoon unsalted butter, 1 teaspoon kosher salt, 1/2 teaspoon black pepper, freshly ground, 1/4 teaspoon garlic powder
Build the Xanthan Cheese Sauce
- Weigh the heavy cream into a medium saucepan. Weigh the xanthan gum separately on a digital scale — you need exactly 0.8g. Whisk the xanthan gum into the cold cream until fully dispersed with no visible clumps. This must happen before any heat is applied. The xanthan hydrates best in cold liquid and distributes evenly; adding it to hot liquid causes immediate uneven lumping.240 g heavy cream, 0.8 g xanthan gum
- Place the saucepan over medium-low heat. Warm the cream-xanthan mixture, whisking constantly, until it reaches 150°F (66°C) and has thickened noticeably — about 4 to 5 minutes. Do not boil. You should see a sauce that coats the back of a spoon and holds a line when you run your finger through it.240 g heavy cream, 0.8 g xanthan gum
- Remove the saucepan from heat entirely. Add the room-temperature cream cheese, Dijon mustard, smoked paprika, and cayenne. Whisk vigorously until the cream cheese is fully incorporated and the sauce is smooth. The residual heat of the pan will melt it cleanly — the burner stays off.115 g full-fat cream cheese, 1 teaspoon Dijon mustard, 1/2 teaspoon smoked paprika, 1/4 teaspoon cayenne pepper
- Add the freshly grated cheddar in three additions, whisking between each until fully melted before adding the next. Season with salt. The sauce should be thick, glossy, and deeply golden. Taste and adjust seasoning. If the sauce looks at all broken or greasy, whisk in 1 tablespoon of cold heavy cream to re-establish the emulsion.170 g sharp or extra-sharp cheddar cheese, 1 teaspoon kosher salt
Assemble and Smoke
- Fire your smoker or set up a kettle grill for indirect heat. Target a stable 225°F (107°C) chamber temperature. Add the apple or cherry wood chips or chunks to the firebox or coals. Allow smoke to establish — you want thin blue smoke, not thick white billowing smoke, before the skillet goes in.15 g apple or cherry wood chips or chunks
- Pour the cheese sauce over the sautéed cauliflower in the cast iron skillet. Fold gently with a spatula to coat every piece evenly. Spread into a level layer. Scatter the reserved 28g of grated cheddar evenly over the top — this forms the Maillard crust during the smoke.28 g sharp cheddar, grated
- Transfer the skillet to the smoker. Smoke uncovered at 225°F for 30 minutes. The top should be deeply golden and spotted with dark-amber crust at the edges where the sauce contacts the hot iron. The surface will look set and slightly dried — this is the phenolic deposition layer from the wood smoke. Do not exceed 30 minutes or push the temperature above 240°F (116°C).15 g apple or cherry wood chips or chunks
- Remove the skillet from the smoker. Rest uncovered on a trivet for 5 minutes before serving. This allows the xanthan network to re-entangle as the temperature drops, producing a cleaner, thicker sauce at serving temperature. Serve directly from the skillet.
Notes
Nutrition
The first time I set a skillet of this on the table, my brother-in-law — a committed mac-and-cheese absolutist — ate two servings before he asked what was in it. That moment told me everything I needed to know: the structural physics of a great mac and cheese has almost nothing to do with the pasta. It has everything to do with the sauce, the fat, and — in this version — the smoke.
Riced cauliflower is the vehicle. At roughly 3g net carbs per 100g cooked, riced cauliflower sits comfortably inside ketogenic constraint space without demanding the sacrifice of textural identity. The real engineering work happens in the sauce and the 30-minute smoke finish that transforms a straightforward keto side into something with genuine BBQ soul.
Why does smoked cauliflower mac and cheese actually work? The science
The cheese sauce in this recipe works because it is a carefully tuned oil-in-water emulsion operating inside a fat-dominant continuous phase. Heavy cream provides the aqueous backbone — roughly 36% milkfat — and serves as the primary solvent for the lipophilic volatile aroma compounds in sharp cheddar. Those aromatic molecules, including methylketones, thiols, and short-chain fatty acid esters that define aged cheddar’s pungency, partition heavily into the lipid phase. This is thermodynamic partitioning at work: the vapor-condensed phase partition coefficient for lipophilic aromas drops sharply in a high-fat matrix, which means the cheese aroma is buffered and sustained rather than spiking and disappearing. The result is a longer, richer aromatic experience in the mouth — exactly what a great mac and cheese demands.
Cling is the structural problem that killed every keto cheese sauce before this one. Without starch to thicken the continuous phase, the emulsion breaks under heat, the fat pools, and the result is a greasy puddle instead of a coating sauce. The fix is 0.2% xanthan gum by weight of the total sauce mass. At this concentration, xanthan operates squarely in its pseudoplastic shear-thinning regime — the polymer chains are entangled enough to generate significant yield stress at rest, producing cling, body, and coating behavior, but they align under the mechanical shear of stirring or mastication and momentarily lose their viscosity. This means the sauce coats the cauliflower aggressively when plated and still, then releases its flavor instantly in the mouth. Exceeding 0.3% xanthan crosses into Newtonian-adjacent territory where the sauce becomes gummy and traps aromatics behind a mass-transfer resistance wall — so the 0.2% ceiling is a hard formulation limit, not a suggestion.
The 30-minute smoke finish at 225°F (107°C) is where the chemistry escalates. The surface of the casserole reaches a water activity below 0.7 as it dries slightly under convective smoke flow — this is the optimal water activity window for Maillard browning onset. Amino acids from the cheddar and cream cheese react with trace reducing sugars, generating pyrazines, furanones, and thiol-derived volatiles. Simultaneously, phenolic compounds from the wood smoke — guaiacol, syringol, and their derivatives — deposit on the surface and partition into the exposed fat phase, providing that unmistakable low-and-slow aromatic signature. The cauliflower beneath never exceeds the internal temperature at which its cell walls collapse catastrophically — beta-elimination of the pectin backbone in the middle lamella, which accelerates above 185°F (85°C) — so the florets retain structural integrity and provide a genuine bite under the molten crust.
What equipment and ingredients do you need?
- Cauliflower — fresh, not frozen: Frozen riced cauliflower releases substantial free water on thawing due to ice crystal disruption of the cell walls. That excess moisture dilutes the sauce and prevents the crust from setting during the smoke. Use fresh cauliflower and rice it yourself in a food processor, or buy fresh pre-riced. If frozen is your only option, dry it in a 350°F oven on a sheet pan for 10 minutes before using.
- Sharp or extra-sharp cheddar — block, not pre-shredded: Pre-shredded cheddar is coated in anti-caking agents (typically potato starch or cellulose), which introduce hidden carbohydrates and, more importantly, physically interfere with the emulsion by coating the protein surfaces that would otherwise stabilize fat droplets. Grate your own from a cold block for a clean, unimpeded sauce.
- Xanthan gum — measure by weight, not volume: Xanthan gum is roughly 2.8x denser per tablespoon depending on the brand and grind. A 0.2% concentration in 400g of sauce is exactly 0.8g — less than a quarter teaspoon. Use a digital scale. Too much and the sauce becomes gummy and mutes flavor; too little and the fat separates in the smoker.
- Cream cheese — full fat, room temperature: Cold cream cheese will not emulsify cleanly into a hot liquid. Cold cream cheese forms discrete lumps that remain visible and create textural inconsistency. Pull cream cheese from the refrigerator 45 minutes before starting.
- Wood for smoke: Apple or cherry wood delivers a mild, slightly sweet smoke that complements dairy without overpowering it. Hickory or mesquite at 30 minutes will bulldoze the cheese flavor — use a 50/50 blend with apple if you want more smoke character, but stay under 15g of wood chips total for a 30-minute exposure.
- Cast iron skillet or enameled Dutch oven: You need a vessel that can go from stovetop to smoker. A 10-inch cast iron skillet is ideal. The high thermal mass holds heat evenly and promotes browning at the edges where the sauce contacts hot metal.
Keto Cauliflower Mac & Cheese — Smoked
Equipment
- 1 Smoker or kettle grill set up for indirect heat Target 225°F chamber temperature. Apple or cherry wood chunks preferred.
- 1 10-inch cast iron skillet Must be oven- and smoker-safe. Enameled Dutch oven works equally well.
- 1 Food processor For ricing the cauliflower into uniform 3–5mm pieces.
- 1 Digital kitchen scale Essential for weighing xanthan gum to 0.1g precision.
- 1 Whisk
- 1 Clean kitchen towel or cheesecloth For pressing moisture from riced cauliflower.
Ingredients
Cauliflower Base
- 1 large head fresh cauliflower Approximately 900g / 2 lb. Riced in a food processor — do not use frozen.
- 1 tablespoon unsalted butter For sautéing the riced cauliflower to drive off surface moisture.
- 1 teaspoon kosher salt
- ½ teaspoon black pepper, freshly ground
- ¼ teaspoon garlic powder Low-FODMAP compatible at this dose.
Xanthan-Stabilized Cheese Sauce
- 240 g heavy cream 36% milkfat or higher. Weigh for accuracy.
- 0.8 g xanthan gum Exactly 0.2% of total sauce weight (400g). Must be weighed on a digital scale.
- 115 g full-fat cream cheese Room temperature — pulled from refrigerator 45 minutes before starting.
- 170 g sharp or extra-sharp cheddar cheese Block, freshly grated. Do not use pre-shredded.
- 1 teaspoon Dijon mustard Provides mustard mucilage as a secondary emulsifier and sharp aromatic depth.
- ½ teaspoon smoked paprika Primes the flavor profile before the live-smoke step.
- ¼ teaspoon cayenne pepper Optional. Activates TRPV1 for chemesthetic heat dimension.
- 1 teaspoon kosher salt Adjust to taste after cheese is incorporated — cheddar contributes substantial sodium.
Smoke Finish
- 15 g apple or cherry wood chips or chunks Soaked in water 30 minutes if using chips on a charcoal grill. Do not exceed 15g for a 30-minute exposure.
- 28 g sharp cheddar, grated Reserved for a final topping layer applied before the skillet enters the smoker.
Instructions
Prepare the Cauliflower
- Break the cauliflower into florets and pulse in a food processor in two batches until it resembles coarse rice — 3 to 5mm pieces. Do not over-process into dust.
- Microwave the riced cauliflower in a large microwave-safe bowl for 3 minutes on high. Spread onto a clean kitchen towel, fold the towel over, and press firmly with your hands or a heavy cutting board. Press out at least 2 tablespoons of visible moisture. This step is non-negotiable — excess water will thin the sauce and prevent crust formation during the smoke.
- Melt the butter in the cast iron skillet over medium heat. Add the pressed cauliflower, salt, pepper, and garlic powder. Sauté, stirring occasionally, for 6 to 8 minutes until the cauliflower is just tender and any remaining surface moisture has evaporated. The pan should look dry and the cauliflower should be lightly golden in spots. Remove from heat and set aside in the skillet.1 tablespoon unsalted butter, 1 teaspoon kosher salt, 1/2 teaspoon black pepper, freshly ground, 1/4 teaspoon garlic powder
Build the Xanthan Cheese Sauce
- Weigh the heavy cream into a medium saucepan. Weigh the xanthan gum separately on a digital scale — you need exactly 0.8g. Whisk the xanthan gum into the cold cream until fully dispersed with no visible clumps. This must happen before any heat is applied. The xanthan hydrates best in cold liquid and distributes evenly; adding it to hot liquid causes immediate uneven lumping.240 g heavy cream, 0.8 g xanthan gum
- Place the saucepan over medium-low heat. Warm the cream-xanthan mixture, whisking constantly, until it reaches 150°F (66°C) and has thickened noticeably — about 4 to 5 minutes. Do not boil. You should see a sauce that coats the back of a spoon and holds a line when you run your finger through it.240 g heavy cream, 0.8 g xanthan gum
- Remove the saucepan from heat entirely. Add the room-temperature cream cheese, Dijon mustard, smoked paprika, and cayenne. Whisk vigorously until the cream cheese is fully incorporated and the sauce is smooth. The residual heat of the pan will melt it cleanly — the burner stays off.115 g full-fat cream cheese, 1 teaspoon Dijon mustard, 1/2 teaspoon smoked paprika, 1/4 teaspoon cayenne pepper
- Add the freshly grated cheddar in three additions, whisking between each until fully melted before adding the next. Season with salt. The sauce should be thick, glossy, and deeply golden. Taste and adjust seasoning. If the sauce looks at all broken or greasy, whisk in 1 tablespoon of cold heavy cream to re-establish the emulsion.170 g sharp or extra-sharp cheddar cheese, 1 teaspoon kosher salt
Assemble and Smoke
- Fire your smoker or set up a kettle grill for indirect heat. Target a stable 225°F (107°C) chamber temperature. Add the apple or cherry wood chips or chunks to the firebox or coals. Allow smoke to establish — you want thin blue smoke, not thick white billowing smoke, before the skillet goes in.15 g apple or cherry wood chips or chunks
- Pour the cheese sauce over the sautéed cauliflower in the cast iron skillet. Fold gently with a spatula to coat every piece evenly. Spread into a level layer. Scatter the reserved 28g of grated cheddar evenly over the top — this forms the Maillard crust during the smoke.28 g sharp cheddar, grated
- Transfer the skillet to the smoker. Smoke uncovered at 225°F for 30 minutes. The top should be deeply golden and spotted with dark-amber crust at the edges where the sauce contacts the hot iron. The surface will look set and slightly dried — this is the phenolic deposition layer from the wood smoke. Do not exceed 30 minutes or push the temperature above 240°F (116°C).15 g apple or cherry wood chips or chunks
- Remove the skillet from the smoker. Rest uncovered on a trivet for 5 minutes before serving. This allows the xanthan network to re-entangle as the temperature drops, producing a cleaner, thicker sauce at serving temperature. Serve directly from the skillet.
Notes
Nutrition
How do I nail it every time? Tips for perfect smoked keto mac and cheese
- Dry the cauliflower hard before saucing. The single most common failure mode is a watery final dish. After ricing, microwave the cauliflower in a bowl for 3 minutes, spread on a clean kitchen towel, and press firmly. Remove at least 2 tablespoons of visible moisture. If you skip this step, the free water released during the smoke will thin the sauce and prevent the surface crust from forming.
- Add xanthan to the cream, not the cheese. Disperse the xanthan into the cold cream and whisk vigorously before any heat is applied. Xanthan hydrates quickly in cold liquid and distributes evenly. Adding xanthan gum to a hot sauce causes immediate lumping as the gum hydrates unevenly at the point of contact, and those lumps never fully resolve.
- Pull the sauce off heat before adding cheese. The cheese goes in with the burner off. Sustained temperatures above 160°F (71°C) break the protein-fat emulsion in aged cheddar, releasing free oil and creating a greasy, grainy sauce. The residual heat of the pan is sufficient to melt and incorporate both the cheddar and cream cheese cleanly.
- Keep the smoker at 225°F — not higher. Above 240°F (116°C), the cream-based sauce will boil internally, releasing steam that disrupts the surface crust and causes the xanthan network to break down irreversibly. At 225°F, the surface temperature of the sauce stays well below the boil while the Maillard crust develops at the exposed edges and top.
- Rest 5 minutes before serving. The sauce continues to tighten as it drops from smoker temperature toward serving temperature. Cutting into the dish immediately produces a looser, runnier plate than resting allows. Five minutes is enough for the xanthan network to re-entangle under the lower shear of cooling.
- Cheese separation is recoverable. If the sauce breaks and you see visible fat pooling, whisk in 1 tablespoon of cold heavy cream off heat. The fresh aqueous phase reestablishes the emulsion by providing new interfacial area for the residual emulsifiers in the cream cheese to occupy.
What variations can I make on this recipe?
Bacon and jalapeño: Fold 4 strips of cooked, crumbled bacon and 2 tablespoons of finely diced fresh jalapeño into the sauced cauliflower before it goes into the smoker. The rendered bacon fat integrates into the emulsion and adds a secondary lipid phase that carries smoky, Maillard-derived aromatic compounds from the cured pork. The capsaicin in jalapeño activates TRPV1 trigeminal receptors, adding a chemesthetic heat dimension that reads as spice rather than flavor — use sparingly if sensitivity is a concern.
Gruyère and caramelized onion (higher carb, not strict keto): Swap half the cheddar for aged Gruyère and fold in 3 tablespoons of slowly caramelized onion before smoking. Gruyère contributes a deeper, nuttier Maillard profile and more complex sulfur-derived aromatics than cheddar. The caramelized onion adds roughly 3g additional net carbs per serving from its concentrated fructose and glucose — this pushes the dish toward low-carb rather than strict keto.
Dairy-free / casein-free: Replace the heavy cream with full-fat canned coconut cream (the thick layer, not coconut water) and use a high-quality dairy-free cheddar-style shred based on cashew or coconut oil. Add 2 tablespoons of nutritional yeast for additional umami depth. The emulsion dynamics change significantly — coconut cream lacks casein micelle buffering, making the sauce more fragile under heat. Keep the smoker temperature at 200°F rather than 225°F and add a second whisking of xanthan (an additional 0.4g) to compensate for the lower protein content of the continuous phase.
Scaling for a crowd: This recipe doubles cleanly in a 12-inch cast iron skillet or a half-size hotel pan. Smoke time stays constant at 30 minutes because the surface-area-to-volume ratio governs crust formation, not the total mass. The sauce quantities scale linearly — double everything including the xanthan. Do not exceed 0.2% total xanthan by sauce weight as you scale, or the texture will become unpleasantly thick.
Frequently asked questions
Can I make this without a smoker? Yes. Finish the dish under a broiler set to high for 4 to 5 minutes, positioned 6 inches from the element, until the top is deeply golden and spotted with dark brown. You lose the wood-smoke phenolic compounds, but the Maillard crust still develops at the surface. Alternatively, use a culinary smoking gun to pass cold smoke over the finished, broiled casserole for 2 minutes under a bowl — this deposits surface phenolics without applying additional heat that could break the sauce.
Why does my sauce turn grainy when I reheat leftovers? Grainy cheese sauce on reheating is a protein aggregation problem. When the sauce originally cooled, the casein proteins in the cheddar began to partially reassociate into a gel. Rapid reheating — especially in a microwave at full power — drives the temperature unevenly past 160°F (71°C) in localized hot spots, causing irreversible protein coagulation. Reheat gently on the stovetop over low heat with 1 tablespoon of added cream, stirring continuously, keeping the temperature below 150°F (66°C) throughout.
Is this truly keto, or just low-carb? At approximately 5g net carbs per serving — total carbohydrates minus dietary fiber — this dish sits well within the standard ketogenic constraint of under 50g net carbs per day, and conservatively within the stricter 20g limit used in therapeutic ketogenic protocols. The primary carbohydrate source is cauliflower (roughly 3g net carbs per 100g cooked) and trace lactose from the heavy cream and cream cheese, both of which are negligible. The xanthan gum contributes roughly 0.4g of carbohydrate per batch, all of it fiber, so it nets to zero.

