Disclosure: This post may contain affiliate links. If you make a purchase through these links, I may earn a commission. This comes at no additional cost to you. For more details, please visit my Affiliate Disclosure page.
French onion soup has always felt like something more than just a bowl of soup.
It’s not something you see often—not on everyday tables, not in most kitchens. Maybe because it asks for a little more time. A little more attention. The kind of attention that can’t be rushed.
But when it’s done with intention, the result is something else entirely.
The onions cook down slowly, transforming into something deep and almost unrecognizable—sweet, rich, and layered, without the sharpness most people associate with onions. The broth supports it quietly, adding depth without getting in the way. And then there’s the finish: a hidden crouton beneath the surface, a toasted round of baguette on top, and a blanket of melted cheese that bubbles and browns under the broiler.
It’s simple food, built carefully.
And when everything comes together, it feels like what it is:
Elegance in a bowl.

Why You’ll Love This French Onion Soup Recipe
- Deep, layered flavor — The onions are cooked slowly with careful attention, building richness without tipping into bitterness. Every spoonful carries that depth.
- Balanced, not heavy — A lighter, well-structured broth supports the onions instead of overwhelming them, keeping the soup rich but never weighed down.
- Classic structure, refined execution — Crisp croutons beneath the surface and a toasted, cheese-covered baguette on top create texture and contrast in every bite.
- No unnecessary complexity — Thoughtful technique replaces extra steps, so you get exceptional results without chasing perfection for its own sake.
- Accessible with or without homemade stock — A good-quality store-bought stock works well here, making this recipe approachable without sacrificing flavor.
A Note on Chicken Stock
While homemade stock is often considered the gold standard, it’s not absolutely necessary here. In testing, and in broader comparisons, some high-quality store-bought options perform just as well—especially in a soup like this, where the onions carry so much of the flavor. I’ve used Kitchen Basics Natural Stock for years. It has a clean flavor, restrained seasoning, and—most importantly—a lower salt content that lets you build and adjust the soup without fighting the broth.
If you have homemade stock, by all means use it. But if not, a good store-bought option like this will still produce an excellent result.
First-Things-First: Mise en Place
Before you start with the recipe, let me share some kitchen wisdom that’s made cooking much easier over the years. It’s called Mise en Place—a French phrase that means “everything in its place.” It might sound fancy, but it’s just about setting yourself up for success: read the recipe all the way through, gather your tools, then prep and measure everything before the heat goes on.
This simple habit takes the guesswork out of cooking and keeps surprises to a minimum. Whether you’re new to the kitchen or have been cooking for decades, Mise en Place is a process that makes a big difference.
Curious to learn more? I recommend Everything in Its Place: The Power of Mise-En-Place to Organize Your Life, Work, and Mind—it’s a great read that goes way beyond the kitchen.
Ingredients You’ll Need for French Onion Soup
- Onions (mixed varieties) — Vidalia, yellow, and/or white; using a blend creates a more balanced, layered flavor as they cook down. I avoid red onions here—they tend to darken the broth and give it a slightly muddy appearance.

- Unsalted butter — the foundation for slowly developing richness without overpowering the onions.
- Garlic — just enough to support the base without stepping forward.
- Dry white wine — used in small splashes to loosen the fond and fold flavor back into the onions.
- Chicken stock — clean, balanced, and supportive; see note above for recommendations.
- Fresh thyme — subtle herbal depth that complements the sweetness of the onions.
- Bay leaf — adds quiet background structure to the broth.
- Fish sauce — optional, but adds a subtle layer of umami that won’t be identifiable on its own.
- Apple cider vinegar — a small finishing touch that lifts and balances the final soup.
- Baguette — sliced and prepared two ways: crisped into croutons for the base and toasted for the top.
- Gruyère cheese — melts into a rich, nutty layer that defines the finished dish.
- Parmesan (optional) — helps encourage browning under the broiler.
- Chives or green onions — a fresh, light finish that cuts through the richness.
How to Make French Onion Soup
Caramelize the Onions
- Cook the onions in butter — A large cast iron skillet or Dutch oven works especially well here for steady, even heat. Melt the butter over medium heat, add the sliced onions, season lightly with salt, and cook, stirring occasionally, until they soften and begin to release their moisture.
- Caramelize the onions slowly — Reduce the heat to medium-low and continue cooking, stirring periodically. As the onions cook down, allow fond to develop on the bottom of the pot. If you’re new to this process or want a deeper look at managing heat and fond, see my guide to caramelizing onions.

- Deglaze and build flavor — When the bottom of the pot begins to look dry and browned, add a small splash of water or dry white wine—just enough to loosen the fond and fold it back into the onions without flooding the pan. Repeat this process as needed until the onions are deeply golden, soft, and cohesive.

- Add garlic and finish the base — Stir in the minced garlic and cook briefly until fragrant. Add one final small splash of white wine and let it reduce, pulling together the last of the fond.

Build the Soup
- Build the broth — Add the chicken stock, thyme, bay leaf, and fish sauce (if using). Bring to a gentle simmer and cook for 20–30 minutes to allow the flavors to come together. While the soup simmers, prepare the bread.
- Prepare the croutons — Place half of the baguette slices on a baking sheet and bake at 325°F until fully dried and lightly golden, about 15–20 minutes. They should be crisp throughout and able to absorb broth without becoming mushy—keep an eye on them toward the end to prevent over-browning.
- Toast the top slices — Toast the remaining baguette slices at 375–400°F until well browned on the surface but still slightly tender in the center.
- Finish the soup — Remove the thyme stems and bay leaf. Taste and adjust with salt and pepper, then stir in the apple cider vinegar to brighten and balance the broth.
Assemble the Bowls and Serve
- Assemble the bowls — Ladle hot soup into oven-safe bowls. Place a crouton in each bowl, add a small layer of onions with minimal broth, then top with a toasted baguette slice.
- Add cheese and broil — Cover with grated Gruyère (and a small amount of Parmesan, if using), then broil until melted, bubbling, and lightly browned.
- Finish and serve — Garnish with chives or green onions and serve immediately while hot.

Storage
- Refrigerate leftovers properly — Allow the soup to cool, then store it in an airtight container in the refrigerator for up to 3–4 days. Store the bread and cheese separately to maintain texture.
- Reheat gently — Warm the soup on the stovetop over medium-low heat until heated through. Avoid boiling, which can dull the flavor you’ve built into the broth.
- Assemble fresh for serving — For best results, prepare the croutons and broiled cheese topping just before serving rather than storing assembled bowls.
- Avoid freezing the soup — Freezing dulls the flavor of the onions and compromises the broth’s texture. This dish is best enjoyed fresh or within a few days.
French Onion Soup
Deeply caramelized onions and a balanced, flavorful broth come together in this classic French onion soup, finished with crisp baguette and melted Gruyère.
Ingredients
Soup
- 3 pounds mixed onions (Vidalia, yellow, and/or white), thinly sliced
- 8 tablespoons unsalted butter
- Kosher salt
- Freshly ground black pepper
- Dry white wine, as needed for deglazing
- 2 quarts chicken stock (preferably homemade or high-quality store-bought)
- 2 cloves garlic, minced
- 2–3 sprigs fresh thyme
- 1 bay leaf
- 1 teaspoon fish sauce (optional but recommended)
- 1/2 teaspoon apple cider vinegar
Bread & Cheese
- 1 baguette, sliced (see instructions for two preparations)
- 8–12 ounces Gruyère cheese, grated
- Optional: a small amount of Parmesan cheese (for browning)
Garnish
- Fresh chives and/or green onions, finely sliced
Instructions
- Cook the onions in butter — Melt the butter over medium heat in a large, heavy-bottomed pot. Add the onions, season lightly with salt, and cook, stirring occasionally, until they soften and release their moisture.
- Caramelize the onions slowly, managing the fond — Reduce heat to medium-low and continue cooking, stirring periodically. When the bottom of the pot begins to look dry and browned, deglaze with a small splash of water or dry white wine—just enough to loosen the fond and fold it back into the onions without flooding the pan. Continue this process until the onions are deeply golden, soft, and cohesive.
- Add garlic and deglaze with wine — Stir in the minced garlic and cook briefly until fragrant. Add a final splash of white wine and cook until mostly reduced.
- Build the broth — Add the chicken stock, thyme, bay leaf, and fish sauce (if using). Bring to a gentle simmer and cook for 20–30 minutes to allow the flavors to come together. While the soup simmers, prepare the bread.
- Prepare the crouton base — Place half of the baguette slices on a baking sheet and bake at 325°F until fully dried and lightly golden, about 15–20 minutes. These should be crisp throughout and able to absorb broth without becoming mushy.
- Prepare the top slices — Toast the remaining baguette slices at 375–400°F until well browned on the surface but still slightly tender in the center. Set aside for assembly.
- Finish the soup — Remove the thyme stems and bay leaf. Taste and adjust seasoning with salt and pepper. Stir in the apple cider vinegar to brighten the broth.
- Assemble the bowls — Ladle hot soup into oven-safe bowls. Place a crouton in each bowl. Add a small layer of caramelized onions (with minimal broth) over the crouton. Top with a toasted baguette slice.
- Add cheese and broil — Cover the top with grated Gruyère (and a small amount of Parmesan, if using). Broil until the cheese is melted, bubbling, and lightly browned.
- Finish and serve — Garnish with chives or green onions and then serve immediately.


