Soups & Stews
This 99 French onion soup recipe delivers the restaurant-quality experience you crave—layers of caramelized onions, rich beef broth, and perfectly toasted bread crowned with melted Gruyère. The secret lies in slow-cooking onions until they're deep golden and sweet, creating a velvety base that forms the soul of every spoonful.
I've perfected this technique over years of testing, ensuring the bread stays crispy while the cheese melts into a gooey blanket.
The process begins with slow caramelization—cooking onions for nearly 99 minutes until they're tender, sweet, and jam-like. This transforms simple onions into the flavor foundation that makes French onion soup unforgettable.
The beef broth simmers alongside, absorbing all those caramelized flavors, while the bread toasts to golden perfection before being topped with cheese that melts into a luxurious finish.
What you'll end up with is a bowl of soup where every element works in harmony—crispy bread crowns that contrast beautifully with the creamy, cheesy topping, all resting on a bed of rich, caramelized onion broth.
The aroma alone will have everyone gathering around the table, and the first bite delivers that perfect balance of textures and flavors that defines this classic dish.
This recipe serves 4-6 people and comes together in about 2 hours, with most of that time being hands-off caramelization. The result is a comforting, restaurant-worthy meal that's perfect for chilly evenings or special gatherings. Let's create this timeless classic together.
Ingredients for 99 french onion soup
Six pounds of onions transform into velvety caramelized perfection—this is where French onion soup magic begins.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 6 lb | Yellow or sweet onions, thinly sliced |
| Unsalted Butter 🧈 | 1 ½ cups | Cold, cubed for even melting |
| Beef Broth 💧 | 8 cups | Homemade or premium store-bought |
| Dry White Wine 🍷 | 1 cup | Bold variety like Chardonnay |
| Gruyère Cheese 🧀 | 2 cups | Freshly grated, high-quality |
| Baguette 🍞 | 1 whole | Crusty, day-old preferred |
| Olive Oil 🫒 | ¼ cup | For bread toasting |
| Garlic Cloves 🧄 | 6 cloves | Minced for depth of flavor |
| Thyme 🌿 | 1 tbsp | Fresh, finely chopped |
| Bay Leaves 🍃 | 2 whole | For aromatic depth |
| Salt 🧂 | 2 tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | 1 tsp | Freshly cracked |
| All-Purpose Flour 🌾 | ½ cup | For thickening broth |
The onions are non-negotiable—yellow or sweet varieties work best, and 6 pounds ensures deep, jam-like caramelization. Whole Foods or Trader Joe's carry the sweetest options, but any grocery store's yellow onions will do if they're fresh (no rubbery or sprouting bulbs). Thinly slice them—a sharp mandoline speeds this up dramatically, but a knife works too. For the butter, European-style unsalted (like Plugrá) melts more smoothly than American brands, though regular unsalted butter works fine. The Gruyère? Imported, not pre-shredded—the difference in melt and flavor is worth the extra effort to grate it yourself.
No white wine? Dry vermouth or extra beef broth works in a pinch, though the acidity helps balance the sweetness. Fresh thyme is ideal, but dried at one-third the amount suffices if you're in a hurry. The baguette should be crusty and day-old—fresh bread gets soggy. Can't find a good baguette? Sourdough or Italian bread toasts beautifully too. For the broth, homemade is ideal, but Swanson or Pacific Foods brands are reliable shortcuts. The flour is just for thickening—all-purpose works, but Wondra instantized cornstarch dissolves faster if you're short on time.
Caramelized onions keep for 5 days in the fridge, covered tightly—freeze for 3 months if making ahead. The broth can be prepped a day early and reheated gently. For the bread crowns, toast them fresh before serving—they lose crispness fast. Store any leftover cheese in an airtight container for 2 weeks in the fridge. The full soup reheats beautifully—simmer gently for 10 minutes to avoid breaking the bread crowns.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s all in one pot—no chopping chaos, no extra bowls. Just caramelize those onions with butter until they’re sweet and golden, then let the broth and wine do the rest. Honestly, the hardest part is waiting for the cheese to melt.
- Caramelized Bliss: That slow cook of onions in butter? Chef’s kiss. The deeper they brown, the richer the flavor—like liquid gold. Add a splash of wine, and suddenly you’ve got depth without the fuss. Gruyère on top? The melty, salty perfection I’ll never skip.
- Weeknight Hero: Between us, this is my go-to when I’m too tired to think. Toss in pre-chopped onions (or buy them frozen—no judgment), simmer while you prep something else, and boom: dinner’s ready. Even my picky eaters ask for seconds.
- Budget & Leftovers: Beef broth and onions stretch this into a crowd-pleaser without breaking the bank. Make a double batch—leftover soup reheats beautifully, and the extra cheese topping turns it into a grilled cheese the next day. (Yes, even on a Tuesday night.)
Step-by-step instructions for 99 French onion soup
Master the art of caramelization and crispy bread topping with this method.
Caramelize the Onions Slowly
Melt the 1.5 cups unsalted butter in a large Dutch oven over medium-low heat. Add the 6 lb yellow onions in a single layer, ensuring they're evenly distributed. The key to perfect caramelization is patience—cook for 45-60 minutes, stirring occasionally, until the onions transform from translucent to deep amber with a rich, sweet aroma.
Real talk: This is where the magic happens. If you rush, you'll end up with bitter onions instead of velvety caramel. When the onions are nearly done, add the 6 cloves minced garlic and cook for another 2 minutes until fragrant. Remove from heat and set aside—we'll return to these later.
Build the Rich Broth Base
Return the Dutch oven to medium heat and add the 0.5 cup all-purpose flour, stirring constantly for 2 minutes to cook off the raw flour taste. Gradually whisk in the 8 cups beef broth and 1 cup dry white wine, scraping up any browned bits from the bottom of the pot. This step ensures maximum flavor extraction.
Add the 2 whole bay leaves, 1 tbsp thyme, 2 tsp salt, and 1 tsp black pepper. Bring the mixture to a gentle simmer and cook for 15-20 minutes until thickened. The broth should coat the back of a spoon—this is your velvety foundation. If it's too thin, simmer longer; if too thick, whisk in a splash of water.
Combine and Season
Return the caramelized onions to the pot and stir to combine. The onions should melt into the broth, creating a luscious, onion-infused sauce. Taste and adjust seasoning—you might need a pinch more salt to balance the sweetness. Keep the soup warm over low heat while you prepare the bread topping.
This is the moment that matters: The soup should be rich, sweet, and deeply aromatic. If it tastes underseasoned, add a splash more wine or a pinch of sugar to enhance the caramel notes. The bread topping will add another layer of flavor, so don't overdo it here.
Prepare the Crispy Bread Crowns
Preheat your oven to 375°F. Slice the 1 whole baguette into ½-inch thick rounds. Brush each slice generously with the 0.25 cup olive oil and toast in the oven for 5-7 minutes until golden and crisp. The bread should be firm to the touch—this ensures it won't get soggy when melted cheese is added.
Here's the thing—don't skip the toasting step. Raw bread absorbs the soup and turns mushy. Toasting creates a crisp barrier that holds up to the melted cheese. If your oven runs hot, check at the 4-minute mark to avoid burning.
Assemble and Melt the Cheese
Divide the warm soup among 6 oven-safe bowls. Place 1-2 toasted baguette slices on top of each bowl, overlapping slightly to create a crown. Sprinkle evenly with the 2 cups freshly grated Gruyère cheese, pressing down gently to help it melt into the bread.
Transfer the bowls to the oven and broil for 3-5 minutes until the cheese is bubbly and golden brown. Watch closely—cheese burns faster than it melts. The bread should be crispy underneath with gooey, melted cheese on top. Serve immediately while the cheese is still molten.
Pro Tips For Making 99 French Onion Soup
- CARAMELIZE IN BATCHES: Onions burn faster than you think—especially when you’re staring at them like they’re a science experiment. Split your yellow onions into two pans and cook them in 15-minute shifts on medium-low. The first batch will be golden and sweet; the second will follow without turning to ash. (Yes, even if you’re impatient like me.)
- SALT THE BUTTER FIRST: Unsalted butter needs seasoning before it hits the pan. Toss in a generous pinch of salt (about ¼ tsp per 2 tbsp butter) and let it melt into the onions. This guarantees your soup won’t taste bland later, no matter how much broth you add. I learned this the hard way—skipping it makes the whole dish taste flat.
- DEGLAZE WITH WINE IMMEDIATELY: As soon as those onions hit caramelized perfection, pour in that dry white wine right away—don’t let them sit. The alcohol will sizzle and lift all the stuck-on bits, turning them into a rich, glossy sauce. If you wait, you’ll scrape a sad, dry layer off the bottom instead. (Your future self will thank you.)
- GRATE CHEESE FRESH: Pre-shredded Gruyère clumps and lacks that perfect melt. Grab a box of Gruyère (or Comté if you’re fancy) and grate it yourself—just before broiling the soup. The cheese will brown beautifully and create a gooey, cohesive crust instead of a sad, greasy mess. Sounds weird, but it works: the starch in pre-shredded cheese is a nightmare for this dish.
Flavor customization for this 99 french onion soup
Sweet and Smoky Twist
Add 1 tbsp smoked paprika and ½ tsp liquid smoke to the caramelized onions for a smoky depth that pairs beautifully with the sweetness. I like to use Penzeys Old Bay Seasoning for a subtle smoky note without overpowering the dish.
For extra sweetness, stir in 1 tbsp honey or 1 tsp maple syrup during the final 5 minutes of caramelization. 🌶️
Cheesy Variations
Swap out Gruyère for Comté or Emmental cheese for a sharper, nuttier flavor. For a vegetarian option, use vegan Gruyère substitute (like Miyoko's) and add 1 tbsp nutritional yeast for a cheesy depth.
If you love bold flavors, mix ½ cup Gruyère with ½ cup sharp cheddar for a tangy kick.
Herb Infusions
Boost the aroma with 1 tsp fresh rosemary or ½ tsp dried tarragon while caramelizing the onions. I often add ½ cup fresh parsley at the end for a bright finish.
For a Mediterranean twist, include ½ tsp dried oregano in the broth. These herbs elevate the dish without overpowering the onions.
Spicy Kick
Add ½ tsp cayenne pepper or 1 tsp hot sauce (like Tabasco) to the broth for a subtle heat. For a more pronounced kick, stir in 1 tbsp chopped jalapeños with the garlic. Balance the heat with an extra pinch of sugar to enhance the caramelized onions' sweetness. 🔥
Creamy Upgrade
Stir in ½ cup heavy cream or ½ cup coconut milk (for a dairy-free option) during the final 5 minutes of simmering. This adds a luxurious richness that complements the caramelized onions beautifully. For extra decadence, top with a dollop of crème fraîche or sour cream before serving.
Umami Boost
Add 1 tbsp Worcestershire sauce or 1 tsp fish sauce to the broth for an umami depth. For a vegetarian option, use 1 tsp soy sauce or ½ tsp mushroom powder. These ingredients enhance the savory notes and make the soup even more satisfying. 💫
Nutrition facts
Frequently asked questions
Why does the recipe call for 6 pounds of onions?
Six pounds of onions create the perfect balance of sweetness and depth for this classic dish. The slow caramelization transforms them into a jam-like consistency that forms the soul of the soup. Using fewer onions would result in a less flavorful broth, while more could make the soup too heavy. This quantity ensures every spoonful delivers that rich, velvety texture.
Can I make this soup ahead of time?
The caramelized onions and broth can be prepared up to 3 days in advance and stored in the fridge. Reheat gently on the stove before adding the toasted bread and cheese. For the bread topping, toast it fresh before serving to maintain crispiness—it won't hold up well if made ahead. The cheese should always be added fresh for that perfect melt.
What's the best cheese substitute if I can't find Gruyère?
For a similar melt and flavor, try Comté or Emmental cheese. If you're avoiding dairy, use a high-quality vegan cheese like Miyoko's and add 1 tbsp nutritional yeast for extra depth. Avoid pre-shredded cheeses—they contain anti-caking agents that prevent proper melting. Freshly grated always wins!
Why does the bread get soggy if I don't toast it?
Toasted bread creates a crisp barrier that prevents it from absorbing the soup's moisture. Raw bread turns mushy when exposed to the warm, liquid broth. The toasting step is non-negotiable for that perfect texture contrast—crispy on the bottom, gooey cheese on top. If your oven runs hot, check the bread at 4 minutes to avoid burning.
How do I fix bitter-tasting caramelized onions?
Bitter onions happen when they're cooked too fast or at too high heat. To salvage them, add 1-2 tsp sugar or 1 tbsp honey to the pot and cook for another 5 minutes to restore sweetness. If the bitterness is severe, start fresh with a new batch—proper caramelization should be sweet, not bitter, and take 45-60 minutes at low heat.
