Vegan White Bean Soup Recipe
Published · Updated
A satisfying, protein-rich vegan soup featuring tender white beans, aromatic vegetables, and fresh greens. Perfect for a cozy, nourishing meal any time.
Jump To Recipe
Why This Vegan White Bean Soup Is a Staple in My Kitchen
There’s just something deeply satisfying about a hearty bowl of vegan white bean soup. For me it’s all about the texture: crush a third of the beans and stir them back in, and the soup goes creamy on its own, with nothing poured into it to get there. This isn’t just food for sustenance. It’s comfort that hits the spot any day of the week.
What I love here is how you can take basic pantry staples and turn them into something that feels a little special. The beans provide a creamy, filling base, while the addition of herbs like thyme and rosemary gives this soup its classic, comforting aroma.
A big reason this recipe is a favorite is its sheer adaptability. No kale? Just swap in spinach, and take it off the heat the moment it goes limp. Want it savorier? A spoonful of white miso stirred in at the end does what a parmesan rind does in the Italian original.
My favorite ways to enjoy this recipe:
- As a simple weeknight meal with crusty bread
- Topped with a drizzle of olive oil and lots of fresh parsley
- As a starter before a bigger dinner
- Cooked down with extra greens for a thicker, stew-like vibe
However you make it, this soup is a comfort classic that’s easy to return to, time and again.
The story
Why This Soup Is Tuscan and the Beans in It Are Not
Beans matter so much in Tuscany that the rest of Italy nicknamed Tuscans “mangiafagioli”, the bean eaters. It started as a jab about peasant food and got adopted as a badge instead. What makes it odd is that the bean the region is famous for is not from there. Cannellini are a New World crop, carried back across the Atlantic by Spanish and Portuguese ships in the 1500s. Before they arrived, a Tuscan bean soup meant fava beans or chickpeas, because those were the only legumes the Mediterranean had. Even the name is borrowed: “cannellino” is a diminutive of “canna”, a reed, which is a fair description of a bean that grows longer and straighter than a kidney bean.
The technique here is older than the bean. Tuscan cooks worked the way a kitchen with a permanent fire and no spare fuel would: “fagioli al fiasco” is beans, olive oil, sage, pepper and water sealed into an emptied Chianti flask and pushed into the embers overnight, so breakfast cooked itself while everyone slept. The same thrift produced the creamy bean soup. A traditional zuppa di fagioli gets its body by passing some of its own beans through a food mill and stirring the purée back in. Nobody was adding cream, because in a Tuscan farmhouse there was none to add. Step 3 of this recipe is that food mill, replaced by a fork.
Which is why a vegan version of this dish does not taste like a compromise. Most recipes that get veganized were built on meat and have a hole in the middle once you take it out. This one was built on beans, olive oil, aromatics and greens. The classic drops a parmesan rind in the pot and sometimes pancetta, but those are seasonings laid over a dish that already exists without them. Remove them and you still have what Tuscan farmers actually ate, most days, for four hundred years.
What to buy
Ingredient Notes
White beans, cannellini or navy
Cannellini are the Tuscan bean and the right one here: large, thin-skinned, firm enough that the whole ones stay whole while the crushed ones go creamy. Navy beans are smaller and break down further, for a thicker but less distinct soup. Great Northern sit between the two. Butter beans and limas turn grainy rather than creamy, so skip those.
Low-sodium vegetable broth
The one swap here that changes the numbers rather than the taste. Made with standard broth, a bowl of this carries around 1,600 mg of sodium, most of a day’s worth before you touch the salt. Low-sodium cuts that by more than half and you season back in step 6. Read the label for the other reason too: many broths are heavily tomato and carrot flavored, which fights the herbs instead of carrying them.
Dried rosemary
Half a teaspoon, and crumble it hard between your fingers first. Dried rosemary needles do not soften in 20 minutes of simmering. They stay stiff and you find them in the bowl, like pine needles. Crushing breaks them down and releases the oil in the same motion. With fresh rosemary, use a 3 inch sprig whole and pull it out before serving.
Lemon juice
An ingredient, not a garnish. Beans, olive oil and long-cooked vegetables are all soft, round flavors with nothing to push against, and the result tastes muddy in a way most people diagnose as needing more salt. It does not. It needs acid. Add it off the heat, because juice that boils turns dull and faintly bitter.
White miso paste (optional)
The one thing here that is not remotely Italian, doing a thoroughly Italian job. The classic zuppa simmers a parmesan rind for savory depth. Miso is fermented and full of the same free glutamates, and a spoonful slaked into hot soup off the heat gives a vegan bean soup the background savor it otherwise lacks. Buy shiro, the pale sweet one. Check the label if gluten matters, because some miso is fermented with barley rather than rice.
Kale or spinach
Lacinato kale, sold as cavolo nero, is the Tuscan one and holds its shape best. Strip the leaves off the stems whichever you buy, because the stems stay tough long after the leaves are tender. Swiss chard and collards run on the same 5 minute timing as kale; baby spinach and arugula are on the 30 second timing instead.

Hearty Vegan White Bean Soup
A hearty vegan white bean soup made creamy the Tuscan way, by crushing a third of the beans instead of reaching for cream. Ready in 50 minutes.
Ingredients
Equipment
As an Amazon Associate I earn from qualifying purchases, at no extra cost to you.
Instructions
- 1
Build the soffritto
Heat 2 tablespoons of the olive oil in a large pot over medium heat. Add the onion, carrots and celery with a good pinch of salt and cook for 8 to 10 minutes, stirring now and then, until the onion is translucent and a piece of carrot gives when you press it. Give it the full time. The vegetables look done after 5 minutes and do not taste it.

- 2
Bloom the garlic and dried herbs
Add the garlic, the thyme and the crumbled rosemary. Cook for 1 minute, stirring the whole time, until the garlic smells sweet rather than raw. Dried herbs give up their aroma to fat rather than to water, so this one minute in the oil does more for the soup than the entire simmer will.

- 3
Crush a third of the beans
Tip 1 cup (about 175 g) of the beans into a bowl and crush them to a rough paste with a fork or a potato masher, adding a spoonful of the broth if they are stiff. Leave the other 2 cups whole. This is the step that makes the soup creamy, and there is no cream anywhere in the recipe to do it instead.

- 4
Simmer
Scrape the bean paste and the whole beans into the pot, pour in the broth and stir, loosening anything stuck to the bottom. Bring to a boil, then drop the heat until the surface is barely moving and cook uncovered for 20 minutes. It thickens noticeably over that time as the crushed beans swell.

- 5
Wilt the greens
If you are using kale, stir it in and simmer for 5 minutes, until it is tender and still dark green. Spinach needs far less than that: stir it in, count to thirty and take the pot off the heat. Five minutes turns spinach gray and slippery.

- 6
Season off the heat
With the pot off the heat, stir in the lemon juice. If you are using the miso, slake it in a ladleful of the hot soup until smooth and stir that back in; miso whisked into a boiling pot goes flat. Now taste, and add salt and plenty of black pepper. Broths vary enormously in saltiness, which is why the seasoning happens here and not at the start.

- 7
Ladle and drizzle
Ladle into bowls, drizzle each one with raw extra-virgin olive oil and scatter over the parsley. The finishing oil is not decoration. It carries the peppery flavor that heat drives off, and it is the difference between a good bowl and a flat one. Serve hot, with bread.

Notes
Two cans, 15 oz or 400 g, give you the 3 cups (530 g) the recipe needs with nothing left over. Drain and rinse them. The canning liquid is salty and cloudy, and the crushed beans in step 3 already do the thickening it would be there for.
Cooking from dried is worth the time if you have it. Use 1 ¼ cups (250 g) dried beans, and hold back 1 cup of their cooking liquid to use in place of some of the broth.
The soup thickens as it sits. Loosen it with a splash of water or broth when you reheat it, and taste again for salt and lemon, because both fade overnight.
Nutrition Facts
4 servings · 472 g per serving
- Calories
- 246 kcal
% Daily Value*
- Total Fat
- 11 g14%
- Saturated Fat
- 1.5 g8%
- Sodium
- 677 mg29%
- Total Carbohydrate
- 32 g12%
- Dietary Fiber
- 9.5 g34%
- Sugars
- 4.1 g—
- Protein
- 10.3 g21%
Recipe from veggierecipes.blog
When it goes wrong
Troubleshooting
It came out watery instead of creamy
The beans in step 3 were not crushed far enough. A fork tapped against a few firm beans is not it: press until the bowl holds something like coarse mashed potato, with no recognizable beans left. To rescue a finished pot, lift out a ladleful, mash or blend it smooth and stir it back. An immersion blender works too, but three or four pulses at most.
It tastes flat even though I have salted it twice
Nearly always the acid, not the salt. Off the heat, stir in the tablespoon of lemon juice and taste again before reaching for more salt. If it is still hollow, the missing piece is savoriness, which is the job the optional miso does. A third round of salt on a soup that wants acid only makes it salty and flat.
There are woody splinters in the soup
Dried rosemary needles, which never soften. They will still be needle-shaped after an hour in the pot. Crumble them between your fingers before they go in, or use a whole fresh sprig and fish it out. Once it has happened there is no fix short of straining.
My spinach turned gray and slippery
It stayed in too long. Spinach is finished in well under a minute and keeps cooking in the heat the soup already holds, so it goes in as the pot comes off the burner, not with 5 minutes left on the timer. That 5 minutes belongs to kale, chard and collards.
The beans dissolved completely and I wanted some whole
A rolling boil rather than a simmer. Once it boils the heat has to come down until the surface is barely moving, or already-cooked beans knock against each other for 20 minutes and lose. With a soft brand of canned bean, hold the whole ones back and add them for the last 10 minutes, leaving only the crushed third in for the full simmer.
It set into a paste in the fridge overnight
That is the recipe working, not failing. The crushed beans go on absorbing liquid as it cools, so the starch that makes it creamy on the first night makes it a stew by the second. Loosen with water or broth as you reheat, a splash at a time, and season again once it is hot.
Before you serve
Serving & Storage
In Tuscany a bowl of bean soup is finished at the table, not in the kitchen. The olive oil goes on in front of you, straight from the bottle, in a quantity that looks like an accident to anyone who did not grow up with it. Do the same: put the oil, a pepper mill and half a lemon on the table and let people set up their own bowl. It also settles the problem of cooking for a group who disagree about how sharp they like things.
The bowl wants bread more than a side dish. Tuscan bread is famously unsalted, which is what lets it soak up salty, oily food without piling on more salt, but any sturdy loaf with a real crust works. Best of all: toast a thick slice, rub it with a cut clove of garlic and lay it in the bottom of the bowl before you ladle, which takes the soup close to ribollita. Soft sandwich bread dissolves in a minute, so skip it. Alongside, go sharp and bitter rather than rich: radicchio or arugula with lemon and oil, or charred cabbage. Anything creamy leaves the meal one texture.
Making it ahead
This is genuinely better on the second day, which is worth planning around rather than working against. Cook to the end of step 4, then cool and refrigerate the base for up to 4 days. Add the greens, lemon and miso while you reheat, so the greens are not cooked twice and the lemon is not a day old. Cooking it right through to step 7 and reheating that is the version that disappoints: the greens go drab and the acid flattens.
Storing leftovers
Four days in a sealed container in the fridge. It sets almost solid, which is bean starch and not a sign anything is wrong. Reheat slowly over low heat with a splash of water or broth stirred in, and taste for salt and lemon before it goes back in the bowl.
It freezes for 3 months, and freezes better without the greens, so freeze the step 4 base if you are planning that far ahead. Kale survives a freeze; spinach comes back as gray threads. Thaw overnight in the fridge and reheat on the stove, because going at it from frozen in a microwave leaves you stirring a hot rim around a cold middle.
Still wondering
Frequently Asked Questions
How can I make this soup gluten-free?
The soup is naturally gluten-free and only two ingredients need checking. Vegetable broth is the usual culprit, because some brands carry barley malt or wheat-derived flavorings. The other is the optional white miso, which is sometimes fermented with barley rather than rice; a label reading “rice koji” or marked gluten-free is safe. Use a gluten-free loaf on the side and nothing else in the recipe is a risk.
Can I double this recipe?
Yes, with two adjustments. Use 7 cups (1.65 liters) of broth rather than a straight 8, because a wider pot loses less to evaporation over the same 20 minutes, and take the herbs to 1 ½ teaspoons thyme and ¾ teaspoon rosemary rather than doubling them. Everything else doubles as written, and the soffritto needs about 5 minutes longer in a crowded pan.
Can I make it in a slow cooker or an Instant Pot?
Both, as long as the soffritto still happens in a pan. Onion, carrot and celery only steam in a slow cooker, and skipping that step is the difference between this soup and hot bean water. Do steps 1 and 2 on the stove or on the sauté setting, add the whole beans and broth, then give it 4 hours on low or 8 minutes at high pressure with a natural release. Crush the beans at the end: scoop out a cupful, mash it, stir it back, then finish as written.
Featured In
More Cozy Vegan Soups to Warm You Up
Made this?




