French onion soup earns its place because the onions don’t just soften — they turn deeply sweet, almost jammy, and build a broth that tastes slow-cooked in the best possible way. The broiled bread and melted Gruyere on top give you that sharp, salty, crackly lid that breaks into the soup with each spoonful. It’s the kind of bowl that feels simple at first glance and then keeps giving you more with every bite.
The key here is patience with the onions. They need low, steady heat long enough for their moisture to cook off and their sugars to deepen, and that’s what separates a thin, sharp soup from one with real body. A dry white wine or sherry lifts the browned bits off the pan and adds brightness, while the beef broth keeps the finished soup grounded and savory. Gruyere matters here because it melts into a stretchy, nutty blanket that mozzarella just can’t match.
Below, I’ve included the exact cues I watch for when the onions are ready, plus a few smart swaps if you need to work with what’s in the pantry.
The onions took longer than I expected, but they turned that deep golden color and the soup tasted like it came from a bistro. The bread stayed on top and the Gruyere browned beautifully under the broiler.
Save this French Onion Soup for the night you want deeply caramelized onions, broiled Gruyere, and a bowl that tastes like it took all afternoon.
The Part Most People Rush: Turning Onions Into the Soup
French onion soup lives or dies on the onions. If they stay pale, the broth tastes flat and sharp; if they brown too fast over high heat, they scorch on the outside before they’ve had time to turn sweet and silky. The goal is not color alone. It’s concentration. You want the onions to lose enough water to collapse into a jammy mass, then keep going until the bottom of the pot starts catching those deep brown fond bits that later dissolve into the broth.
Use a heavy pot and give the onions time. Stir them every 10 to 15 minutes, then more often near the end when the sugars are active and the pan starts to darken quickly. If the pot looks dry before the onions are ready, a splash of water or broth keeps them from scorching, but resist the urge to crank the heat. Slow caramelization builds the kind of sweetness and body you can’t fake later.
What Each Ingredient Is Actually Doing in the Bowl

- Yellow onions — These are the backbone of the soup. They turn soft and sweet without falling apart, which is exactly what you want after a long, slow caramelization. White onions can work in a pinch, but they tend to taste sharper and less rounded.
- Butter and olive oil — Butter gives flavor and helps the onions brown, while olive oil raises the smoke point so the butter doesn’t burn during the long cook. You need both here. All butter can work, but the onions brown more safely with the oil mixed in.
- Dry white wine or sherry — This deglazes the pan and pulls every browned bit into the soup. Sherry brings a slightly deeper, nuttier note; white wine keeps things brighter. Don’t skip this step unless you have to, because it’s where a lot of the savory flavor gets captured.
- Gruyere — This is the cheese that melts into that stretchy, golden cap people expect from French onion soup. It tastes nutty and rich without turning greasy. Swiss cheese can stand in, but the flavor won’t be as full.
- Baguette — Toasting the bread first keeps it from disappearing into the broth. If you use soft bread, it goes soggy fast and the top loses its structure before the cheese finishes browning.
Getting the Onion Base Deep Enough Before You Add the Broth
Start with the fat and salt
Melt the butter with the olive oil in a large heavy pot, then add the sliced onions and salt. The salt pulls moisture out at the start, which helps the onions soften evenly instead of steaming in their own liquid. Keep the heat at medium and give them room to move; if your pot is too small, they’ll pile up and cook unevenly.
Cook until they turn jammy, not just golden
The onions need 60 to 70 minutes to reach the right place. Early on they’ll look wet and bulky, then they’ll shrink, soften, and start taking on color around the edges. By the end, they should look deeply golden and glossy, and you should smell sweetness instead of raw onion bite. If they start sticking too aggressively, lower the heat and scrape the bottom instead of adding more butter.
Deglaze before the broth goes in
Pour in the wine or sherry and scrape the bottom thoroughly while it simmers for a few minutes. Those browned bits are concentrated onion flavor, and they need liquid to dissolve into the soup. If the pan was allowed to blacken, stop there and lift out the burnt pieces; bitter scorch marks will follow you into the finished bowl.
Finish the soup gently
Add the broth, thyme, bay leaf, and Worcestershire sauce, then simmer for about 20 minutes so the flavors come together. This part should never boil hard. A quiet simmer keeps the broth clear and prevents the onions from breaking down into mush. Taste at the end and season with salt and pepper only after the cheese and bread are accounted for, because they add plenty of salt on their own.
Broil the topping until it bubbles at the edges
Ladle the soup into oven-safe crocks, float the toasted baguette on top, then pile on the Gruyere and parmesan. Broil just until the cheese melts and the top turns blistered and browned in spots. Walk away from the oven for even a minute too long and the cheese can go from bubbling to bitter. You want the crust on top to look mottled and deeply golden, with the soup still visible around the edges.
Ways to Make It Lighter, Heartier, or Pantry-Friendly
Dairy-Free Version
Use olive oil instead of the butter and choose a dairy-free meltable cheese for the top, knowing it won’t brown quite like Gruyere. The soup itself still gets deep flavor from the onions, wine, and broth, but the finished bowl will be a little less rich and less stretchy on top.
Gluten-Free Bowl
Swap in a sturdy gluten-free baguette or even thick toasted slices of gluten-free country bread. The key is to toast it well enough that it can sit on the soup without dissolving before the cheese finishes broiling.
Make It a Richer Main Dish
Add a splash more broth reduction time if you want a deeper, more concentrated bowl. You can also use a mix of Gruyere and parmesan exactly as written, since the parmesan sharpens the top and keeps the cheese layer from tasting flat.
Storage and Reheating
- Refrigerator: The soup base keeps for 4 days. Store the broth and onions separately from the bread and cheese if you want the best texture.
- Freezer: The soup base freezes well for up to 3 months. Freeze before adding the bread and cheese, since those need to be fresh for the best finish.
- Reheating: Warm the soup gently on the stove until steaming, then assemble and broil just before serving. Don’t reheat it hard in the oven with the topping already on, or the bread turns soggy and the cheese tightens instead of melting cleanly.
Questions I Get Asked About This Recipe

French Onion Soup
Ingredients
Equipment
Method
- Melt the butter with the olive oil in a large heavy pot over medium heat, then add the onions and 1/2 teaspoon salt. Stir to coat and distribute the salt evenly.
- Cook the onions for 60-70 minutes over medium heat, stirring every 10-15 minutes, until deeply golden, jammy, and caramelized. Use the frequent stirring to prevent scorching and build a deep brown color.
- Deglaze with the wine (or sherry) and cook for 3 minutes, scraping up all browned bits from the pot. Reduce slightly so the raw wine taste cooks off.
- Add the beef broth, thyme, bay leaf, and Worcestershire sauce, then simmer for 20 minutes. Skim lightly if needed and keep a gentle simmer.
- Remove the thyme and bay leaf, then season the soup with salt and pepper to taste. Taste after removing the aromatics and adjust before serving.
- Ladle the hot soup into oven-safe crocks, then float the toasted baguette slices on top. Make sure the bread sits in contact with the broth for soft edges.
- Pile the Gruyère and parmesan over the bread, then broil for 3-4 minutes until melted and bubbly. Look for a golden-brown, blistered cheese surface before serving.


