Get ready to meet the ultimate comfort food: French Onion Short Rib Soup. This recipe blends the deep, caramelized flavor of classic French onion soup with the rich, hearty tenderness of slow-cooked beef short ribs. It’s savory, soul-warming, and topped with golden, cheesy bread that soaks up every last drop of goodness. Perfect for chilly nights or when you need a little edible hug, this is a soup worth savoring.
Let me tell you, this soup has become a bit of a legend in our house. The first time I made it, my husband took one bite, put his spoon down, and said, “This is the best thing you’ve ever made.” (And that’s saying something!) Now, it’s our go-to for cozy Sundays, special occasions, or anytime someone needs cheering up. My kids love the cheesy toast part the most—it’s basically a gourmet grilled cheese floating in beefy, oniony heaven.
Why This French Onion Short Rib Soup Stands Out
-
Unbelievably Flavorful: Caramelized onions, aromatic herbs, and umami-packed tamari give this soup a deep, savory base.
-
Tender, Fall-Off-the-Bone Beef: Slow-cooked short ribs melt into the broth, adding richness and body.
-
Cheesy Perfection: Gruyère-topped toast broiled to golden perfection makes every bowl feel indulgent.
-
One-Pot Wonder (Hello, Crockpot!): Set it and forget it—this recipe is slow-cooked magic with minimal effort.
-
Beautifully Balanced: A touch of white wine, a kiss of heat from chili flakes, and fresh herbs bring brightness to this hearty dish.
Ingredients (Serves 6)
-
85g (6 tbsp / ~0.19 lb) salted butter
-
4 medium yellow onions, thinly sliced
-
120ml (½ cup / ~0.26 lb) dry white wine (like Pinot Grigio or Sauvignon Blanc)
-
Freshly ground black pepper, to taste
-
2 shallots, thinly sliced
-
4 garlic cloves, finely chopped
-
2 tbsp fresh thyme leaves
-
2 tbsp chopped fresh sage
-
A pinch of red chili flakes
-
1.5 to 2 liters (6–8 cups / ~3.17–4.23 lb) low-sodium chicken broth
-
120ml (½ cup / ~0.57 lb) tamari or low-sodium soy sauce
-
1.8 kg (4 lbs) bone-in beef short ribs
-
2 bay leaves
-
1 star anise (optional but highly recommended)
-
2 cups (about 225g / 0.5 lb) baby carrots
-
6 slices crusty French bread
-
2 cups (200g / ~0.44 lb) shredded Gruyère cheese
Directions
Slow Cooker Method
-
In a large Dutch oven over high heat, melt the butter and add the sliced onions. Sauté for about 5 minutes until softened. Pour in the wine, season with black pepper, and let it simmer for 5–8 minutes, until most of the liquid evaporates and the onions begin to caramelize.
-
Stir in the shallots, garlic, thyme, sage, and a pinch of chili flakes. Transfer the mixture to your crockpot.
-
Nestle the short ribs into the pot. Pour in 6 cups of broth (add more later if needed), then stir in tamari, bay leaves, and star anise (if using).
-
Cover and cook:
-
On low for 7–8 hours
-
On high for 5–6 hours
Add the baby carrots in the final 1–2 hours of cooking.
-
-
When the meat is fall-apart tender, remove the bay leaves and star anise. Skim off any fat, discard bones, and shred the beef directly into the soup. Keep warm.
-
To make the cheesy toast:
-
Preheat oven to 425°F (220°C). Toast the bread slices on a baking sheet for about 10 minutes until dry and crisp.
-
Switch the oven to broil. Sprinkle Gruyère cheese on each slice and broil for 2–3 minutes until bubbly and golden.
-
-
Ladle the soup into bowls and top each with a slice (or two) of the cheesy toast. Sprinkle with black pepper and a few thyme leaves for garnish.
Notes
-
Wine Substitute: You can swap the wine for an equal amount of broth if you prefer alcohol-free cooking.
-
Vegetable Options: Feel free to toss in other hearty veggies like parsnips or turnips.
-
Make Ahead: This soup actually tastes better the next day—perfect for meal prep!
-
Cheese Swap: Don’t have Gruyère? Try Swiss, Emmental, or even a mix of sharp white cheddar and mozzarella.
-
Storage Tip: Store leftovers in an airtight container in the fridge for up to 4 days or freeze (without the toast) for up to 2 months.
Let me know if you want this turned into a printable recipe card or formatted for a blog template!