This French Onion Soup has deeply caramelized onions in a rich, savory broth with white wine, fresh thyme, and a hint of Dijon. It’s topped with toasted baguette and plenty of melted Gruyère and Parmesan cheese!
Slice the onions into ¼-inch slices (no thinner). Heat the olive oil and butter in a large Dutch oven or soup pot over medium heat. Add the onions, sprinkle with salt, and toss to coat. Cover and cook for 20 minutes, stirring occasionally, until they begin to soften and release their liquid.
Remove the cover and continue to cook the onions for up to 90 minutes, stirring every few minutes. As they become more caramelized, stir more frequently and scrape up any browned bits from the bottom of the pot. Reduce the heat as needed to prevent burning.
Toward the end of caramelizing, if browned bits begin to build up on the bottom of the pot, add small splashes of the wine (using up to ½ cup) and use a silicone spatula to "clean" the pot. Allow the wine to evaporate before adding another splash. This incorporates the flavorful fond back into the onions while preventing it from burning. The onions are ready when they're very soft, significantly reduced in volume, and a deep golden brown. Don't rush this step—the caramelized onions provide the primary flavor base for the soup.
Add the garlic and cook for 1 minute. Add the thyme and bay leaves.
Add the remaining wine and use a silicone spatula to scrape up any remaining browned bits from the bottom and sides of the pot. Let it simmer for 3–5 minutes, until the wine has reduced slightly and the alcohol smell has cooked off.
Sprinkle the flour over the onions and stir continuously for 2 minutes to cook off the raw flour taste.
Gradually add the beef broth and chicken broth, stirring as you do so. Add the bouillon, Worcestershire sauce, and Dijon. Bring the soup to a gentle boil, then reduce to a simmer.
Cover partially and simmer for 30 minutes, stirring occasionally. Remove the thyme stems and bay leaves. Taste and season with salt and pepper as needed.
Meanwhile, preheat the oven to 400° F. Cut the baguette into ¾-inch slices and arrange on a light-colored baking sheet. Lightly brush both sides with olive oil and butter. Bake for 6–8 minutes, flipping halfway through, until lightly golden and crisp. Remove and set aside.
Set the oven to broil and arrange oven-safe soup crocks on a baking sheet. (See notes if not using oven-safe bowls.)Ladle the hot soup into the crocks, leaving about ½ inch of space at the top.
Place 1–2 toasted baguette slices into each bowl. Combine the Gruyère and Parmesan and generously sprinkle it over the bread, extending some of the cheese to the edges of the crocks.
Transfer the baking sheet to the oven and broil until the cheese is completely melted and bubbly, about 2–4 minutes. Watch it closely, as broiling times vary.
Carefully remove from the oven and let the soup cool for a few minutes before serving. The crocks and soup will be extremely hot. Enjoy!
Notes
Pro Tips:
If you don't have oven-safe soup bowls: Toast the baguette slices as outlined in the recipe. Arrange the toasted slices on a baking sheet and top generously with the Gruyère and Parmesan cheese. Broil until the cheese is melted, bubbly, and browned in spots, about 2–4 minutes. Ladle the hot soup into serving bowls and carefully place the cheesy baguette slices on top. Serve immediately.
Beef Broth/Stock:High-quality beef broth or stock makes a big difference in this recipe since it provides much of the soup’s flavor. If you have access to a local butcher or specialty market that sells a good house-made beef stock, that’s a great option. Otherwise, Kitchen Basics Original Beef Stock is my preferred grocery store brand. Better Than Bouillon Roasted Beef Base is also added to further enhance the depth of flavor.
Onions: It will seem like there are a lot of onions. They’ll fill the whole soup pot! But trust the process, onions are mostly made of water, and they’ll reduce down significantly. Wine:Sauvignon Blanc is my top choice for this recipe as its crisp acidity helps balance the sweetness of the caramelized onions. Pinot Grigio and a dry, unoaked Chardonnay are also great options. Avoid sweet or noticeably fruity wines.
Wine Substitute: You can substitute 2 tablespoons white wine vinegar + chicken broth to make 1 cup. This provides acidity and depth of flavor similar to the wine without making the soup taste vinegary.
Best Bread for French Onion Soup: A French baguette is my top choice for this soup. It has a sturdy, chewy texture that holds up well once topped with cheese and added to the broth. French bread, sourdough, or ciabatta are also great options. Avoid very soft sandwich-style breads, which can become soggy too quickly. Toasting the bread first is key for helping it maintain its structure.
Cheese:Gruyère is my top choice for French Onion Soup—it has a rich, nutty flavor and melts beautifully. Comté, Emmental, Swiss, or Fontina are also great options. I like to combine Gruyère with a little Parmesan for extra flavor and browning. For the best flavor and melt, shred the cheese from a block rather than using pre-shredded cheese.
Storage:
Refrigerate: Store leftover soup in an airtight container and refrigerate for up to 3–4 days. For best results, store the toasted bread and cheese separately and assemble just before serving.
Freeze:The soup freezes very well without the bread and cheese. Store in an airtight container for up to 3 months. Thaw overnight in the refrigerator before reheating.
Reheat: Reheat the soup gently on the stovetop or in the microwave. Prepare fresh toasted baguette slices with cheese and add them just before serving.
Make Ahead: The soup can be prepared 1–2 days ahead of time, and the flavor gets even better as it sits! Refrigerate the soup and prepare the bread and cheesy topping when ready to serve.
Nutritional information estimate and is per serving. This recipe makes 6 servings, or roughly 8 cups of soup.