Rich, Caramelized French Onion Soup with Gruyère Toasts
Classic French onion soup is one of those dishes that turns a humble onion into something spectacular. This version layers sweet, slow-cooked onions in a beefy broth, then finishes each bowl under the broiler with a crusty bread raft and bubbling Gruyère.

It tastes like you spent all day on it, but the active time is less than an hour. The secret is patience with the onions, and the reward is a soup that’s both rich and comforting with that iconic cheesy top.
What Makes This Soup So Satisfying
The onions cook for almost an hour until they’re deeply browned and almost jammy. That caramelized sweetness balances the savory broth and nutty cheese in every spoonful. Each bite breaks through a cheesy crust into a dark, savory soup, with the bread soaking up all that flavor.
I keep coming back to this recipe because it doesn’t rely on fancy ingredients. Just good technique and a little time. It’s the kind of soup that makes dinner feel like an occasion.
Ingredients

- 4 large yellow onions (about 2 lb): thinly sliced, they cook down into silky, sweet strands.
- 3 tbsp unsalted butter: adds richness and helps the browning.
- 1 tbsp olive oil: prevents the butter from burning.
- 1 tsp granulated sugar (optional): gives the onions a head start on that deep color.
- 1/2 cup dry white wine or dry vermouth: for deglazing and acidity.
- 6 cups good beef stock: the better the stock, the better the soup.
- 2 sprigs fresh thyme: plus more for garnish if you like.
- 1 bay leaf
- Salt and freshly ground black pepper
- 8 slices baguette (about 1/2 inch thick): day-old bread works best.
- 1 1/2 cups grated Gruyère cheese: use the real stuff for that classic nutty melt.
Variations / Substitutions
- Swap the onions: red onions or sweet onions work, but the flavor will be milder and the color less dark.
- Skip the wine: use 1/2 cup of the beef stock plus 1 tsp sherry vinegar to add the acidity.
- Change the cheese: Comté, Emmental, or even a sharp Swiss can stand in for Gruyère.
- Vegetarian version: use a rich mushroom stock in place of beef stock and add a dash of soy sauce for depth.
- Add a touch of brandy: a splash of brandy or cognac along with the wine adds a classic French note.
If you’re in the mood for another cozy soup, try our potato leek soup.
How to Make Rich, Caramelized French Onion Soup
Step 1: Caramelize the Onions

Melt the 3 tbsp butter and 1 tbsp olive oil in a large, heavy pot or Dutch oven over medium heat. Add the 4 sliced onions, 1 tsp sugar (if using), and 1 tsp salt. Stir to coat everything evenly. Cook, stirring every 5 to 10 minutes, for 45 to 50 minutes.
The onions will release water, turn translucent, then slowly start to color. Keep the heat at medium-low once they begin browning. If the onions stick too much, add a splash of water and scrape up the browned bits with a wooden spoon. Those bits add incredible flavor.
Don’t rush this step. High heat will burn the sugar and give you bitter onions. Let them take their time, and you’ll be rewarded with a deep mahogany color and a sweet, savory base.
Step 2: Deglaze with Wine

Pour in the 1/2 cup dry white wine, using a wooden spoon to scrape up every bit of browned fond from the bottom of the pot. Let the wine bubble and reduce until it’s nearly evaporated and smells slightly sweet, about 2 minutes.
This step lifts all the caramelized flavor from the pot and adds a bright note that cuts through the richness.
If you’re skipping the wine, add 1/2 cup of the beef stock now along with 1 tsp sherry vinegar and let it reduce by half.
Step 3: Simmer the Broth

Add the 6 cups beef stock, 2 sprigs thyme, and the bay leaf. Bring to a gentle simmer over medium heat, then reduce the heat to low. Partially cover and let it cook for 20 minutes.
The kitchen will be filled with a rich, savory aroma by now. Taste the broth and adjust salt and pepper. It should be deeply onion-y and balanced. Remove the thyme stems and bay leaf before ladling.
Step 4: Toast the Baguette Slices

Preheat the oven to 400°F (200°C). Arrange the 8 baguette slices on a baking sheet and brush lightly with olive oil on both sides. Bake for 6 to 8 minutes, until the edges are crisp and just starting to turn golden.
Toasting the bread keeps it from turning to mush once it hits the hot broth. You can also rub the bread with a cut garlic clove for a subtle garlic kick.
Step 5: Broil the Soup with Cheese

Ladle the soup into 4 oven-safe bowls, filling each about three-quarters full. Float a toasted bread slice (or two, depending on bowl size) on top of each, and pile the 1 1/2 cups grated Gruyère evenly over the bread. Set the bowls on a sturdy baking sheet and slide under the broiler for 2 to 4 minutes, until the cheese is bubbling and deeply browned in spots.
Watch it carefully, as broilers can burn cheese in seconds. Serve the bowls hot, with a spoon that cracks through that cheesy crust into the savory soup below. Be careful, the bowls will be extremely hot.
Tips for the Best French Onion Soup
- Slice the onions evenly: consistent thickness means they cook at the same rate. A mandoline makes quick work of it.
- Use a wide pot: a large surface area lets moisture evaporate instead of steaming the onions.
- Make it ahead: the soup base (without bread and cheese) tastes even better the next day. Just reheat, toast the bread, and broil.
- Cheese melting shortcut: if you don’t have oven-safe bowls, broil the cheese onto the toasts on a baking sheet, then float them in the soup.
To serve a larger group, simply double the recipe. Here’s how the ingredients scale:
| Ingredient | For 4 servings | For 8 servings |
|---|---|---|
| Yellow onions | 4 large (2 lb) | 8 large (4 lb) |
| Unsalted butter | 3 tbsp | 6 tbsp |
| Olive oil | 1 tbsp | 2 tbsp |
| Dry white wine | 1/2 cup | 1 cup |
| Beef stock | 6 cups | 12 cups |
| Baguette slices | 8 slices | 16 slices |
| Grated Gruyère | 1 1/2 cups | 3 cups |
The caramelizing time will increase slightly with more onions, so plan for about an extra 15 minutes of stirring.
Storing and Reheating Leftovers
- Refrigerate: Store the soup base (without bread and cheese) in an airtight container for up to 4 days. Reheat gently on the stovetop.
- Freeze: The soup base freezes well for up to 3 months. Thaw overnight in the fridge, then reheat.
- Reheating: Bring the soup to a simmer, then proceed with toasting the bread and broiling the cheese, or just serve with the broiled toasts if you already made them.
What to Serve with This Soup
A simple green salad with a sharp Dijon vinaigrette cuts through the richness nicely. For drinks, a crisp dry white wine like Sauvignon Blanc or a light lager works beautifully alongside the melted cheese and savory broth.
Frequently Asked Questions
Can I make this soup gluten-free?
Yes. Use a gluten-free baguette or skip the bread entirely and just broil cheese on top. The soup itself is naturally gluten-free as long as your stock is gluten-free.
How do I get a thick cheese layer without it sliding off?
Grate the cheese finely and pile it evenly over the bread, covering the edges slightly. The cheese will melt into a cohesive cap. If it still slides, let the bowls rest for 30 seconds after broiling; the cheese sets a bit.
Why did my onions burn instead of caramelize?
High heat or not enough fat. Keep the heat at medium-low once the onions start browning and stir more often. Adding a splash of water when they look dry can also help.
Can I add brandy or cognac?
Absolutely. A splash (1 to 2 tbsp) of brandy or cognac added with the wine boosts the classic Parisian flavor. It’s a lovely option if you have it on hand.

Rich, Caramelized French Onion Soup with Gruyère Toasts Recipe
Ingredients
Method
- In a large heavy pot over medium heat, melt 3 tbsp butter and 1 tbsp oil. Add 4 sliced onions, 1 tsp sugar (if using), and 1 tsp salt. Cook, stirring every 5–10 minutes, until deeply browned and reduced, 45–50 minutes.
- Pour in 1/2 cup wine, scrape up browned bits, and cook until nearly evaporated, about 2 minutes.
- Add 6 cups stock, 2 thyme sprigs, and bay leaf. Simmer partially covered for 20 minutes. Discard thyme and bay, and season with salt and pepper.
- Preheat oven to 400°F (200°C). Brush 8 baguette slices with olive oil and bake until crisp, 6–8 minutes.
- Ladle soup into 4 oven-safe bowls. Top each with 1–2 toasts and pile 1 1/2 cups Gruyère evenly over the tops. Broil 2–4 minutes until bubbling and browned. Serve hot.
