Soups & Stews
This 99 Restaurant French Onion Soup recipe brings the iconic comfort of caramelized onions and rich beef broth into your home kitchen—just like the version that made it famous.
The secret lies in slow-cooking onions until they're deep golden and sweet, then layering them with tender beef broth and a melt-in-your-mouth Gruyère cheese topping. I've perfected this method to deliver that signature restaurant-quality depth without requiring hours of prep.
The process starts with caramelizing onions—the most critical step—until they're tender and richly colored, creating the soul of the soup. Aromatic garlic, thyme, and bay leaf infuse the beef broth as it simmers, building layers of flavor that make every spoonful irresistible.
The key to authenticity is using high-quality beef broth and letting it reduce slowly, intensifying its savory notes.
Once baked, the soup transforms into a golden, bubbling masterpiece with crispy bread on top and melted cheese that stretches into delicate strands. The contrast between the tender onions, rich broth, and creamy cheese creates a harmony that's both comforting and sophisticated.
This is the kind of dish that feels like a warm hug on a chilly day.
Perfect for weeknight dinners or special occasions, this recipe scales easily for a crowd while maintaining its restaurant-style appeal. The beauty of French onion soup lies in its simplicity—just a few ingredients, but each one plays a crucial role in delivering that iconic taste.
Let's get started on creating your own version of this classic.
Ingredients for 99 restaurant french onion soup
Caramelized onions and rich broth form the heart of this iconic restaurant-style soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 4 large | Sliced thinly for even cooking |
| Unsalted Butter 🧈 | ½ cup | High-fat content for caramelization |
| Beef Broth 💧 | 6 cups | High-quality, homemade preferred |
| Garlic Cloves 🧄 | 4 cloves | Minced for aromatic depth |
| Fresh Thyme 🌿 | 2 sprigs | Or 1 tsp dried thyme |
| Bay Leaves 🍃 | 2 whole | Removed before serving |
| Gruyère Cheese 🧀 | 1 ½ cups | Freshly grated from block |
| Emmental Cheese 🧀 | ½ cup | For extra melt and flavor |
| Baguette 🍞 | 1 whole | Crusty, sliced into strips |
| Olive Oil 🫒 | 2 tbsp | For drizzling on bread |
| Salt 🧂 | 1 ½ tsp | Kosher preferred for seasoning |
| Black Pepper 🌶️ | ½ tsp | Freshly ground for best flavor |
| White Wine 🍷 | ½ cup | Dry variety for deglazing |
The onions are the star—4 large yellow onions sliced paper-thin for even cooking. High-fat unsalted butter is non-negotiable here; it creates the perfect caramelization. I always grab the Land O'Lakes unsalted butter from the grocery store—it's consistent and melts beautifully. For the beef broth, homemade is best, but a quality store-bought like Kitchen Basics works in a pinch. Look for broth with visible meat pieces for extra depth. The Gruyère cheese should be freshly grated from a wedge—pre-shredded gets clumpy and lacks that signature melt. Whole Foods carries excellent Gruyère, but any specialty cheese shop will have it too.
No white wine? Substitute extra beef broth with a splash of apple cider vinegar—it adds brightness without alcohol. Fresh thyme is ideal, but dried thyme at one-third the amount works if you're short on time. The baguette matters—crusty, fresh bread toasts perfectly under the broiler. No baguette? Sourdough or Italian bread in a pinch. For the cheese topping, Emmental adds a subtle sweetness that complements the Gruyère. If you can't find it, Swiss cheese works too. The key is grating it yourself—pre-shredded melts differently and often contains anti-caking agents.
This soup tastes even better the next day—4-5 days in the fridge, covered. For longer storage, freeze the broth and onions separately (up to 3 months), then reheat before adding the cheese topping. The bread toasts best fresh from the oven, but you can reheat it in a 350°F oven for 5-10 minutes. I always make a double batch—the leftovers reheat beautifully for lunch the next day, and the extra cheese topping makes great toastings for the following morning.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just onions, butter, and broth in one pot, no extra dishes. The caramelized onions alone make it worth the 10 minutes of hands-off work, and the garlic-thyme finish ties it all together without fuss.
- Restaurant-Level Depth: That slow simmer with beef broth and butter? It builds layers of richness you’d pay $15 for at a bistro. The crispy cheese on top is the cherry—simple, but chef’s kiss every time.
- Crowd-Pleaser Flex: Whether it’s a chilly Tuesday or a dinner party, this soup adapts. Double the batch, freeze half, and reheat when you’re too tired to cook. (Yes, even my picky teen devours it.)
- Budget Warmth: Onions and broth won’t break the bank, but the flavor? Pure comfort. I’ve made this for $3 a serving—proof you don’t need fancy ingredients for something that feels like a hug in a bowl.
Step-by-step instructions for French onion soup
Master this classic with perfectly caramelized onions and a golden, cheesy topping.
Caramelize the Onions Slowly
Slice the 4 large yellow onions thinly and evenly—this ensures consistent cooking. Melt the 0.5 cup unsalted butter in a large Dutch oven over medium-low heat. Add the onions and sprinkle with 1 teaspoon of the 1.5 teaspoons salt. Stir occasionally, resisting the urge to rush.
Caramelization takes patience—about 45 minutes. The onions should transform from translucent to deep golden brown, with a sweet, jam-like consistency. If they brown too quickly, reduce the heat. The butter will render out, leaving behind rich, concentrated flavor. This step builds the soul of your soup—don't skip it.
Build the Flavor Base
Once the onions are caramelized, increase heat to medium and add the 4 cloves minced garlic. Cook for 30 seconds until fragrant—this prevents the garlic from burning. Deglaze the pan with the 0.5 cup white wine, scraping up any browned bits from the bottom with a wooden spoon. Let it simmer for 2 minutes to cook off the alcohol.
Add the 6 cups beef broth, 2 sprigs fresh thyme, 2 whole bay leaves, and the remaining 0.5 teaspoon salt and 0.5 teaspoon black pepper. Bring to a gentle simmer and cook uncovered for 20 minutes. This allows the flavors to meld and the broth to absorb the onion's sweetness. Taste and adjust seasoning if needed—this is your flavor foundation.
Prepare the Cheesy Topping
While the soup simmers, slice the 1 whole baguette into ½-inch strips. Brush both sides with 1 tablespoon of the 2 tablespoons olive oil and toast in a 375°F oven for 5-7 minutes until golden. In a small bowl, combine the 1.5 cups gruyère cheese and 0.5 cup emmental cheese, grating them finely for even melting.
Arrange the toasted bread strips in a single layer on a baking sheet and sprinkle with half of the cheese mixture. Broil for 2-3 minutes until the cheese begins to melt and bubble. Remove from the oven and keep warm—this pre-melting ensures a perfectly gooey topping when assembled.
Assemble and Bake
Ladle the hot onion soup into 4 oven-safe bowls, dividing it evenly. Top each bowl generously with the remaining toasted bread strips and cheese mixture. Place the bowls on a baking sheet and broil for 3-5 minutes until the cheese is bubbly and golden brown. Watch closely—the cheese should melt completely but not burn.
Serve immediately with a wooden spoon for dipping. The contrast between the rich, caramelized onions and the crispy, cheesy bread topping creates the perfect balance of textures and flavors. Each bite should deliver layers of sweetness, savory broth, and melted cheese—just like the 99 Restaurant classic.
Pro Tips For Making 99 Restaurant French Onion Soup
- Sweat, Don’t Burn: The onions need time—about 20-25 minutes on medium-low heat with a splash of water or broth to deglaze occasionally. I learned this the hard way: charred onions taste bitter and ruin the whole dish. Keep the lid off so moisture evaporates, but stir every 5 minutes to build that sweet, caramelized base.
- Use Cold Butter: Start with cold, cubed butter instead of melted—it browns better and adds richness without burning. I was skeptical until I tried it: the soup develops deeper flavor, and you won’t end up with a greasy mess. Just add it in batches as the onions soften.
- Strain the Broth: If your beef broth isn’t crystal clear, strain it before using. I know, it’s extra work, but it makes a real difference—no gritty texture in your final soup. Use a fine-mesh sieve or cheesecloth, and don’t skip this if you’re using store-bought broth.
- Toast the Garlic: After the onions caramelize, add the minced garlic and cook it for 30 seconds until fragrant but not browned. This step actually changes the outcome—it amplifies the garlic’s flavor without bitterness. Don’t rush it, or you’ll regret it.
Common mistakes when making this dish
Rushing Caramelization
This is the #1 mistake I see—skipping the 45-minute caramelization to save time. The onions need that slow cook to develop their deep, sweet flavor. If you rush it, you'll end up with bitter, browned onions that ruin the soup.
Use a medium-low heat and stir occasionally to prevent burning. Trust me, the extra time pays off with that restaurant-quality depth. 🔥
Skipping the Wine Deglaze
Many home cooks forget to deglaze the pan with white wine after caramelizing the onions. This step removes those precious browned bits from the bottom, adding extra richness to the broth.
If you skip it, you're missing out on layers of flavor. Just 0.5 cup of dry white wine does the trick—don't substitute with water or broth.
Overcrowding the Pot
Using too small a pot causes the onions to steam instead of caramelize. A large Dutch oven is ideal—it gives the onions room to cook evenly. If your pot is too crowded, spread the onions in a single layer and cook in batches if needed.
The goal is that jam-like consistency, not soggy onions.
Using Pre-Shredded Cheese
Pre-shredded cheese contains anti-caking agents that prevent proper melting, leading to a grainy texture. Always grate Gruyère and Emmental fresh from a block using a microplane or box grater.
For the best results, mix the cheeses together and grate them just before assembling the soup. The difference is night and day. 🧀
Broiling Too Long
Watch that broiler like a hawk! Over-broiling turns the cheese topping rubbery instead of creamy. The cheese should bubble and turn golden in 3-5 minutes. If you see it browning too quickly, pull it out immediately. A handheld kitchen torch can finish the job for a more restaurant-style look.
Neglecting the Bread Prep
Toasted bread is the perfect crunchy contrast to the creamy cheese. Skipping the olive oil brush or toasting it properly means a soggy, flavorless topping. Brush both sides with oil and toast until golden—this step makes all the difference in texture.
For extra crispiness, broil the bread for 1-2 minutes after toasting.
Nutrition facts
Frequently asked questions
Can I make this soup vegetarian?
Replace the beef broth with 6 cups of rich vegetable broth (homemade or high-quality store-bought). For extra depth, add 1 teaspoon soy sauce or mushroom powder to mimic the umami from beef. The caramelization process remains the same, and the cheese topping stays identical. Just ensure your broth is well-seasoned to match the savory profile.
How do I fix bitter-tasting caramelized onions?
Bitter onions usually mean they burned or cooked too fast. To salvage them, stir in 1 tablespoon of sugar or honey and cook for 2 minutes to balance the bitterness. If the flavor is still off, reduce the cooking time next time—keep heat at medium-low and stir frequently. The goal is deep golden, not dark brown.
What's the best way to reheat leftovers?
Reheat only the broth and onions (without cheese) in a saucepan over medium-low heat until steaming. Stir occasionally to prevent sticking. Add the cheese topping fresh when serving—it melts beautifully from cold. For extra crispiness, toast the bread separately in a 375°F oven for 3-5 minutes before assembling. Leftovers keep for 4-5 days in the fridge.
Can I use a different cheese?
Gruyère is ideal for its nutty, slightly sweet flavor, but you can substitute with Comté or Swiss cheese if unavailable. Avoid cheddar—it melts differently and lacks the same depth. For a dairy-free option, use vegan mozzarella or a cashew-based cheese blend, though the texture will differ. Always grate fresh for best results.
Why does my cheese topping get grainy?
This happens when using pre-shredded cheese (anti-caking agents) or not melting it properly. Always grate Gruyère and Emmental fresh from a block. For extra smoothness, mix the cheeses together and grate them just before baking. If it still looks grainy, try adding 1 tablespoon of heavy cream to the cheese mixture before topping.
