Spinach and white bean soup is the lunch I make when I want something light that still keeps me full until dinner. Cannellini beans bring the protein and body, baby spinach wilts in at the end for color and nutrients, and a Parmesan rind does the heavy lifting on flavor.
Advertisements1
Here is the honest comparison. Canned beans: 5 minutes of work, slightly softer texture, still delicious. Dried beans soaked overnight: better bite and cheaper, but this becomes a weekend project. For a 30-minute weekday pot, canned wins every time, and nobody at the table will complain.
One tool setup before you start: a 5.5-quart Dutch oven or heavy pot, a wooden spoon, and a ladle. In most recipe apps you can hit Ctrl+F or Cmd+F to jump straight to the ingredient list, and pin the steps so the screen stays awake. Everything else is dump, simmer, stir.
The bottom line up front: this is a 6-serving pot for about the cost of two deli sandwiches, with real fiber and 12 grams of protein per bowl. Work smarter, not harder.
Why You'll Love This Recipe
About the Ingredients
3 tablespoons olive oil
Use regular or extra-virgin; both work here since we are not cooking at high heat. Substitution: avocado oil or a 50/50 blend of olive oil and butter if you want a richer base.
1 large yellow onion, diced (about 1 1/2 cups / 200g)
Yellow onion gives the sweetest base after 6 minutes of sweating. Buying tip: if onions make you cry, chill the onion for 15 minutes before dicing.
3 medium carrots, diced (about 1 cup / 130g)
Carrots add natural sweetness and body. Substitution: 1 cup diced celery plus 1 small sweet potato for a different but equally good backbone.
4 garlic cloves, minced (about 4 teaspoons)
Fresh garlic, not the jarred stuff, is the difference between flat and fragrant. Buying tip: buy loose heads, not pre-peeled cloves, since peeled cloves lose punch fast.
1 teaspoon dried oregano
Oregano is the Mediterranean note that ties beans and greens together. Substitution: 1 teaspoon dried thyme or 2 teaspoons fresh rosemary, minced fine.
1/2 teaspoon red pepper flakes
This is a gentle warmth, not heat; use 1/4 teaspoon if your family is spice-shy. Substitution: a pinch of smoked paprika for smokiness instead of heat.
2 (15-ounce / 425g) cans cannellini beans, drained and rinsed
Rinsing cuts the canned, tinny taste and about 40 percent of the added sodium. Substitution: great Northern beans or chickpeas, though chickpeas stay firmer and need 5 extra minutes.
4 cups (950ml) low-sodium vegetable broth
Low-sodium lets you control the final seasoning. Buying tip: keep a box of chicken broth on hand too, since either works and chicken broth adds a rounder flavor.
1 Parmesan rind (about 2 inches / 5cm)
This is the secret weapon; it melts into savory, salty depth. Substitution: 2 tablespoons nutritional yeast plus 1 extra teaspoon miso if you are keeping it dairy-free.
5 ounces (140g) baby spinach
Baby spinach wilts in 90 seconds and needs no stemming. Substitution: chopped kale, but add it with the beans and simmer 10 minutes longer.
1 tablespoon fresh lemon juice (about 1/2 lemon)
Acid at the end wakes up the whole pot. Substitution: 2 teaspoons red wine vinegar if you are out of lemons.
1/2 teaspoon kosher salt, plus more to taste
Kosher salt is easier to pinch and control than table salt. Buying tip: if using fine table salt, start with 1/4 teaspoon and taste before adding more.
Tips & Tricks
Do not skip rinsing the beans
Canned bean liquid is starchy and salty, and rinsing for 15 seconds under cool water makes the broth taste clean instead of canned.
Simmer, never boil
A hard boil breaks the beans down into mush. Keep the pot at a gentle bubble, around 200F (93C), and stir every few minutes.
Add spinach off the heat
Spinach turns army-green and bitter if it cooks too long. Kill the heat, stir it in, and let the residual heat do the work for 90 seconds.
Salt at the end, not the start
The Parmesan rind is salty and it keeps releasing salt as it simmers. Season fully only after you pull the rind out.
Pro Tips
Step-by-Step Instructions
1. Sweat the aromatics
Heat the olive oil in a 5.5-quart Dutch oven over medium heat, about 325F (163C), for 2 minutes until it shimmers. Add the onion and carrots and cook 6 to 7 minutes, stirring occasionally, until the onion is translucent and the edges are just starting to turn golden.
2. Bloom the garlic and spices
Stir in the garlic, oregano, and red pepper flakes and cook 45 seconds, just until the garlic smells nutty and fragrant. Do not let it brown, or it will turn bitter.
3. Add beans and broth
Pour in the broth, then add the beans and the Parmesan rind. Scrape the bottom of the pot with your wooden spoon to lift up any browned bits, which is where a lot of flavor hides.
4. Simmer gently
Bring to a bare simmer, about 200F (93C), then reduce the heat to low. Cook uncovered for 18 to 20 minutes, stirring every 5 minutes, until the carrots are fork-tender and the broth has darkened slightly and smells savory.
5. Mash for body
Scoop out 1 cup of beans and broth, mash them with a fork in a bowl, and stir the mash back in. Simmer 3 more minutes; the broth should coat the back of your spoon, like a light gravy.
6. Pull the rind
Fish out the Parmesan rind with tongs or a slotted spoon and discard it. Taste the broth now and add the 1/2 teaspoon kosher salt, then more in 1/4 teaspoon increments until it tastes full, not flat.
7. Wilt the spinach
Turn off the heat completely. Add the spinach in two handfuls, stirring after each, and let it sit 90 seconds until fully wilted but still bright green.
8. Finish and serve
Stir in the lemon juice, ladle into bowls, and top with cracked black pepper or a shaving of Parmesan. Serve hot with crusty bread for dunking.
Delicious Variations
Tuscan Sausage Version
Brown 8 ounces (225g) crumbled Italian sausage in the pot first, then proceed; skip the Parmesan rind and use only 1/4 teaspoon salt.
Coconut Curry Spinach Bean Soup
Swap the oregano for 2 teaspoons curry powder, use coconut oil, and finish with 1/2 cup (120ml) coconut milk instead of Parmesan.
Instant Pot Shortcut
Saute on the Saute setting, then pressure cook on high for 5 minutes with a 5-minute natural release before adding the spinach.
How to Store Spinach and White Bean Soup
Refrigerator
Cool to room temperature within 1 hour, then store in airtight containers for up to 4 days. The soup thickens as it sits; thin with a splash of broth when reheating.
Freezer
Freeze in 2-cup portions for up to 3 months, leaving 1 inch of headspace. For best texture, freeze before adding the spinach and stir fresh spinach in after reheating.
Reheating
Reheat on the stovetop over medium-low heat, about 3 to 5 minutes, until steaming but not boiling. In the microwave, cover and heat 90 seconds, stir, then heat in 30-second bursts.
Frequently Asked Questions
Q: Is spinach and white bean soup healthy?
Yes, one bowl delivers roughly 12g of protein, 6g of fiber, and a solid dose of iron, folate, and vitamin A. It is naturally light at about 285 calories per serving, and the olive oil and beans provide fat and protein that keep you full. Watch the sodium by using low-sodium broth and rinsing the beans.
Q: Can I use dried beans instead of canned?
Yes, but plan ahead: soak 1 cup (200g) dried cannellini beans overnight, drain, and simmer in the broth for 60 to 75 minutes until creamy. You will need about 1 extra cup of broth, and the total cook time jumps to roughly 90 minutes. Canned beans are the 30-minute version and taste 90 percent as good.
Q: How do I make this soup taste less bland?
Salt at the end, add acid, and use the Parmesan rind. Bland bean soup is almost always under-salted, so taste after removing the rind and add salt in 1/4 teaspoon increments. The lemon juice at the finish and the rind during simmering add the savory depth people usually try to fix with more spices.
Q: Can I make spinach and white bean soup vegan?
Yes, simply skip the Parmesan rind and use 2 tablespoons nutritional yeast plus 1 teaspoon white miso stirred in at the end. Use vegetable broth and check that your beans are not seasoned with any animal products. The soup still tastes rich because the miso and yeast add the same savory note the cheese would.
Q: How long does spinach and white bean soup last in the fridge?
It keeps 4 days in an airtight container in the refrigerator. After that, texture and flavor drop off noticeably even if it is technically safe. For longer storage, freeze it for up to 3 months and add fresh spinach when you reheat.
Make this pot tonight and you have lunch sorted through Thursday. Grab your Dutch oven, open two cans of beans, and let the stove do the work while you do something else. If you make it, come back and tell me which variation you tried. Work smarter, not harder.
Spinach and White Bean Soup
Spinach and white bean soup is a light, protein-packed lunch with 12g protein per bowl and ready in 30 minutes on the stove.
🧂 Ingredients
- 3 tablespoons olive oil
- 1 large yellow onion, diced (about 1 1/2 cups / 200g)
- 3 medium carrots, diced (about 1 cup / 130g)
- 4 garlic cloves, minced (about 4 teaspoons)
- 1 teaspoon dried oregano
- 1/2 teaspoon red pepper flakes
- 2 (15-ounce / 425g) cans cannellini beans, drained and rinsed
- 4 cups (950ml) low-sodium vegetable broth
- 1 Parmesan rind (about 2 inches / 5cm)
- 5 ounces (140g) baby spinach
- 1 tablespoon fresh lemon juice (about 1/2 lemon)
- 1/2 teaspoon kosher salt, plus more to taste
📋 Instructions
- 1Sweat the aromatics — Heat the olive oil in a 5.5-quart Dutch oven over medium heat, about 325F (163C), for 2 minutes until it shimmers. Add the onion and carrots and cook 6 to 7 minutes, stirring occasionally, until the onion is translucent and the edges are just starting to turn golden.
- 2Bloom the garlic and spices — Stir in the garlic, oregano, and red pepper flakes and cook 45 seconds, just until the garlic smells nutty and fragrant. Do not let it brown, or it will turn bitter.
- 3Add beans and broth — Pour in the broth, then add the beans and the Parmesan rind. Scrape the bottom of the pot with your wooden spoon to lift up any browned bits, which is where a lot of flavor hides.
- 4Simmer gently — Bring to a bare simmer, about 200F (93C), then reduce the heat to low. Cook uncovered for 18 to 20 minutes, stirring every 5 minutes, until the carrots are fork-tender and the broth has darkened slightly and smells savory.
- 5Mash for body — Scoop out 1 cup of beans and broth, mash them with a fork in a bowl, and stir the mash back in. Simmer 3 more minutes; the broth should coat the back of your spoon, like a light gravy.
- 6Pull the rind — Fish out the Parmesan rind with tongs or a slotted spoon and discard it. Taste the broth now and add the 1/2 teaspoon kosher salt, then more in 1/4 teaspoon increments until it tastes full, not flat.
- 7Wilt the spinach — Turn off the heat completely. Add the spinach in two handfuls, stirring after each, and let it sit 90 seconds until fully wilted but still bright green.
- 8Finish and serve — Stir in the lemon juice, ladle into bowls, and top with cracked black pepper or a shaving of Parmesan. Serve hot with crusty bread for dunking.



