Description
An extra-flavorful take on Ribollita, the iconic meatless Tuscan soup! Rustic bread simmers in an aromatic tomato broth infused with fresh herbs, loads of garlic, and a parmesan rind for bold flavor, plus tons of hearty white beans and kale.
It’s satisfying and extra-cozy as-is, but I love to finish each bowl with crispy toasted croutons for a bit of added texture. This 20-minute ribollita soup recipe is simple to prep, super budget-friendly, and hearty yet meatless. A bowl of Tuscan sunshine, perfect for soup season!
Ingredients
Scale
- 6 tablespoons olive oil, divided
- 4 medium carrots, peeled as desired and diced
- 2 ribs celery, diced
- 1 large yellow onion, diced
- 2 teaspoons dried Italian seasoning
- 1 cup dry white wine
- One 28-ounce can whole peeled tomatoes with their juice
- 32 ounces low-sodium vegetable stock or broth
- 2 cups water
- 1 head garlic, halved crosswise and excess paper removed
- 2 bay leaves
- One 0.75-ounce pack “poultry blend” fresh herbs (or approx. 2 sprigs fresh rosemary, 2 sprigs fresh sage, and 10–12 sprigs fresh thyme), tied into a secure bundle with kitchen twine
- optional: parmesan rind (see Recipe Notes)
- 12 ounces sourdough or hearty bread of choice, cut or torn into ½-inch pieces and divided
- Two 14-ounce cans cannellini beans, drained and rinsed
- 1 bunch kale, destemmed and finely shredded (approx. 2 cups packed)
- kosher salt and ground black pepper, to season
- for serving, as desired: extra virgin olive oil, shaved parmesan, ground black pepper
Instructions
- Prep: Preheat the oven to 450 degrees F. Gather and prep all ingredients according to Ingredients List, above.

- Cook the aromatics: Add 4 tablespoons (¼ cup) of the olive oil to a large, heavy-bottomed pot or Dutch oven (at least 5-qt capacity) over medium heat. Once hot, add in the carrot, celery, and onion. Season with 1 teaspoon kosher salt and ground black pepper as desired. Stir to combine. Cook, stirring occasionally, until the veggies have softened slightly, 6-8 minutes. Add the Italian seasoning, stirring to combine. Toast until fragrant, 1-2 minutes. Deglaze the pot by slowly pouring in the white wine, using a wooden spoon to scrape up any browned bits that have formed on the bottom of the pan. Let the wine simmer, reducing by half.

- Build the ribollita: Add the whole peeled tomatoes, vegetable stock or broth, garlic, bay leaves, fresh herbs, and parmesan rind (if using) to the pot. Stir to combine, using a wooden spoon to roughly break up the whole tomatoes. Season with 1 teaspoon kosher salt and additional ground black pepper as desired. Increase the heat to medium-high to bring the mixture to a boil. Once boiling, reduce heat to maintain a steady simmer. Partially cover the pot (place the lid on the pot such that it’s just partially covered, allowing some steam to escape as the soup cooks) & simmer for 20 minutes.

- Toast the bread: Meanwhile, as the soup simmers, toast the bread. Place 2/3 of the torn bread on a large baking sheet. Drizzle with the remaining 2 tablespoons olive oil. Season with a good pinch of kosher salt and ground black pepper. Toss to coat well, arranging the seasoned bread in an even layer across the baking sheet. Transfer to the oven and toast 10-12 minutes, until golden brown. Remove from the oven and set aside for serving.

- Finish the ribollita: Once the ribollita has simmered, add in the reserved ⅓ of the torn bread, cannellini beans, and kale. Stir to combine well. Cook an additional 5 minutes, until the beans are warmed through and the kale is wilted. Taste and season with additional kosher salt and ground black pepper as needed. Remove from the heat & discard the bay leaves, herb bundle and parmesan rind. You can also remove and discard the garlic – but I like to carefully squeeze the cooked cloves of garlic out of the bulb and into the soup…so good!

- Serve immediately: Portion the ribollita into soup bowls, topping with a good handful of the toasted bread cubes. Finish with a generous drizzle of extra virgin olive oil and a sprinkling of grated parmesan. Enjoy!

Notes
- Parmesan rind: A parmesan rind is the tough outer edge of a wheel of Parmigiano Reggiano, and it’s my absolute favorite soup season secret. Toss a parmesan rind into any cozy soup you make this cold-weather season; as it simmers, it infuses a rich, parmesan-y flavor into the broth. It’s an easy way to add an extra depth of flavor to soups, stews, and sauces, especially when the recipe comes together quickly. Parmesan rinds are usually sold at cheese shops or grocery stores with a more curated cheese selection (I buy mine at Whole Foods). Store them in your freezer all soup season long!
- Storage, Reheating, and Freezing:
- Storage and Reheating: This ribollita soup is incredibly make-ahead friendly – it stores so well and it’s one of those things that gets even better as it sits and its flavors meld together. Transfer the cooled soup to an airtight container and store in the refrigerator for up to 5 days. Store any leftover toasted bread croutons in an airtight container at room temperature for up to 5 days. Reheat the soup on the stovetop or in the microwave until warmed through. Serve with toasted bread cubes.
- Freezer Instructions: This ribollita soup is also incredibly freezer-friendly. Transfer the cooled soup to a freezer container or divide between multiple freezer containers for smaller portions. Freeze for up to 3 months. To thaw, place the frozen tomato soup in the refrigerator overnight or submerge the freezer container in room temperature water for a quicker thaw. Easily reheat on the stovetop.
- 20-Minute Meal Prep: All of the prep work involved in this recipe is chopping veggies. Chop them all in advance, storing in airtight containers in the refrigerator for up to 5 days. When you’re ready to prep your soup, all you have to do is get cooking – seriously so easy!:
- Dice 1 large yellow onion, 4 medium carrots (peel as desired), and 2 ribs celery. Store in an airtight container in the refrigerator for up to 5 days. (10 minutes active prep)
- Destem and finely shred 1 bunch kale. Transfer to a zip-top bag, removing as much air as possible. Store in the refrigerator for up to 5 days. (5 minutes active prep)
- Dice or tear 12 ounces bread into rough ½-inch pieces. Transfer to a zip-top bag, removing as much air as possible. Store at room temperature for up to 5 days. (5 minutes active prep)

