Imagine slicing into a golden-topped casserole and finding layers of creamy ricotta swirled with wilted spinach, roasted cauliflower, and a velvety cream cheese base — all blanketed under a bubbling crust of melted mozzarella and parmesan. This Italian-inspired bake is the kind of dinner that makes you forget you are eating low-carb. Every forkful delivers rich, savory satisfaction with a whisper of garlic and Italian herbs that ties everything together beautifully.

With 46 grams of fat and only 8 grams of net carbs per generous serving, this casserole is a keto powerhouse. The combination of whole-milk ricotta, cream cheese, and mozzarella creates a fat-forward profile that keeps you in ketosis while delivering 26 grams of protein for sustained satiety. At roughly 74% of calories from fat, this dish hits the ideal ketogenic macro ratio without any tricks or unusual ingredients.

Best of all, this bake is specifically designed for meal prep. Assemble it on a Sunday evening, bake it once, and you have four hearty dinners ready to reheat throughout the week. It stores beautifully in the fridge for up to five days, and the flavors actually deepen as the ricotta and herbs meld together overnight. If you are looking for a hands-off, batch-friendly Italian dinner that satisfies like comfort food, this is your new go-to.

Ingredients (serves 4)

For the ricotta-spinach filling:

  • 1 cup (250g) whole-milk ricotta cheese
  • 4 oz (113g) cream cheese, softened
  • 2 large eggs, lightly beaten
  • 10 oz (285g) fresh baby spinach
  • 2½ cups (285g) cauliflower florets, cut into small pieces
  • 4 cloves garlic, minced
  • 1 tbsp (3g) Italian seasoning
  • ¼ tsp red pepper flakes
  • ½ tsp fine sea salt
  • ¼ tsp freshly ground black pepper

For cooking and topping:

  • 3 tbsp (45ml) extra-virgin olive oil, divided
  • 2 tbsp (28g) unsalted butter
  • 1 cup (112g) shredded whole-milk mozzarella
  • ½ cup (45g) finely grated Parmigiano-Reggiano
  • 6–8 fresh basil leaves, for garnish

Instructions

  1. Preheat and prep. Position a rack in the center of your oven and preheat to 375°F (190°C). Lightly grease a 9×9-inch (23×23cm) baking dish with 1 tablespoon of the olive oil and set aside.

  2. Roast the cauliflower. Spread the cauliflower florets on a rimmed baking sheet, toss with 1 tablespoon of olive oil and a pinch of salt, and roast for 15 minutes until just tender and lightly golden on the edges. Remove and set aside. Keep the oven at 375°F.

  3. Wilt the spinach. While the cauliflower roasts, heat the butter and remaining 1 tablespoon of olive oil in a large skillet over medium heat. Add the minced garlic and sauté for 30 seconds until fragrant — do not let it brown. Add the fresh spinach in batches, tossing with tongs until fully wilted, about 3–4 minutes. Season with the red pepper flakes and a pinch of salt. Transfer the spinach to a fine-mesh sieve or clean kitchen towel and press out as much liquid as possible. This step is critical — excess moisture will make the bake watery.

  4. Make the ricotta filling. In a large mixing bowl, combine the ricotta, softened cream cheese, beaten eggs, Italian seasoning, salt, and pepper. Stir vigorously with a spatula until smooth and well blended. Fold in the squeezed spinach and the roasted cauliflower florets, distributing them evenly throughout the mixture.

  5. Assemble the bake. Transfer the ricotta-spinach mixture into the prepared baking dish, spreading it into an even layer with the back of a spatula. Scatter the shredded mozzarella evenly across the top, then sprinkle the grated parmesan over the mozzarella in an even layer.

  6. Bake until golden. Place the dish on the center rack and bake for 30–35 minutes, until the cheese topping is deeply golden and bubbling and the filling is set — a knife inserted into the center should come out clean. If you want extra browning on top, switch the oven to broil for the final 2 minutes, watching closely to prevent burning.

  7. Rest and serve. Remove from the oven and let the bake rest for 10 minutes before slicing. This resting time allows the filling to firm up so slices hold together. Tear fresh basil leaves over the top just before serving. Cut into 4 equal portions.

Nutrition per Serving

Nutrient Amount
Calories ~550 kcal
Fat ~46g
Protein ~26g
Total Carbs ~11g
Fiber ~3g
Net Carbs ~8g

Nutrition values are approximate and based on the stated ingredients using whole-milk ricotta, full-fat cream cheese, and whole-milk mozzarella.

Tips & Variations

Squeeze that spinach dry. This is the single most important step in the entire recipe. Watery spinach will turn your bake into a soggy mess. After wilting, place the spinach in a clean kitchen towel, roll it up, and wring it out over the sink. You should be able to extract at least 2–3 tablespoons of liquid. The drier your spinach, the firmer and more sliceable your finished bake will be.

Meal-prep and storage. Let the bake cool completely to room temperature, then slice into 4 portions and store in individual airtight containers in the fridge for up to 5 days. Reheat individual portions in the microwave for 2–3 minutes or in a 350°F (175°C) oven for 10–12 minutes until heated through. The casserole also freezes well — wrap portions tightly in plastic wrap and foil, then freeze for up to 2 months. Thaw overnight in the fridge before reheating.

Swap the vegetables. You can replace the cauliflower with diced zucchini (squeeze out moisture after salting for 10 minutes) or chopped artichoke hearts for a more Mediterranean twist. Chopped roasted red peppers also work beautifully, though they will add approximately 1–2 grams of net carbs per serving, so factor that into your daily count.

Watch for hidden carbs in ricotta. Not all ricotta is created equal on keto. Some brands add stabilizers or fillers that increase the carb count. Always check the label — look for whole-milk ricotta with no more than 2–3 grams of carbs per quarter-cup serving. Brands that list only milk, whey, vinegar, and salt are your best bet. Avoid any ricotta labeled "part-skim," which typically has more carbs and less fat.

Make it more indulgent. For an even richer version, stir 2 tablespoons of basil pesto into the ricotta filling before assembling. This adds healthy fats from olive oil and pine nuts while amplifying the Italian flavor. You can also replace the cream cheese with an equal amount of mascarpone for a silkier, slightly sweeter filling that feels downright luxurious.

Frequently Asked Questions

Is ricotta cheese keto-friendly?
Yes, whole-milk ricotta is an excellent keto ingredient when you choose the right brand. A quarter-cup serving of quality whole-milk ricotta typically contains about 5–6 grams of fat, 1.5–2 grams of carbs, and 7 grams of protein. It provides a creamy base that helps carry fat-soluble flavors while keeping carbs minimal. Always opt for full-fat, whole-milk varieties and avoid part-skim versions, which have a less favorable fat-to-carb ratio for ketogenic eating.
Can I use cottage cheese instead of ricotta?
You can, but the texture will be different — cottage cheese is lumpier and more watery than ricotta. If you go this route, use full-fat cottage cheese and drain it thoroughly through a fine-mesh sieve for at least 30 minutes before mixing it into the filling. Blend it briefly in a food processor for a smoother consistency. Keep in mind that cottage cheese is typically slightly higher in carbs than ricotta, so check the label and adjust your portions if needed to stay within your daily carb target.
How do I reheat this bake without it getting rubbery?
The key to reheating any cheese-based casserole is low, gentle heat with a touch of added moisture. For the microwave, place a portion on a plate, sprinkle a few drops of water over the top, cover loosely with a damp paper towel, and heat at 70% power for 2–3 minutes. For the oven, place the portion in an oven-safe dish, cover with foil to trap steam, and reheat at 325°F (165°C) for 10–12 minutes. Avoid high heat, which causes the cheese proteins to tighten and turn rubbery. The filling should be gently warmed through, not blasted.
Can I make this dairy-free or vegan keto?
This particular recipe relies heavily on dairy for both its flavor and structure, so a fully vegan version would be a significantly different dish. That said, you can approximate it by using cashew-based ricotta, coconut cream cheese, and a dairy-free mozzarella shred. Be aware that most commercial vegan cheeses contain starches and fillers that can significantly increase the carb count — sometimes by 5–8 grams per serving. Check every label carefully and account for these extra carbs in your daily totals. Nutritional yeast can help replicate some of the savory, cheesy flavor without adding many carbs.
Can I assemble this bake the night before and refrigerate it unbaked?
Absolutely — in fact, overnight assembly is one of the best meal-prep strategies for this recipe. Prepare the filling completely, spread it in the baking dish, add the cheese topping, cover tightly with plastic wrap, and refrigerate for up to 24 hours. When you are ready to bake, remove the dish from the fridge and let it sit at room temperature for 15–20 minutes while the oven preheats. You may need to add 5–7 extra minutes of baking time since the dish will be cold. The filling flavors actually improve with overnight marinating, so this method can produce an even tastier result.