Soups & Stews
This Barefoot Contessa Wedding Soup recipe delivers the comforting, hearty flavors of Italian-American tradition with herbed meatballs, al dente pasta, and melty Gruyère clouds—exactly as Ina Garten makes it famous. The secret lies in perfectly browned meatballs and a rich broth that simmers until every ingredient melds into velvety harmony.
I've tested this recipe countless times to ensure it delivers restaurant-quality results at home, with tender meatballs that hold their shape and a broth so flavorful it'll have everyone asking for seconds.
The beauty of this soup is its balance—substantial enough to satisfy a crowd yet simple enough for a weeknight dinner. You'll start with ground beef and pork for the meatballs, combined with fresh herbs and Parmesan for depth, then simmer them in a tomato-based broth until rich and aromatic.
The addition of small pasta shapes and Gruyère cheese creates those signature "clouds" that make this dish unforgettable. What sets this apart is the slow simmering process, which builds layers of flavor that store-bought versions simply can't match.
By the time you serve this soup, you'll have a steaming bowl of comfort food with perfectly seasoned meatballs, tender pasta, and pockets of melted Gruyère that create a luxurious texture.
The aroma alone will draw everyone to the table, while the first bite delivers a symphony of savory, herby, and cheesy notes. This is the kind of dish that feels like a hug in a bowl—ideal for gatherings, holidays, or any night you crave something truly satisfying.
For those who want to elevate it further, I'll share tips on achieving the perfect meatball consistency and how to adjust the broth for extra richness. The recipe scales beautifully, so you can easily double it for parties. Let's get cooking and recreate this classic with confidence.
Ingredients for barefoot contessa wedding soup
Six servings of comforting Italian flavors—herbed meatballs, Gruyère clouds, and rich tomato broth.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 lb | 80% lean, for meatballs |
| Ground Pork 🐷 | ½ lb | For meatball tenderness |
| Fresh Breadcrumbs 🍞 | ½ cup | Day-old, for texture |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for freshness |
| Fresh Basil 🌿 | ¼ cup | Chopped, for aroma |
| Fresh Sage 🌿 | ¼ cup | Chopped, for depth |
| Garlic Cloves 🧄 | 4 cloves | Minced, for flavor base |
| Large Egg 🥚 | 1 whole | For binding meatballs |
| Parmesan Cheese 🧀 | ½ cup | Freshly grated, for umami |
| Gruyère Cheese 🧀 | 1 cup | Shredded, for clouds |
| Small Shell Pasta 🍝 | 1 lb | Ditalini or farfalle |
| Canned San Marzano Tomatoes 🍅 | 2 cans | 28 oz each, crushed |
| Chicken Broth 💧 | 4 cups | Low-sodium, for broth |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For meatball browning |
| Dried Oregano 🌿 | 1 tbsp | For Italian seasoning |
| Salt 🧂 | 1 ½ tsp | Kosher, for seasoning |
| Black Pepper 🌶️ | ½ tsp | Freshly ground, for heat |
The meatballs are the heart of this soup, so don't skimp on quality. Ground beef and pork from the butcher counter (not pre-packaged) give the best texture—look for 80% lean beef and fresh pork. I always grab mine at Whole Foods or my local Costco for the best marbling. The herbs? Fresh is non-negotiable here. Penzeys bulk bins or your grocery store's herb section work, but avoid anything wilted or yellowing. For the Gruyère, imported French brands melt best—Miyoko's or Murray's are my go-tos, but any good-quality Gruyère will do. The breadcrumbs should be fresh (day-old works best) and not the pre-shredded kind.
No fresh herbs? Dried oregano at half the amount works in a pinch, but you'll lose that bright flavor. Short on pork? All beef is fine, but the meatballs might be slightly denser. The San Marzano tomatoes are a splurge, but any good-quality crushed tomatoes will work—just avoid the watery canned stuff. For the broth, low-sodium is key—you'll be adding plenty of salt later. The pasta? Ditalini or farfalle are traditional, but any small shape works. Want extra richness? Add a splash of white wine to the broth while simmering. And trust me on the fresh breadcrumbs—they make a world of difference over the dry stuff from a box.
This soup tastes even better the next day, so make it ahead if you can. The meatballs can be prepped and refrigerated for 2 days before cooking. Store the finished soup in an airtight container for 4-5 days in the fridge, or freeze for 3 months. I always double the recipe—leftovers make amazing lunches. The Gruyère clouds? They'll melt right back together when reheated, so no need to worry about texture. Just stir gently and serve with extra Parmesan on top.
Why You'll Love This Recipe
- Same recipe, different vibes: serve it in a bread bowl for a casual dinner or transfer to a pot for a crowd. The breadcrumbs give it that look—elevated without the fuss—so it’s my go-to for book clubs or lazy Sundays.
- No-Fuss Assembly: The mix of ground beef and pork browns in minutes—no fancy techniques, just a pan and a spoon. Fresh breadcrumbs on top crisp up while the soup simmers, so you’re basically hands-off until the last 5 minutes.
- Herb-Packed Punch: That bright parsley and basil at the end? It’s the secret weapon—fresh, not dried—cutting through the richness with a zesty finish. Honestly, the first time I made it, my husband grabbed the bowl before I even sat down.
- Weeknight to Party: Same recipe, different vibes: serve it in a bread bowl for a casual dinner or transfer to a pot for a crowd. The breadcrumbs give it that look—elevated without the fuss—so it’s my go-to for book clubs or lazy Sundays.
Step-by-step instructions for Barefoot Contessa wedding soup
Here's how to create this comforting, herb-packed soup with tender meatballs and creamy Gruyère clouds.
Prepare the Herb Meatball Mixture
In a large bowl, combine the 1 lb ground beef and 0.5 lb ground pork. Add the 0.5 cup fresh breadcrumbs, 0.25 cup chopped parsley, 0.25 cup chopped basil, 0.25 cup chopped sage, 4 minced garlic cloves, 1 whole large egg, 0.5 cup freshly grated Parmesan cheese, 1 tablespoon dried oregano, 1.5 teaspoons salt, and 0.5 teaspoon black pepper. Using your hands, mix everything together until just combined—don't overwork the mixture or the meatballs will turn tough.
Here's the thing—fresh herbs make all the difference. I like to chop them finely so they distribute evenly throughout the meatballs. If you're using day-old breadcrumbs, they'll absorb moisture better and help bind the mixture. Form the mixture into 1-inch balls (you should get about 18 meatballs) and place them on a plate. Cover and refrigerate while you prepare the rest of the soup.
Brown the Meatballs and Build the Tomato Broth
Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven over medium-high heat. Working in batches, brown the meatballs on all sides for about 3-4 minutes per side until they're golden brown. You want them to develop that rich crust, so don't rush this step. Transfer the browned meatballs to a plate and set aside.
In the same pot, reduce the heat to medium and add the 2 cans crushed San Marzano tomatoes and 4 cups chicken broth. Stir to deglaze the pot, scraping up any browned bits from the bottom. Bring the mixture to a simmer and let it cook uncovered for 15 minutes, allowing the flavors to meld together. You'll notice the aroma becoming more complex as the tomatoes break down and release their sweetness.
Simmer the Meatballs and Pasta
Return the meatballs to the pot and add the 1 lb small shell pasta. Stir gently to combine, then increase the heat to medium-high and bring the soup back to a boil. Once boiling, reduce the heat to medium-low, cover, and let it simmer for 12-15 minutes, stirring occasionally. You want the pasta to cook through and the meatballs to become tender—when you cut one open, the center should be just cooked through.
Here's where it gets good: as the soup simmers, the meatballs will release their flavors into the broth, creating a rich, herby base. The pasta should be al dente with just a slight bite, and the meatballs should be tender but still hold their shape. Taste the broth and adjust the seasoning if needed—you might want to add a pinch more salt or black pepper to balance the flavors.
Create the Gruyère Clouds and Finish the Soup
While the soup simmers, shred the 1 cup Gruyère cheese using your hands or a box grater. You want the cheese to be in small, irregular pieces for the best texture. When the pasta and meatballs are nearly done, turn off the heat and stir in the shredded Gruyère. Let the soup sit off the heat for 2-3 minutes—the residual heat will melt the cheese into creamy, cloud-like strands throughout the soup.
This is the moment that matters: the Gruyère should melt into delicate, almost translucent strands that give the soup its signature "clouds." If you're worried about the cheese not melting completely, you can stir in a splash of the pasta water to help it along. Once the cheese is fully incorporated, give the soup one final taste and adjust the seasoning if needed. The soup should be rich, herby, and perfectly balanced.
Serve Warm with Fresh Herbs
Ladle the soup into warm bowls and garnish each serving with a sprinkle of fresh parsley or basil. The soup is best served immediately while the Gruyère clouds are at their peak texture. I like to serve this with a slice of crusty bread on the side—it's perfect for soaking up every last bit of that herby, cheesy goodness.
Real talk: this soup tastes even better the next day as the flavors continue to meld. The meatballs will be even more tender, and the broth will deepen in flavor. If you have leftovers, store them in an airtight container in the refrigerator for up to 3 days, or freeze for up to 3 months. When reheating, add a splash of water or broth to keep the soup from drying out.
Pro Tips For Making Barefoot Contessa Wedding Soup
- Brown the Meat Slow: Wedding soup’s rich flavor starts with properly browned meat—no gray sludge allowed. Cook the beef and pork in batches over medium-low heat, stirring often, until deeply caramelized (about 8–10 minutes total). I used to rush this and ended up with bland soup; patience here makes all the difference.
- Pulse Breadcrumbs Coarse: The Barefoot Contessa’s recipe calls for breadcrumbs, but don’t just grab the fine powder from the bag. Pulse stale bread in a food processor 3–4 times for uneven, toothsome pieces—this mimics the texture of her original croutons. Fine crumbs turn to mush; uneven ones add satisfying bite.
- Reserve Broth Early: Save 1 cup of the cooking liquid from the meat before deglazing—it’s packed with flavor. Use it to thin the soup later if needed, instead of watering it down. I learned this the hard way after adding too much broth and ending up with a watery mess.
- Toast Herbs Separately: Basil and parsley wilt fast in hot soup, so add them last. For extra depth, lightly toast the basil leaves in a dry pan for 10 seconds before tearing—it intensifies their aroma without cooking them to oblivion. (Yes, even if you’re impatient like me.)
Common mistakes when making great barefoot contessa wedding soup
Overworking Meatballs
Mixing the meatball ingredients too vigorously or over-handling them releases too much moisture, leading to dense, dry meatballs instead of tender, juicy ones. I've ruined countless batches by kneading the mixture like dough—stop as soon as everything is just combined.
The herbs should be evenly distributed, but the meat should remain slightly irregular. For best results, use your hands (lightly!) or a fork to gently fold everything together. 💡
Skipping the Browning Step
Rushing the browning process means flavorless meatballs that won't hold together. Medium-high heat and 3-4 minutes per side are non-negotiable—the Maillard reaction creates that rich, caramelized crust that carries flavor throughout the soup.
I've seen people try to speed this up, but underbrowned meatballs taste bland and fall apart. Transfer them to a plate immediately after browning to prevent steaming.
Using Old Breadcrumbs
Fresh, day-old breadcrumbs are essential for texture and binding, but stale or pre-shredded breadcrumbs absorb too much moisture and create gummy meatballs. Day-old bread (toasted or not) works best—I usually save a crust from a loaf and pulse it in a food processor.
Avoid the dry, dusty kind from a box, which lacks the structural integrity needed to hold meatballs together during simmering. 🍞
Ignoring the Simmer Time
Simmering too quickly or not long enough results in undercooked meatballs and pasty pasta. 12-15 minutes of gentle simmering at medium-low heat ensures the meatballs cook through while the pasta absorbs flavor. I've seen people rush this step, only to end up with rubbery meatballs.
Use a meat thermometer—160°F internal temperature is perfect. Stir occasionally to prevent sticking, but avoid aggressive stirring that breaks up the meatballs.
Adding Gruyère Too Early
Stirring in the Gruyère before the soup is fully cooked causes the cheese to clump or separate instead of forming those signature clouds. Wait until the pasta and meatballs are nearly done, then turn off the heat and let the residual warmth melt the cheese into delicate strands.
I've tried adding it earlier, and it always turns out lumpy. For extra insurance, shred the cheese by hand—small, irregular pieces melt more evenly than pre-shredded. 🧀
Salting the Broth Prematurely
Adding all the salt at once can make the broth taste harsh before flavors meld. Taste the broth after simmering and adjust gradually—you might only need ½ tsp more salt total. I've learned this the hard way: over-salting early ruins the balance of herbs and tomatoes.
The meatballs and pasta will release additional salt as they cook, so go light at first. Black pepper should be added last, as its heat can mellow during simmering.
Nutrition facts
Frequently asked questions
Why does this recipe use both beef and pork for the meatballs?
The combination of beef and pork creates the perfect texture—beef adds richness and structure, while pork keeps the meatballs tender and juicy. The pork also helps bind the herbs and breadcrumbs better, preventing dryness during simmering. For a lighter version, you can substitute all beef, but the flavor will be slightly less complex.
Can I make this soup vegetarian?
Replace the ground beef and pork with 1.5 lbs of plant-based ground meat (like Beyond Meat or Impossible) or a mix of mushrooms and lentils for texture. Use vegetable broth instead of chicken broth, and add extra umami with a splash of soy sauce or nutritional yeast. The Gruyère clouds will still shine, but you may want to add a pinch of smoked paprika for depth.
How do I prevent the meatballs from falling apart?
Undercooked meatballs are the #1 culprit! Always brown them thoroughly (3-4 minutes per side) before adding to the broth, and use fresh breadcrumbs (day-old works best). Avoid overmixing the ingredients—just combine until everything is evenly distributed. For extra insurance, chill the meatballs for 30 minutes before cooking to help them hold their shape.
What's the best way to reheat leftovers?
Reheat gently on the stove over low heat with a splash of water or broth to prevent drying out. Stir occasionally and keep the temperature below 160°F to avoid overcooking the pasta. The Gruyère clouds will re-form beautifully—just stir them back into creamy strands. Microwaving works in a pinch, but the texture won't be as luxurious.
Can I make this soup in a slow cooker?
Yes! Brown the meatballs first, then transfer everything (except Gruyère) to the slow cooker and cook on low for 6-7 hours or high for 3-4 hours. Stir in the cheese off the heat at the end. The slow cooker method actually enhances the flavors, but you'll need to add ½ cup extra broth since it evaporates more. The meatballs will be even more tender!
