The onions start out piled high in the Dutch oven, and for a while it can seem like they’ll never fit in the soup pot. Give them time: they soften, shrink, and turn deeply golden, building the rich, sweet base that makes French onion soup with Gruyère cheese worth the slow start. Stirring often keeps the onions cooking evenly and stops the browned bits from turning bitter.
I keep this soup brothy rather than thick, then let toasted baguette and bubbling Gruyère bring the richness right at the end. The wine loosens the flavorful bits on the bottom of the pot, while thyme and bay leaf round out the beef broth. Each crock gets its own crisp-edged, cheesy top, with a savory spoonful of onions underneath.

Kitchen Note
Let the filled crocks rest for five minutes after broiling. The cheese stays hot, and the pause makes it easier to carry the bowls to the table without rushing.
Save this French onion soup with its deeply caramelized onions and bubbling Gruyère top for a night when a slow-cooked pot is worth the wait.
Why This Soup Should Stay Brothy, Not Thick
French onion soup gets its body from the onions and the cheese-topped bread, not from flour or cream. The broth should still move easily around the spoon. Once the onions have cooked down and the beef broth has simmered with them, each mouthful tastes full without turning into a gravy-like stew.
That contrast matters in the finished bowl. A generous layer of Gruyère melts over the baguette and gives you a rich, savory bite, while the soup below stays clear enough to soak into the toast. Thickening the pot would make the bread feel heavy and blur the sweetness of the onions. I keep the broth simple and let the topping provide the indulgent part. If your onions are properly golden and your broth tastes well-seasoned, you don’t need a thickener to make the soup feel satisfying.
The Ingredients That Give This Soup Its Onion-First, Broiled Finish

- Yellow onions — They soften into the soup’s sweet, savory foundation, so slice them thinly and as evenly as you can. Yellow onions are the right fit here; a different onion changes the balance, and there isn’t another onion in this ingredient list that gives the same result. Standard grocery-store onions work well, so there’s no need to seek out a specialty variety.
- Butter and olive oil — Butter brings a round, savory quality, while the olive oil shares the work during the long onion cook. Keep both in the listed proportions; the olive oil in this recipe isn’t enough to replace all the butter without changing the fat balance. Unsalted butter also lets the soup’s seasoning stay in your hands.
- Dry white wine — The wine does more than add a little acidity: it loosens the browned onion bits from the bottom of the pot. If you need to leave it out, replace it with an equal volume of the listed low-sodium beef broth and scrape the pot as usual; the soup will be less bright, but you’ll still have liquid to deglaze.
- Low-sodium beef broth — A dependable store-brand broth is fine, and the low-sodium choice leaves room for the onions and Gruyère to contribute their own savory character. The beef base gives the soup its familiar depth; changing to a different kind of broth will change that foundation.
- Fresh thyme and bay leaf — Together they give the broth a gentle herbal note without competing with the onions. Fresh thyme leaves bring a brighter taste than dried thyme, and the bay leaf should come out before the soup goes into the crocks.
- Baguette and Gruyère — A sliced baguette gives each crock a crisp surface that can support the cheese. Gruyère melts into a smooth, bubbling layer with a distinctive nutty taste; freshly shredded cheese melts especially evenly. There isn’t another cheese in the ingredient list to substitute without changing the topping.
From Deep-Gold Onions to a Bubbling Gruyère Lid
Cook the Onions Until Their Color Deepens
Melt the butter and olive oil in a 6-quart Dutch oven over medium heat. Add the sliced onions and kosher salt, then reduce the heat to medium-low and cook uncovered for 45 to 60 minutes, stirring often. The onions will soften and shrink before they turn deeply golden and caramelized. If you see dark spots developing on the bottom before the onions are ready, stir more often and keep the heat at medium-low.
Release the Browned Bits With Wine
Stir in the minced garlic and fresh thyme, then cook for 1 minute, until fragrant. Pour in the dry white wine and scrape the bottom of the Dutch oven so the browned onion bits loosen into the liquid. Let the wine simmer for 3 to 5 minutes; the sharp alcohol smell should ease as it cooks. Scraping thoroughly matters here, since those browned bits belong in the soup, not stuck to the pot.
Simmer the Broth Until the Flavors Meet
Add the beef broth, bay leaf, and black pepper, then bring the pot to a boil. Reduce the heat and simmer uncovered for 25 minutes. The soup should bubble gently rather than boil hard, which keeps the broth from reducing too quickly. Remove the bay leaf before you portion the soup.
Toast the Baguette and Broil the Crocks
Heat the oven to 400°F and arrange the baguette slices in a single layer on a baking sheet. Bake for 8 to 10 minutes, turning them once halfway through, until crisp and lightly golden. Set an oven rack about 6 inches below the broiler and heat the broiler to high; divide the soup among six 16-ounce ovenproof crocks on a rimmed baking sheet. Top each with 1 to 2 toasted baguette slices and an even layer of shredded Gruyère, then broil for 2 to 4 minutes, watching closely for melted cheese with bubbling, browned spots.
Two Ways to Change the Broiled Bowl Without Losing the Soup’s Character
A Gluten-Free Bowl Without the Baguette
Leave off the baguette and use low-sodium beef broth that is certified gluten-free. The soup and Gruyère still make a satisfying bowl, though you’ll miss the crisp bread under the cheese; this version is best served without trying to make the cheese form a crust over the broth.
A No-Broiler, Toast-on-the-Side Version
Serve the crisp baguette slices and shredded Gruyère separately beside the bowls instead of broiling them on top. You keep the same ingredients and can add bread and cheese as you eat, but you won’t get the melted, browned cheese lid. This is a useful format when you don’t have ovenproof crocks.
Storage and Reheating
- Refrigerator: Store the soup separately from the baguette and cheese in a covered container for 3 to 4 days. The bread softens if it sits in the broth.
- Freezer: Freeze the soup without the bread or cheese for up to 3 months. Thaw it in the refrigerator before reheating; add freshly toasted baguette and Gruyère when you’re ready to serve.
- Reheating: Warm the soup gently in a saucepan over medium-low heat, stirring occasionally, until hot throughout. Don’t reheat an assembled crock, since the bread turns soggy before the soup warms evenly.
Questions That Come Up Before the Broiler Goes On

French Onion Soup with Gruyère Cheese
Ingredients
Equipment
Method
- Melt the butter and olive oil in a 6-quart Dutch oven over medium heat.
- Add the onions and salt, reduce the heat to medium-low, and cook uncovered for 45-60 minutes, stirring often, until deeply golden and caramelized.
- Stir in the garlic and thyme and cook for 1 minute, until fragrant.
- Pour in the wine, scraping up browned bits from the pot, and simmer for 3-5 minutes.
- Add the broth, bay leaf, and black pepper, and bring to a boil.
- Reduce the heat and simmer uncovered for 25 minutes.
- Remove the bay leaf.
- Heat the oven to 400°F.
- Arrange the baguette slices in a single layer on a baking sheet and bake for 8-10 minutes, turning once halfway through, until crisp and lightly golden.
- Set an oven rack about 6 inches below the broiler and heat the broiler to high.
- Divide the soup among six 16-ounce ovenproof crocks set on a rimmed baking sheet.
- Top each crock with 1-2 toasted baguette slices and an even layer of Gruyère.
- Broil for 2-4 minutes, watching closely, until the cheese is melted and bubbling with browned spots.
- Let the crocks rest for 5 minutes before serving.