Keto Stuffing (Make-Ahead, 4.4g Net Carbs)
- Total time
- 4 hours
- Makes
- 12 servings
- Net carbs
- 4.4g
- Calories
- 367

My first attempt at keto stuffing came out of the oven as savory bread pudding.
Not stuffing. Pudding. I had cubed a loaf of almond flour bread, left it on the counter for a couple of hours the way you would stale a baguette, poured over the same amount of broth my mother uses, and baked it. What came out had no cubes left in it at all. It was one soft, uniform, beige mass you could have spread on toast.
The problem is not the recipe. It is the flour. Almond flour has no gluten, so there is nothing holding those cubes together once they take on liquid, and almond flour absorbs far less liquid than wheat does — so the broth sits on the surface instead of soaking in and setting. Traditional stuffing survives a generous soak because gluten gives it a structure to fall back on. Keto bread has no such thing.

Drying the Bread Is the Whole Recipe
Every keto stuffing worth eating solves the same problem in the same place, and it is not in the baking dish. It is two days earlier.
Staling and drying are not the same thing. Leaving bread on the counter overnight stales it — the starches retrograde and it firms up, but the water is still in there. Drying removes the water. That is a low oven for hours, not a countertop for one, and it is the difference between cubes that stay cubes and cubes that dissolve.
I dry mine at 200°F for two and a half hours and then leave the tray uncovered on the counter overnight. When they are ready the cubes rattle when you shake the pan and snap rather than bend when you break one. If a cube still feels cool or springy in the middle, it is not done, and it will find you later.
The second half of the fix is restraint with liquid. I use about one and a sixth cups of total liquid for eight cups of dried cubes, counting the eggs and cream, not just the broth. Conventional stuffing runs closer to two cups for the same volume of bread. Pour that much over almond flour bread and you will get my pudding.
Recipe Overview
- Prep Time: 35 minutes
- Cook Time: 55 minutes
- Bread Drying Time: 2 hours 30 minutes, plus an overnight rest
- Total Time: 4 hours active and passive, spread over two days
- Servings: 12
- Net Carbs: 4.4g per serving
- Difficulty: Moderate
That four-hour figure looks worse than the day feels. Nearly all of it is the bread baking and drying, which happens a day or two ahead while you do other things. On Thanksgiving itself this is twenty minutes of work and thirty-five minutes in the oven.
Ingredients

For the Herb Bread Base
| Ingredient | Quantity | Notes |
| Blanched almond flour | 2 cups (224 g) | Fine ground, not almond meal |
| Golden flaxseed meal | ½ cup (56 g) | Adds structure the almond flour cannot |
| Baking powder | 2 tsp | |
| Fine salt | ½ tsp | |
| Sharp cheddar, shredded | 1½ cups (170 g) | This is structural, not a flavour choice |
| Large eggs | 3 | Room temperature |
| Butter, melted | ⅓ cup (75 g) | Plus more for the skillet |
| Unsweetened almond milk | ¾ cup (180 ml) | Plain, no vanilla |
For the Stuffing
| Ingredient | Quantity | Notes |
| Chicken or turkey Italian sausage | 12 oz (340 g) | Casings removed if links |
| Butter | 4 tbsp (56 g) | Divided; poultry sausage leaves you no fat |
| Celery, diced | 1 cup (100 g) | About 3 stalks |
| Onion, diced | ½ cup (80 g) | Yellow |
| Garlic, minced | 2 cloves | |
| Dried rubbed sage | 1 tsp | Rubbed, not ground |
| Poultry seasoning | 1 tsp | |
| Kosher salt | ½ tsp | Taste first — the sausage is salty |
| Black pepper | ¼ tsp | |
| Fresh parsley, chopped | 2 tbsp | |
| Chicken broth | ½ cup (120 ml) | Low sodium |
| Heavy cream | ¼ cup (60 ml) | |
| Large eggs | 2 | Beaten |
Use chicken or turkey Italian sausage, and check the label. Most American recipes in this category simply say “Italian sausage” or “breakfast sausage”, with no species stated — and what that means by default is not what you want. Poultry sausage works beautifully here, but it renders almost no fat, which is why there are four tablespoons of butter in this list where other versions get away with two.
Recipe Timing
| When | Step | Time |
| Two days ahead | Bake the bread, cool, cube | 50 minutes |
| Two days ahead | Dry cubes at 200°F, then rest uncovered overnight | 2½ hours, then overnight |
| The day | Brown sausage, cook aromatics, mix | 20 minutes |
| The day | Bake uncovered at 350°F | 35 minutes |
| The day | Rest before serving | 10 minutes |
Step-by-Step Instructions
1. Bake the bread base
Heat the oven to 425°F and butter a 10-inch oven-proof skillet. Whisk the almond flour, flaxseed meal, baking powder and salt together, then stir in the cheddar so every shred is coated in flour. In a second bowl beat the eggs with the melted butter and almond milk, pour that into the dry ingredients and mix to a thick batter. Scrape it into the skillet, level the top, and bake 16 to 20 minutes until the centre springs back and the edges are deep gold. Cool in the pan 15 minutes, then turn out and cool completely.
2. Cube and dry — the step that decides everything
Cut the cooled bread into ½-inch cubes. Bigger cubes will not dry through; smaller ones turn to crumbs. You should have roughly eight cups. Spread them in a single layer across two baking sheets — crowd them and the ones underneath steam instead of drying.
Drop the oven to 200°F and dry the cubes for 2½ hours, turning the trays once. Then switch the oven off and leave them out on the counter, uncovered, overnight. They should snap, not bend. This is the single step that separates stuffing from bread pudding, and it cannot be rushed at a higher temperature — a hot oven browns the outside of a cube while the middle stays damp, and that damp middle is what collapses later.

3. Brown the sausage
Melt 1 tablespoon of the butter in a large skillet over medium heat and add the sausage, breaking it into small pieces. Cook 6 to 8 minutes until cooked through and browned in places. Poultry sausage will not release the pool of fat a fattier one does, so it needs that starting butter or it sticks and tears. Lift it into a large mixing bowl.
4. Cook the aromatics in real butter
Add the remaining 3 tablespoons of butter to the same pan — do not skip this on the assumption there is fat left, because there will not be. Add the celery and onion and cook 6 to 7 minutes until soft and translucent. Stir in the garlic, sage, poultry seasoning, salt and pepper and cook one minute more, until you can smell the sage. Tip the whole panful into the bowl with the sausage.
5. Combine, gently
Add the dried bread cubes and the parsley to the bowl and toss. Whisk the broth, cream and eggs together in a jug, then pour it over in three additions, folding gently between each one. Adding it all at once soaks a few cubes to mush and leaves the rest dry. Fold, do not stir — every extra pass breaks more cubes.

6. Bake uncovered
Heat the oven to 350°F and butter a 9×13 dish. Spread the mixture in without packing it down — a loose pile catches more air and browns better. Bake uncovered for 35 minutes, until the top is crisp and deeply golden and the centre is set.
Uncovered is deliberate. Foil traps steam, and steam is the enemy you spent two days removing. Because the cubes went in properly dry and the liquid is measured tight, there is no risk of the middle drying out in that time. Rest it 10 minutes before serving so the custard finishes setting.
Recipe Tips and Variations
Taste before you salt. Sausage, broth, butter and cheddar all bring salt. I add the ½ teaspoon to the vegetables and then taste the mixture before it goes in the dish, not after.
If you are stuffing the bird, cut the liquid. Drop the broth from ½ cup to ¼ cup. The turkey releases plenty of its own juices and the stuffing has nowhere for that moisture to escape.
Mushroom version: brown 8 oz of sliced cremini in the butter before the celery goes in, and cook them until they squeak and the pan is dry again. Wet mushrooms will undo the whole thing.
Vegetarian version: leave the sausage out, double the mushrooms, use vegetable broth and add ½ cup toasted chopped pecans for bite.
Using a different bread. You can build this on my everyday low carb bread or on keto cornbread for a Southern-style dressing instead. Both work, but both are softer and wetter than the cheddar skillet bread here, so dry them for a full 3 hours and hold the broth back to ⅓ cup until you see how they take it.
Serving Suggestions
This is a Thanksgiving plate dish first, and it sits happily next to roast turkey and a spoonful of low carb sweet potato casserole. For a full low-carb holiday table I run it with roasted broccoli and cauliflower and keto cauliflower mac and cheese.
Outside of November it is genuinely good as a weeknight side under keto turkey meatloaf, and leftovers crisped in a buttered pan with a fried egg on top make a breakfast worth planning for.

Storage and Reheating
Make ahead: assemble the whole dish, cover, and refrigerate up to 24 hours before baking. Straight from the fridge it needs about 20 minutes longer, and I cover it with foil for the first 20 of those so the top does not run ahead of the centre.
Fridge: 4 days, tightly covered. Freezer: 2 months, baked and cooled completely, wrapped in foil then a bag. Thaw overnight in the fridge before reheating.
Reheating: 325°F for 20 minutes, uncovered, with a tablespoon of broth flicked over the top if it looks dry. The microwave will heat it but it will also soften the crust you worked for. Individual portions crisp up best in a buttered skillet over medium heat.
Frequently Asked Questions
Why did my keto stuffing turn to mush?
The bread was not dry enough, or there was too much broth, and usually both. Almond flour has no gluten to hold cubes together and absorbs less liquid than wheat, so it needs a genuinely dehydrated crumb and roughly a third less liquid than a conventional recipe. If the cubes bent instead of snapping before you mixed them, that was the moment it was decided.
Can I use store-bought keto bread instead?
Yes, and it is the fastest route — you will need about 8 cups of ½-inch cubes. Commercial keto loaves are built with added fibre and hold their shape better than almond flour bread, so they need only 15 to 20 minutes at 300°F to dry. Check the label for net carbs per slice, as they range from 1g to 3g and that swing changes the whole dish.
Do I really need the eggs?
With this homemade base, yes. Some keto stuffing recipes skip eggs, but those are almost always built on commercial fibre-fortified bread that has its own structure. An almond flour crumb has nothing holding it together once wet, and the eggs set on baking to give it back a structure. Without them you get a loose pile rather than something you can spoon in one piece.
Can I make it dairy free?
Partly. Swap the butter for ghee or olive oil and the cream for full-fat coconut milk. The cheddar in the bread is harder to replace because it is doing structural work, not just adding flavour — a dairy-free shred will get you close but the crumb will be more fragile, so handle it gently and dry it the full 3 hours.
How many carbs are in keto stuffing?
This recipe works out at 4.4g net carbs per serving, cutting the 9×13 dish into 12 portions of roughly one cup, about 128g each. Watch serving sizes when comparing recipes online — the same pan cut into 8 rather than 16 will read almost double the carbs for identical food.
More Keto Holiday Sides and Breads
- Low Carb Sweet Potato Casserole — the other side everyone expects on the table, without the sugar.
- Hamburger Green Bean Casserole — a hearty main-dish take on the classic if you want one pan to do more work.
- Keto Cornbread — bake this instead and you have Southern cornbread dressing.
- Keto Buns with Almond Flour — for the sandwiches the leftover turkey is destined for.
- Carb Free Cloud Bread — light, eggy and quick when you want bread the same afternoon.
Recipe Card

Keto Stuffing
Equipment
- 10-inch oven-proof skillet
- Two rimmed baking sheets for drying in a single layer
- 9×13 baking dish
- Large mixing bowl
Ingredients
For the Herb Bread Base (make 1-2 days ahead)
- 2 cups blanched almond flour 224 g, fine ground
- 1/2 cup golden flaxseed meal 56 g
- 2 tsp baking powder
- 1/2 tsp fine salt
- 1 1/2 cups sharp cheddar cheese 170 g, shredded
- 3 large eggs room temperature
- 1/3 cup butter 75 g, melted, plus more for the skillet
- 3/4 cup unsweetened almond milk 180 ml, plain
For the Stuffing
- 12 ounces chicken or turkey Italian sausage 340 g, casings removed
- 4 tbsp butter 56 g, divided
- 1 cup celery 100 g, diced
- 1/2 cup yellow onion 80 g, diced
- 2 cloves garlic minced
- 1 tsp dried rubbed sage
- 1 tsp poultry seasoning
- 1/2 tsp kosher salt taste first, the sausage is salty
- 1/4 tsp black pepper
- 2 tbsp fresh parsley chopped
- 1/2 cup chicken broth 120 ml, low sodium
- 1/4 cup heavy cream 60 ml
- 2 large eggs beaten
Instructions
Day 1 – Bake and Dry the Bread
- Bake the bread: Heat the oven to 425°F and butter a 10-inch oven-proof skillet. Whisk the almond flour, flaxseed meal, baking powder and salt, then stir in the cheddar so every shred is coated. Beat the eggs with the melted butter and almond milk, add to the dry ingredients and mix to a thick batter. Scrape into the skillet, level, and bake 16-20 minutes until the centre springs back. Cool in the pan 15 minutes, turn out and cool completely.
- Cube: Cut the cooled bread into 1/2-inch cubes – about 8 cups. Spread in a single layer across two baking sheets so they dry rather than steam.
- Dry low and slow: Drop the oven to 200°F and dry the cubes 2 1/2 hours, turning the trays once. Switch the oven off and leave the cubes uncovered on the counter overnight. They must snap, not bend. This step is what stops the stuffing collapsing into paste, and a hotter oven will not substitute for it.
Day 2 – Assemble and Bake
- Brown the sausage: Melt 1 tablespoon of the butter in a large skillet over medium heat. Add the sausage, breaking it into small pieces, and cook 6-8 minutes until cooked through and browned in places. Lift into a large mixing bowl.
- Cook the aromatics: Add the remaining 3 tablespoons butter to the same pan – poultry sausage leaves almost no fat behind, so do not skip it. Cook the celery and onion 6-7 minutes until soft. Add garlic, sage, poultry seasoning, salt and pepper and cook 1 minute more. Tip into the bowl with the sausage.
- Combine gently: Add the dried bread cubes and parsley and toss. Whisk the broth, cream and eggs together, then pour over in three additions, folding gently between each. Fold, do not stir – every extra pass breaks more cubes.
- Bake uncovered: Heat the oven to 350°F and butter a 9×13 dish. Spread the mixture in without packing it down. Bake uncovered 35 minutes until the top is crisp and deeply golden and the centre is set. Foil traps steam, which is exactly what you spent two days removing.
- Rest: Let it sit 10 minutes before serving so the custard finishes setting.




