French onion soup is the dish that taught me what patience tastes like. The first time I made it, I cranked the heat to hurry the onions along, and they went from pale and raw to dark and bitter in what felt like minutes.
The second time, I left them alone over medium-low heat, stirred every few minutes, and about 50 minutes later they were jammy, golden, and sweet in a way that no shortcut could have produced.
That’s the whole secret. The soup is four things: deeply caramelized onions, a good beef broth, a splash of dry sherry, and Gruyère melted over toasted baguette. When the onions are right, everything else falls into place. When they’re rushed, no amount of cheese can save the bowl.
This version is the classic soupe à l’oignon gratinée — the one you get in a bistro, the one with a cheese cap that pulls away in strands when you lift your spoon. It takes about an hour and a half start to finish, most of which is hands-off onion time, and it serves four generously.
Why This Recipe Works

French onion soup goes wrong in three specific ways: pale onions, thin broth, and a soggy topping. Here’s how this version solves each one.
1. Low, Slow, Uncovered Caramelization
The onions go into butter over medium heat for 10 minutes to soften and release their moisture, then the heat drops to medium-low and they cook uncovered for 40 to 55 minutes. Uncovered is the key — the moisture has to escape before the onions can brown. The deep golden-mahogany color comes from the onions’ own sugars caramelizing, not from added sugar. Stirring every 5 to 8 minutes keeps them from sticking, and a splash of water scrapes up the fond whenever a dark layer starts to form.
2. Deglaze Twice — Once with Water, Once with Sherry
The first deglaze is water, used whenever the bottom of the pot starts to brown before the onions are ready. The second is dry sherry, poured in after the garlic and flour. That second deglaze does two things: it lifts the deeply browned bits into the broth, and the sherry’s acidity balances the onions’ sweetness. Dry sherry, not sweet cooking sherry — the sweet kind pushes the soup into cloying territory.
3. Toast the Bread Before It Ever Touches the Soup
Untoasted baguette soaks up broth and turns to mush before the cheese has a chance to melt. A 6-to-8-minute toast at 400°F dries the bread out so it holds its structure under the hot soup and the broiler. Then the whole thing goes under the broiler for 2 to 4 minutes, until the Gruyère is bubbling and lightly browned. Freshly grated Gruyère melts more smoothly than pre-shredded — the anti-caking agents in packaged cheese keep it from forming that classic pull.
Ingredients That Matter

Yellow onions. Two pounds, peeled, halved, and thinly sliced. Yellow onions have the right sugar content for caramelizing — sweet onions caramelize too fast and turn cloying, while red onions turn an unappetizing color. Slice them thin and evenly so they cook at the same rate.
Unsalted butter. Four tablespoons. The butter is the fat the onions cook in, and unsalted gives you control over the final salt level. Salted butter plus the broth and cheese can push the soup over the edge.
Dry sherry. A quarter cup. Dry sherry is what gives the soup its depth and its gentle acidity. Dry white wine works as a substitute, and extra beef broth works if you’d rather not cook with alcohol — but the soup will be slightly less complex without it.
Low-sodium beef broth. Six cups. The broth is most of the soup, so it needs to taste like something. Low-sodium lets you salt to taste at the end instead of guessing. A good beef stock makes a noticeably better bowl than a thin broth.
Fresh thyme. A teaspoon of leaves, or half a teaspoon dried. Thyme is the classic herb for this soup — it echoes the earthiness of the beef broth and the sweetness of the onions. Fresh is better if you have it.
Gruyère cheese. Two cups freshly grated, about 8 ounces. Gruyère is the classic choice because it melts smoothly and has a nutty, savory flavor that stands up to the soup. Swiss cheese is a fine substitute, and a blend of the two works well.
A thick baguette. Four slices. Thick slices hold up better under the broth and cheese than thin ones. Day-old baguette is actually ideal — it’s drier and toasts better.
How to Make Classic French Onion Soup

(See the recipe card below — the steps are identical and the card is the single source of truth.)
Tips and Troubleshooting
The onions aren’t caramelizing. They’re releasing moisture, or the heat is too low, or the pot is crowded. Keep them uncovered, raise the heat slightly if they’re barely sizzling, and don’t crowd the pot — a wide Dutch oven gives them room to brown.
The onions are burning instead of browning. The heat is too high, or they’re not being stirred often enough. Drop the heat to medium-low, stir every 5 minutes, and add a splash of water whenever a dark layer forms on the bottom.
The onions taste bitter. They went past golden into burnt territory. Burnt onions can’t be fixed — start over with lower heat and more frequent stirring. The target color is deep golden-mahogany, not black.
The soup tastes too sweet. The onions were cooked too long, or sweet sherry was used instead of dry. Balance with a splash of dry sherry, a little Worcestershire, or a pinch of salt.
The soup tastes thin or flat. The broth is too weak, or the soup wasn’t seasoned enough at the end. Use a good beef stock, taste before serving, and add salt gradually — the cheese will add more.
The topping is soggy. The bread wasn’t toasted, or the soup wasn’t hot enough when assembled. Toast the baguette until dry on both sides, and ladle the soup hot before adding the bread and cheese.
The cheese isn’t browning. The broiler wasn’t preheated, or the bowls were too far from the element. Preheat the broiler for 5 minutes and place the bowls on a rack close to the element, watching closely.
The bowls are dangerously hot. They will be — that’s the nature of broiler-safe bowls. Rest them 2 minutes on a heatproof surface before serving, and warn your guests.
Substitutions and Swaps
Dry sherry → dry white wine or extra broth. Use the same quantity of dry white wine, or ¼ cup extra beef broth if you’d rather skip alcohol. The broth version is slightly less complex but still good.
Gruyère → Swiss, Comté, or a blend. Swiss is the closest easy substitute. Comté is a step up in flavor if you can find it. A Gruyère-Swiss blend is classic.
Yellow onions → sweet or white onions. Sweet onions caramelize faster and taste sweeter — reduce the cooking time slightly. White onions work but are sharper.
Beef broth → vegetable broth. For a vegetarian version, use a good vegetable broth and add an extra splash of soy sauce or tamari for depth. The flavor will be lighter but still good.
All-purpose flour → cornstarch or skip it. The flour is optional and just gives the broth a slightly fuller body. If you skip it, the soup is a touch thinner but still correct. Cornstarch (1 teaspoon mixed with water) works as a gluten-free substitute.
No broiler-safe bowls? Toast the baguette, top with cheese, and broil on a baking sheet until melted. Slide the finished cheese toast onto each bowl of soup just before serving.
Storage and Reheat
Refrigerate the soup base without bread or cheese in an airtight container for 3 to 4 days. Refrigerate within 2 hours of cooking.
Freeze the soup base without bread or cheese for up to 3 months. Cool it promptly before transferring to freezer-safe containers, and leave a little headroom for expansion.
Reheat gently in a saucepan over medium-low heat until steaming hot. Prepare fresh toasted baguette and cheese when you’re ready to serve — the topping doesn’t hold up to reheating.
Food safety: store leftovers within 2 hours of cooking. Reheat to 165°F before serving. Discard anything left at room temperature longer than 2 hours.
Classic French Onion Soup (Soupe à l'Oignon Gratinée)
Rich, deeply caramelized onions simmered in savory beef broth with garlic, thyme, and dry sherry — topped with toasted baguette and melted Gruyère for a cozy, restaurant-style bowl.
Ingredients
For the Soup
- 4 tablespoons unsalted butter
- 2 pounds yellow onions, peeled, halved, and thinly sliced
- 3 garlic cloves, minced
- ¼ cup dry sherry
- 1–2 tablespoons water, as needed for deglazing
- 6 cups low-sodium beef broth
- 1 tablespoon all-purpose flour (optional, for a slightly fuller broth)
- ½ teaspoon Worcestershire sauce
- 1 bay leaf
- 1 teaspoon fresh thyme leaves, or ½ teaspoon dried thyme
- ½ teaspoon freshly ground black pepper
- Salt, to taste
For the Topping
- 4 thick slices French baguette
- 2 cups freshly grated Gruyère cheese (about 8 ounces)
Instructions
- Caramelize the Onions: Melt the butter in a large heavy-bottomed Dutch oven or soup pot over medium heat. Add the sliced onions and stir to coat evenly in the butter. Cook about 10 minutes, stirring occasionally, until the onions soften and release their moisture. Reduce the heat to medium-low and cook uncovered 40 to 55 minutes, stirring every 5 to 8 minutes. Scrape the bottom of the pot regularly; if a dark layer forms before the onions are ready, add 1 to 2 tablespoons of water and scrape it up, letting the water evaporate before continuing. The onions are ready when very soft, reduced in volume, and deep golden-brown to mahogany — jammy, not black or burnt.
- Add the Garlic and Sherry: Stir in the minced garlic and cook about 30 seconds, just until fragrant. If using flour, sprinkle it evenly over the onions and stir about 1 minute to cook out the raw flour taste. Pour in the dry sherry, scraping the bottom of the pot to release any remaining browned bits. Simmer 2 to 3 minutes to cook off some of the alcohol.
- Simmer the Soup: Pour in the beef broth and add the Worcestershire sauce, bay leaf, thyme, and black pepper. Stir to combine. Bring to a gentle boil, then reduce the heat and simmer uncovered 20 minutes — gentle bubbles, not a rolling boil. Remove the bay leaf, taste, and add salt as needed.
- Toast the Baguette: While the soup simmers, preheat the oven to 400°F. Arrange the baguette slices in a single layer on a baking sheet and toast 6 to 8 minutes, turning once, until lightly golden and dry on both sides.
- Assemble and Broil: Preheat the broiler. Ladle the hot soup into four broiler-safe ovenproof bowls, leaving room at the top for the bread and cheese. Place one toasted baguette slice on top of each bowl and cover generously with grated Gruyère, letting some cheese reach the edges of the bread. Place the bowls on a sturdy baking sheet and broil 2 to 4 minutes, watching closely, until the cheese is melted, bubbling, and lightly browned.
- Rest and Serve: Carefully remove the bowls from the oven and let them rest about 2 minutes before serving. The bowls will be extremely hot.
Notes
Notes
The onions are the whole recipe — don't rush them.
Deep golden-mahogany and jammy is the target; black is burnt and can't be fixed. Dry sherry, not sweet cooking sherry. Grate the Gruyère yourself for the smoothest melt. Toast the baguette until dry on both sides so it holds up under the soup.
The soup base keeps 3 to 4 days refrigerated and freezes up to 3 months — but always add fresh bread and cheese at serving, never reheat the topping. Nutrition is an estimate and varies by broth brand and cheese.
Estimated per serving: 520 calories · 22g protein · 38g carbs · 30g fat · 3g fiber · 890mg sodium
FAQS
Why are my onions not caramelizing?
Onions release a lot of moisture before they begin browning. Keep cooking them uncovered over medium-low heat, stirring regularly. If they’re sticking too much, add a small splash of water and scrape up the browned bits. A crowded or thin-bottomed pan can also slow the process.
Can I make French onion soup without sherry?
Yes. Dry white wine is a good substitute. You can also use extra beef broth if you prefer not to cook with wine, though the soup will have a slightly less complex flavor.
What cheese is best for French onion soup?
Gruyère is the classic choice because it melts smoothly and has a rich, nutty flavor. Swiss cheese is a good alternative, and a combination of the two works well.
Can I make French onion soup ahead of time?
Yes. The soup base can be prepared up to 3 to 4 days ahead and refrigerated. Reheat it on the stovetop, then add freshly toasted baguette and cheese just before serving.
Why is my French onion soup too sweet?
The natural sweetness of the onions becomes more concentrated as they cook. Use yellow onions, avoid adding sugar, and balance the flavor with dry sherry and a savory beef broth. Make sure the broth is well-seasoned before serving.
Do I need oven-safe bowls?
Yes, if you plan to broil the assembled soup. Use bowls specifically labeled oven-safe and suitable for broiling. If you don’t have them, melt the cheese over the bread on a baking sheet and place the finished cheesy toast on top of each bowl of soup instead.
Can I make this vegetarian?
Yes. Use a good vegetable broth instead of beef broth and add an extra splash of soy sauce or tamari for depth. Skip the Worcestershire or use a vegetarian version. The soup will be lighter but still satisfying.
How long do leftovers last?
The soup base keeps 3 to 4 days in the refrigerator or up to 3 months in the freezer, without the bread and cheese. Always add fresh toasted bread and cheese at serving — the topping doesn’t reheat well.
More Homemade Soup Recipes You’ll Love

French Onion Soup Recipe Crockpot — 22–38g Protein, Cheesy & Hands-Off
Classic Loaded Potato Soup With Crisp Bacon and Sharp Cheddar
Garden Vegetable Soup With Potatoes, Green Beans, and Zucchini
Closing
I’ve made this French onion soup more times than I can count, and the thing that changed everything for me was learning to leave the onions alone.
The first batch I made, I stood over the pot stirring constantly and cranking the heat, and they went bitter.
The second batch, I set a timer for every 6 minutes, walked away between stirs, and let the pot do the work. That’s the version I make now, and it’s the step I’d fight you over.
If you make it with Comté or add a splash of white wine instead of sherry, let me know how it turns out in the comments.