Quick Recipe Version (TL;DR)
Quick Ingredients
- 3 lb (1.36 kg) yellow onions, thinly sliced
- 3 tbsp unsalted butter
- 2 tbsp olive oil
- 1 1/2 tsp kosher salt, plus more to taste
- 1/2 tsp granulated sugar
- 3 cloves garlic, minced
- 1/2 cup (120 ml) dry white wine
- 6 cups (1.42 L) beef broth
- 2 cups (475 ml) low-sodium chicken broth
- 2 tsp Worcestershire sauce
- 6 sprigs fresh thyme (or 1 tsp dried thyme)
- 1 bay leaf
- 1/2 tsp freshly ground black pepper
- 1 baguette (about 12 oz / 340 g), sliced into 1/2-inch rounds
- 12 oz (340 g) Gruyère, shredded (about 3 cups)
Do This
- 1. Caramelize onions in butter + oil with salt and sugar over medium-low heat, 50–60 minutes.
- 2. Add garlic 1 minute; deglaze with wine and reduce 2–3 minutes.
- 3. Add broths, thyme, bay, Worcestershire, pepper; simmer gently 30 minutes.
- 4. Toast baguette slices at 400°F (204°C) for 10–12 minutes, flipping once.
- 5. Keep soup hot in a slow cooker on LOW/WARM (or covered pot on lowest heat).
- 6. Ladle into mini crocks, top with baguette and Gruyère.
- 7. Broil on a sheet pan 2–4 minutes until cheese bubbles and browns; serve immediately.
Why You’ll Love This Recipe
- Party-friendly: A self-serve “crock station” that still delivers that classic broiled-cheese finish.
- Deep, sweet flavor: Properly caramelized onions make the broth taste rich and restaurant-worthy.
- Make-ahead friendly: The soup tastes even better after resting, and reheats beautifully.
- Customizable: Guests can choose extra cheese, extra bread, or a lighter topping.
Grocery List
- Produce: yellow onions (3 lb), garlic (3 cloves), fresh thyme (optional)
- Dairy: unsalted butter, Gruyère cheese (12 oz)
- Bakery: 1 baguette
- Pantry: olive oil, kosher salt, granulated sugar, dry white wine, beef broth, chicken broth, Worcestershire sauce, bay leaf, black pepper
Full Ingredients
For the caramelized onion soup
- 3 lb (1.36 kg) yellow onions, halved and thinly sliced (about 10–12 cups sliced)
- 3 tbsp unsalted butter
- 2 tbsp olive oil
- 1 1/2 tsp kosher salt (plus more to taste)
- 1/2 tsp granulated sugar (helps the onions caramelize evenly)
- 3 cloves garlic, minced
- 1/2 cup (120 ml) dry white wine (Sauvignon Blanc or Pinot Grigio work well)
- 6 cups (1.42 L) beef broth
- 2 cups (475 ml) low-sodium chicken broth
- 2 tsp Worcestershire sauce
- 6 sprigs fresh thyme (or 1 tsp dried thyme)
- 1 bay leaf
- 1/2 tsp freshly ground black pepper
For the toasted baguette and Gruyère topping
- 1 baguette (about 12 oz / 340 g), sliced into 1/2-inch rounds (you’ll need 16–24 slices)
- 12 oz (340 g) Gruyère cheese, shredded (about 3 cups)
Optional finishing touches (nice for a station)
- 1–2 tsp sherry vinegar (stir in at the end for brightness)
- Extra black pepper
- Fresh thyme leaves for garnish

Step-by-Step Instructions
Step 1: Slice the onions and set up your pot
Halve the onions through the root, peel, then slice into thin half-moons (about 1/8-inch thick). Aim for consistent slices so they cook evenly.
Use a wide, heavy-bottomed pot or Dutch oven (at least 5–6 quarts). A wider surface area speeds up caramelization and helps moisture evaporate.
Step 2: Caramelize the onions slowly for maximum sweetness
Add the butter and olive oil to the pot and melt over medium-low heat. Add the sliced onions, kosher salt, and sugar. Stir well to coat the onions in the fat.
Cook for 50–60 minutes, stirring every 3–5 minutes (more often toward the end). The onions should go from pale and soft to deeply golden brown with jammy, sticky strands. If browned bits build up too quickly, reduce heat slightly and stir more frequently.
Tip: True caramelization takes time. You’re looking for deep amber color and a sweet aroma, not just “softened onions.”
Step 3: Add garlic, deglaze with wine, and scrape up the flavor
Add minced garlic and cook for 1 minute, stirring constantly so it doesn’t scorch.
Pour in the white wine and immediately scrape the bottom of the pot with a wooden spoon to dissolve all the browned bits (that’s flavor). Simmer for 2–3 minutes until the wine reduces slightly and the harsh alcohol smell fades.
Step 4: Build the broth and simmer gently
Add the beef broth, chicken broth, Worcestershire sauce, thyme sprigs (or dried thyme), bay leaf, and black pepper. Increase heat to bring the soup just to a boil, then reduce to a gentle simmer.
Simmer uncovered for 30 minutes to meld flavors. Taste and adjust with more salt if needed. If using sherry vinegar, stir in 1–2 tsp at the end for a subtle lift.
Remove and discard the bay leaf and thyme sprigs (if used).
Step 5: Toast the baguette slices until crisp
While the soup simmers, preheat the oven to 400°F (204°C). Arrange baguette slices in a single layer on a baking sheet.
Toast for 10–12 minutes total, flipping once halfway through, until the slices are dry and crisp (not just lightly warmed). Crisp bread holds up better under the broth and cheese.
Step 6: Set up the crock station to keep everything hot and easy
For a party-friendly station, keep the soup hot in a slow cooker set to LOW (or WARM, depending on your model). Alternatively, keep the pot covered on the stove over the lowest heat setting, stirring occasionally.
Set out:
mini oven-safe crocks (6–8 oz), a ladle, toasted baguette slices, shredded Gruyère, and a sheet pan for broiling. Preheat your broiler to HIGH and position the oven rack about 6 inches from the broiler element.
Step 7: Assemble the mini crocks and broil until bubbling
Place mini crocks on a sturdy rimmed sheet pan. Ladle about 3/4 cup hot soup into each crock (leave a little room at the top).
Top each crock with 1–2 toasted baguette slices (depending on the crock size), then mound on 1/3–1/2 cup shredded Gruyère per crock (be generous; it should fully cover the bread).
Broil on HIGH for 2–4 minutes, watching closely, until the cheese is melted, bubbling, and browned in spots. Rotate the pan if your broiler has hot spots.
Step 8: Serve safely and keep the station flowing
Carefully remove the sheet pan and let crocks rest for 2 minutes (they will be extremely hot). Serve on small plates or saucers to protect hands and surfaces.
For a party, broil in batches of 4–8 mini crocks depending on your oven space. Keep soup hot between batches, and keep extra toasted baguette and Gruyère within easy reach.
Pro Tips
- Don’t rush the onions: The difference between “good” and “unforgettable” French onion soup is usually 15–20 extra minutes of caramelization.
- Use a wide pot: More surface area means faster moisture evaporation and better browning.
- Toast bread thoroughly: Dry, crisp baguette resists turning gummy under the broth.
- Shred your own Gruyère: Pre-shredded cheese often contains anti-caking agents that melt less smoothly.
- Broiler safety: Broil on a sheet pan, keep the oven door closed (if your broiler allows), and don’t walk away—2 minutes can become burned quickly.
Variations
- More complex broth: Replace 1 cup (240 ml) of beef broth with 1 cup (240 ml) mushroom broth for extra savory depth.
- Wine swap: Use 1/2 cup (120 ml) dry sherry instead of white wine for a more traditional, nutty flavor.
- Cheese blend: Replace 4 oz (115 g) of Gruyère with Comté or Swiss for a slightly different melt and flavor.
Storage & Make-Ahead
Refrigerate: Cool soup (without bread/cheese) and store in an airtight container for up to 4 days. Reheat gently on the stove over medium-low heat until steaming hot.
Freeze: Freeze soup (without bread/cheese) for up to 3 months. Thaw overnight in the refrigerator, then reheat.
Make-ahead station plan: Make the soup up to 2 days ahead (it improves as it sits). Toast baguette slices up to 1 day ahead and store airtight at room temperature. Shred Gruyère up to 2 days ahead and refrigerate. Assemble and broil crocks right before serving for the best bubbling-cheese top.
Nutrition (per serving)
Approximate per 1 mini crock (1/8 of recipe, with baguette and Gruyère): 430 calories, 20 g protein, 22 g fat, 34 g carbohydrates, 3 g fiber, 8 g sugar, 980 mg sodium. Values vary by broth brand and cheese amount.
