This Post May Contain Affiliate Links. Please Read Our Disclosure Policy.
This Healthy Zuppa Toscana recipe is rich and creamy, spicy and packed with all those classic comforting flavors while still being dairy free, gluten free, grain free and Whole30 compliant! It’s a hearty, cozy one-pot meal perfect for the cold, wintry months packed with kale, bacon, potatoes and Italian sausage, made creamy with coconut milk.

See recipe card below for full list of measurements, ingredients, and instructions.
Why You’ll Love This Healthier Zuppa Toscana Recipe
- This rich, hearty take on classic Zuppa Toscana has all the creamy, slightly spicy flavors of the one served at your favorite Italian food chain… but lighter! Using coconut milk instead of cream, Whole30 compliant bacon and a homemade Italian sausage blend makes it perfect for your paleo or dairy free diet. Because healthy eating is harder during the colder months, am I right?
- It’s super filling. With potatoes, kale, sausage and bacon it’s a complete one pot meal that won’t leave you hungry, even served for dinner.
- Believe it or not, even with the homemade Italian sausage mix this is a dinnertime soup recipe that’s still ready in just 50 minutes making it easy enough to make for a weeknight dinner. Just remember to make enough so there are leftovers for the next day!

If you’re looking for real-deal Zuppa Toscana made with heavy cream, I’ve got you covered!
What I Learned Testing This Recipe
- Don’t overcook the kale. I’ve found adding it right at the end just to wilt in the soup is the best way to preserve it’s vibrant green color. If you cook it for too long in the soup it will turn brown which is okay for leftovers the next day, but not what you want bringing a big pot of soup to the table for your family!
- Use store-bought sausage if you can find a healthy brand. Sometimes in Whole Foods I’ve found packs of Italian sausage that are Whole30 compliant or at least preservative free. If you can buy something like this of course skip making the homemade version. Or, for a still healthy (but not quite as healthy as written) soup just use regular Italian sausage as a shortcut.
- If you don’t get enough fat out of the pork and bacon, add a splash of oil. Obviously in an ideal world I don’t want to add any additional cooking fat to the pot but if it is the difference between skipping the oil and getting burnt onions, a light, neutral cooking oil like avocado oil is the best choice. Some healthier bacon brands are great, but some release a lot of water rather than fat, and if you’re using lean pork you also might not get enough fat for the rest of the cooking.
Ingredients
Whole30 compliant bacon – I find that Whole Foods usually has a good selection. Obviously, if you don’t need this soup to be strictly Whole30 compliant you can use regular bacon, but try to choose one without nitrates and with as few additives as possible in order to keep the soup as healthy as possible!
Crushed red pepper flakes – To add warmth and spiciness to both the soup and the homemade Italian sausage. If your family is particularly sensitive to heat, leave the 1/2 teaspoon out of the soup, and use it just in the sausage mix.
Yellow potatoes – Diced into bite-sized pieces. Do try to find yellow ones like Yukon Golds, as they hold their shape nicely in the soup and white ones like Russets are more likely to dissolve into it! If you want to avoid potatoes, cauliflower florets are a good swap — I use them in my Keto Zuppa Toscana. You could also try celery root.
White, brown or yellow onion – It doesn’t matter which!
Garlic – As this is a soup where the vegetables really stand out fresh is much better than dried here, but you could use the pre-minced stuff from a jar if you don’t need it to be preservative-free for Whole30.
Chicken stock – This will give the richest flavor, but you could use vegetable stock in a pinch.
Kale – Stems removed and leaves chopped.
Coconut milk – Choose an unsweetened (obviously!), full-fat variety. If you’re allergic to coconut or are worried it might have a “coconutty” flavor, swap the coconut milk out for cashew cream. Combine 1 cup raw cashews with 3/4 cup water in a high-speed blender and blend until completely smooth.
Ground pork – For the homemade Italian sausage. Use ground chicken in place of the pork, if you prefer or don’t eat pork (and use turkey bacon also if avoiding pork!)
Red wine vinegar – This brings essential acidity to the sausage mix to balance out all the dried herbs and spices.
Fresh chopped parsley – This adds some freshness to the mix, again balancing out all of the dried herbs and spices.
Dried herbs and spices – Garlic powder, onion powder, dried basil, paprika, ground fennel seed, dried oregano and dried thyme are the perfect combination to mimic the taste of store-bought Italian sausage.

Serving & Storage Suggestions
I love that this dairy free Zuppa Toscana is a complete one-pot meal, but if you’re desperate for something on the side a couple of slices of my paleo bread for dunking would be nice, as would some sort of salad (soup and salad is a classic combo for a reason!)
Refrigerate leftovers up to 4 days in an airtight container. Reheat gently on the stove over medium-low. I don’t love it frozen — the potatoes go mealy and the kale dark brown and chewy.
Frequently Asked Questions
It’s close, and in a few ways I like it better. The original leans on heavy cream; this one uses full-fat coconut milk, which gives you the same silky body without the dairy. The bacon fat is doing a lot of the heavy lifting flavor-wise.
If you’re not doing Whole30 or dairy free, absolutely — swap in an equal amount of heavy cream and stir it in at the same point. Just don’t let it boil hard after it goes in.
No. Between the sausage, the bacon, the garlic, and the red pepper flakes, the coconut reads as creaminess, not flavor. Use unsweetened full-fat coconut milk, not cream of coconut, and the recipe will turn out fine!
Yellow potatoes, like Yukon Golds. They hold their shape in the broth instead of dissolving, and they’re creamier than russets. Leave the skins on for extra nutrition, texture and flavor!
Yes! Brown the sausage and bacon on the stove first, then add everything except the coconut milk and kale to the Crockpot and cook on LOW for 5 to 6 hours. Stir in the coconut milk and kale in the last 15 minutes!
Making changes to a recipe can result in recipe failure. Any substitutions or variations listed are simple changes that I believe will work in this recipe, but results are not guaranteed.

Healthy Zuppa Toscana (Whole30, Paleo, Dairy Free)
Ingredients
- 4 slices Whole30-compliant bacon sliced into ½-inch pieces
- 1 pound Italian sausage made from below recipe or storebought
- ½ teaspoons crushed red pepper flakes
- 4 medium yellow potatoes about 1 pound 3 ounces, diced into bite-sized pieces
- 1 medium white or yellow onion diced
- 2 tablespoons garlic minced, about 4 cloves
- 4 cups chicken stock
- ½ bunch kale stems removed and leaves chopped, 4 cups
- 1 13.5-ounce can unsweetened, full-fat coconut milk
- Salt and pepper to taste
Homemade Whole30 Italian Sausage
- 1 pound ground pork
- 1 tablespoon red wine vinegar
- 1 teaspoon salt
- 1 teaspoon black pepper
- 1 tablespoon fresh chopped parsley or 2 teaspoons dried
- 1 teaspoon garlic powder
- 1 teaspoon onion powder
- 1 teaspoon dried basil
- 1 teaspoon paprika
- 1 teaspoon red pepper flakes
- ¼ teaspoon ground fennel seed optional
- pinch dried oregano
- pinch dried thyme
Instructions
- If making Italian sausage: combine all ingredients in a bowl and mix well. Alternately, combine all ingredients in the saucepan and stir well when browning.
- In a Dutch oven or heavy-bottomed medium pot over medium heat, add Italian sausage and sprinkle crushed red pepper flakes over. Use a spoon to break up the pieces. When browned and cooked through, drain and set aside.
- Cook the bacon pieces in the same Dutch oven over medium heat until crisp, about 5-10 minutes. Remove the crisp bacon and set aside – don’t get rid of the bacon fat! Stir in the onions and garlic; cook until onions are soft and translucent, about 5 minutes.
- Pour the chicken broth into the Dutch oven with the onions and garlic, and bring to a boil over high heat. Add the potatoes, and boil until fork tender, about 10-20 minutes. Reduce the heat to medium and stir in the coconut milk and the cooked sausage; heat through. Add the bacon and the kale into the soup just before serving and cook ’til the kale is bright green and softened. Add salt and pepper to taste.
Video
Approximate Information for One Serving
Nutrition Disclaimers
Number of total servings shown is approximate. Actual number of servings will depend on your preferred portion sizes.
Nutritional values shown are general guidelines and reflect information for 1 serving using the ingredients listed, not including any optional ingredients. Actual macros may vary slightly depending on specific brands and types of ingredients used.
To determine the weight of one serving, prepare the recipe as instructed. Weigh the finished recipe, then divide the weight of the finished recipe (not including the weight of the container the food is in) by the desired number of servings. Result will be the weight of one serving.
Did You Make This Recipe?
Tag @40aprons on Instagram and be sure to leave a review on the blog post!
More Health Soup Recipes
Never Miss A Meal!
New Recipes Straight To Your Inbox
A curated selection of our most recent recipes, delivered straight to your inbox once a week.








Made this today and it’s delicious!! I used store bought compliant sausage. The soup is so tasty and really feels like a complete meal with all of the ingredients! I plan to have it for lunch the next 5 days. Thank you!
I’m so glad you liked it, Jackie!
Hi, I cannot wait to try this! I do have a quick question. Does the coconut milk give it a hint of coconut flavor? My husband does not care for coconut at all so I’m wondering if I should use unsweetened almond milk or something? Thank you!
It personally does not taste coconutty to me at all, but if he’s very, very sensitive to it, you might replace the coconut milk with cashew cream. Blend 3/4 cup raw cashews with 1 cup water in a high-speed blender until very, very smooth. Stir in like you would the coconut cream!
I just wanted to comment that I was worried this would taste like coconuts, too, and was wary. I’ve made other paleo dishes before where the coconut flavor is really predominant. I LOVE the taste of coconut, but when you’re not expecting (like in a spinach artichoke dip, or something similar) it can be off-putting. However, we are really trying to reduce dairy in our lives and I had a few cans of Trader Joe’s coconut milk sitting in the pantry, so I went for it. I’m so happy to report that there was no hint of coconut flavor whatsoever! I did double the recipe but I only used one can of coconut milk, so that might have helped. I used an immersion blender before adding the sausage, too, to puree some of the potatoes with the chicken broth. This also helped lend a creamier, thicker soup without more liquid. Go for it! This soup is amazing and will be on regular repeat at my house!
Made this last night and it was AMAZING!!!! So easy and a piece of cake to make. I finished my 1st whole 30 In Jan and this recipe is making it easier to keep going. Thank you!!
Soooo happy you liked it!!
I am currently eating dairy free while nursing my baby, and I have to say that I love this recipe! Thanks so much for sharing it! I want to make this for a potluck, and was wondering if you had suggestions for doing it in a crockpot?
Sure! I would brown the sausage like normal and then add all the ingredients except for the kale and cook on high for maybe 2-3 hours, low for 5. I’d add the kale in last and cook until bright green.
I just finished making a batch of this in the slow cooker, it was delicious! I subbed bone broth for chicken broth. I browned the sausage first and cooked up the bacon, then cooked the garlic and onions in the bacon grease. Then I put everything except for the bacon, coconut milk, and kale in the crock pot for 5 hours on low and added the last 3 ingredients for about 15 minutes. Would definitely make it again
Any suggestions for doubling the recipe?
I’d honestly just truly double all of the ingredients. That should work just fine! 🙂
I’ve made this recipe multiple times, but I just made it in my instant pot tonight and it was amazing! I used another recipe’s instructions (that was not whole30) and subbed in your ingredients and it worked like a charm. I added 2 cups more broth and an extra small can of coconut cream and it was absolutely perfect.
The directions I used said to saute the onions in the instant pot and then add your italian sauage and garlic. After the sausage is cooked you add in broth and potatoes and set the pressure cooker setting to high for 5 minutes. Once it’s finished pressure cooking, you let it sit and slow release for 10 minutes before doing a quick release. Lastly, you add in your bacon, kale, and coconut milk/cream and you’re done!
I’m so glad you like the recipe! I have the Instant Pot version in my cookbook The Paleo Instant Pot 🙂 Your directions sound very similar!
Hi cheryl! Can’t find your paleo cookbook on amazon. Can you link it here for me?
Right here! 🙂
https://gum.co/Vxfdh
I’ve been making this soup for my family often & we all love it! However, I just looked at your nutrition facts… can that be correct!? 749 cals per serving? That’s more than the actual Olive Garden soup. Seems like a lot to me, so I just thought I’d double check with you!
Hi! Glad you like the soup so much 🙂 These calorie calculators leave something to be desired for sure. The label is based off 4 servings in a batch, and if you’re eating as much as they serve at Olive Garden, you would get more servings out of a recipe. However, a can of coconut milk has about 700 calories (healthy fats!). The calculator might also be including the full fat from the bacon, which you don’t use all of, of course. You might want to try plugging the ingredients into a calculator and seeing how it looks for you! 🙂
I made this soup yesterday and it is DELISH! ? will definitely be making it again and again…do you by handed know the nutritional value? Calories, fat, carbs per serving?
So glad you liked it! I’ve updated with the nutritional info 🙂
Loved this soup!!! My husband and son also loved it? I made it with non whole 30 bacon the first time and tonight am making without bacon at all but I really want to do it with whole 30 bacon where do I find it? Please help!!!
Most health food stores, like Whole Foods or Sprouts, carry Paleo bacon. Look for Pederson’s, but there are other brands too. They all usually have a Paleo or whole30 logo on the front!
So incredibly delicious! Thank you 🙂
I’m so glad you liked it!