I’m sharing my go-to Classic French Onion Soup recipe, built on deeply caramelized onions, a savory broth and cheesy toasted bread, and it’s vegetarian and gluten-free adaptable with an option to skip the wine.
I fell for this soup because sweet, caramelized yellow onions give the bowl real depth, and melty Gruyere cheese on top turns every spoonful into a tiny reward. I call it my Quick French Onion Soup Recipe when I need dinner fast, but honestly people keep telling me it’s the Best French Onion Soup they’ve ever had, and I can’t argue.
It’s cheap, slightly fancy, and weirdly comforting without being sappy. I mess up the onions sometimes, which makes the result different each time, but that’s part of the fun—every batch tells a little story.
Ingredients
- Onions: sweet when caramelized, give fiber, some vitamin C and savory depth.
- Butter and olive oil: adds richness, fat for mouthfeel, helps caramelization and flavor.
- Broth: beef gives deep umami, veggie broth keeps it lighter and plant based protein.
- Gruyere cheese: melty, nutty, adds protein and calcium, makes the soup indulgent and gooey.
- Baguette: crunchy top, soaks up broth, gives carbs for comfort and texture contrast.
- Thyme and bay leaf: herb notes lift the soup, add aroma, subtle earthy floral flavors.
- Balsamic vinegar and Worcestershire: adds a tangy sweet depth, balances sweetness from onions.
- Garlic and flour: garlic gives savor, flour thickens slightly, or skip for gluten free.
Ingredient Quantities
- 6 large yellow onions, thinly sliced (about 3 pounds)
- 3 tablespoons unsalted butter plus 1 tablespoon olive oil (or 4 tablespoons olive oil for vegetarian)
- 1 teaspoon granulated sugar (optional)
- 1 teaspoon salt plus more to taste
- 1/2 teaspoon freshly ground black pepper
- 2 cloves garlic, minced
- 1/4 cup dry white wine or sherry, optional (can omit)
- 2 tablespoons all purpose flour, optional or use 2 tablespoons gluten free flour
- 6 cups beef broth or 6 cups vegetable broth for vegetarian
- 2 sprigs fresh thyme or 1/2 teaspoon dried thyme
- 1 bay leaf
- 1 tablespoon Worcestershire sauce, optional (omit for vegetarian or use vegan Worcestershire or tamari)
- 1 tablespoon balsamic vinegar, optional
- 1 baguette, sliced 1/2 inch thick or use gluten free bread
- 8 ounces Gruyere cheese, grated (or Swiss, Emmental or mozzarella)
- 1/4 cup grated Parmesan or Pecorino Romano, optional
- 1 tablespoon olive oil for the bread or a little butter
- Fresh parsley, chopped for garnish, optional
How to Make this
1. Peel and thinly slice 6 large yellow onions (about 3 pounds). Measure 3 tbsp unsalted butter plus 1 tbsp olive oil (or 4 tbsp olive oil if you want vegetarian). Heat a large heavy pot over medium-low heat.
2. Add butter and oil, then all the onions, 1 tsp salt and 1 tsp granulated sugar if using. Cook low and slow, stirring every few minutes so they brown evenly, about 35 to 45 minutes, until deep golden brown and jammy. Don’t rush it by turning the heat up or they’ll burn.
3. Stir in 2 minced garlic cloves and cook 30 to 60 seconds. If you want a slightly thicker soup, sprinkle 2 tbsp all purpose flour (or 2 tbsp gluten free flour) and cook 1 to 2 minutes to remove the raw taste.
4. Pour in 1/4 cup dry white wine or sherry if using, scraping up all the browned bits from the bottom. If you skip wine, add a splash of broth instead. Let the alcohol cook off about 1 to 2 minutes.
5. Add 6 cups beef broth (or 6 cups vegetable broth for vegetarian), 2 sprigs fresh thyme (or 1/2 tsp dried), 1 bay leaf, 1 tbsp Worcestershire sauce if not vegetarian (or use vegan Worcestershire/tamari), and 1 tbsp balsamic vinegar if using. Bring to a gentle simmer, reduce heat and simmer uncovered 20 to 30 minutes. Taste and season with more salt and 1/2 tsp freshly ground black pepper as needed.
6. While soup simmers, preheat broiler. Slice 1 baguette 1/2 inch thick (or use gluten free bread), brush both sides with 1 tbsp olive oil or a little butter, and toast on a baking sheet until golden on both sides. You can rub the warm toasts with a cut garlic clove for extra flavor, if you like.
7. Grate 8 ounces Gruyere (or Swiss/Emmental/mozzarella) and have 1/4 cup grated Parmesan or Pecorino Romano ready. Ladle hot soup into ovenproof bowls, top each with 1 or 2 toasted baguette slices, pile on the Gruyere and sprinkle some Parmesan.
8. Place bowls on a baking sheet and broil 2 to 5 minutes until cheese is bubbly and golden. Watch closely so it doesn’t burn. If you don’t have ovenproof bowls, broil the toasts with cheese separately and float them on the soup just before serving.
9. Remove thyme sprigs and bay leaf, garnish with chopped fresh parsley if desired, serve immediately while piping hot. If you made a vegetarian version remember you omitted Worcestershire and used veg broth and/or extra umami like tamari. Enjoy, it’s worth the wait.
Equipment Needed
1. Large heavy pot or Dutch oven (6 to 8 qt) — for slowly caramelizing the onions and simmering the soup
2. Sharp chef’s knife (for peeling and thinly slicing onions)
3. Cutting board — keep one dedicated to the onions so things dont get messy
4. Wooden spoon or heatproof silicone spatula for stirring low and slow
5. Measuring spoons and a 1/4 cup measuring cup for butter, oil, wine and seasonings
6. Baking sheet for toasting the baguette and holding bowls under the broiler
7. Ovenproof bowls or shallow gratin dishes that can go under the broiler
8. Box grater for the Gruyere and a small grater/finisher for Parmesan
9. Soup ladle for serving and a pair of tongs or spatula to place toasts on top
FAQ
Easy Recipe For French Onion Soup Substitutions and Variations
- Unsalted butter: swap with 4 tablespoons olive oil for a vegetarian version, or use an equal amount of vegan butter if you need dairy free; ghee gives a nuttier edge if you don’t need vegetarian, but watch the flavor.
- Beef broth: use 6 cups vegetable broth for a vegetarian soup, or try mushroom broth or a mix of veg broth plus 1 tablespoon soy sauce or 1 tablespoon miso for extra beefy umami without meat.
- Gruyere cheese: swap with Swiss, Emmental, Comté or fontina for similar melt and flavor; for dairy free use a good melting vegan cheese and a sprinkle of nutritional yeast for depth.
- Baguette: use sliced sourdough, ciabatta, or a hearty country loaf instead, or choose gluten free bread and toast it first so it holds up under the cheesy top.
Pro Tips
1) Pick the right pan and be patient. Use a wide, heavy bottomed skillet so more onion touches the surface, they brown faster and more evenly, and keep the heat low — sorry, dont do that, keep it low and resist the urge to crank the stove. If any bits start to stick or smell like they might burn, splash in a little water or stock and scrape the fond, it saves a batch.
2) Boost the umami without meat. Rehydrate a handful of dried porcini or shiitake and add the soaking liquid (strain the grit) or stir in a teaspoon of miso or tamari near the end, it’ll give that meaty depth without beef. A small splash of good balsamic at the finish wakes the flavors up.
3) Make ahead smarter. Caramelized onions freeze great in tablespoon or ice-cube portions, so you can pull out exactly what you need. The soup often tastes better next day after the flavors meld, so cook ahead, then keep bread and cheese separate and only broil the toasts at the last minute so they dont go soggy.
4) Broil and bread tricks. Dry the baguette slices first in a low oven then broil quickly with the cheese so the centers dont get soggy before the top browns; if you dont have ovenproof bowls broil the cheesy toasts on a sheet and set them on the soup right before serving. And watch the broiler closely, it goes from perfect to burned in thirty seconds.

Easy Recipe For French Onion Soup
I’m sharing my go-to Classic French Onion Soup recipe, built on deeply caramelized onions, a savory broth and cheesy toasted bread, and it’s vegetarian and gluten-free adaptable with an option to skip the wine.
6
servings
475
kcal
Equipment: 1. Large heavy pot or Dutch oven (6 to 8 qt) — for slowly caramelizing the onions and simmering the soup
2. Sharp chef’s knife (for peeling and thinly slicing onions)
3. Cutting board — keep one dedicated to the onions so things dont get messy
4. Wooden spoon or heatproof silicone spatula for stirring low and slow
5. Measuring spoons and a 1/4 cup measuring cup for butter, oil, wine and seasonings
6. Baking sheet for toasting the baguette and holding bowls under the broiler
7. Ovenproof bowls or shallow gratin dishes that can go under the broiler
8. Box grater for the Gruyere and a small grater/finisher for Parmesan
9. Soup ladle for serving and a pair of tongs or spatula to place toasts on top
Ingredients
-
6 large yellow onions, thinly sliced (about 3 pounds)
-
3 tablespoons unsalted butter plus 1 tablespoon olive oil (or 4 tablespoons olive oil for vegetarian)
-
1 teaspoon granulated sugar (optional)
-
1 teaspoon salt plus more to taste
-
1/2 teaspoon freshly ground black pepper
-
2 cloves garlic, minced
-
1/4 cup dry white wine or sherry, optional (can omit)
-
2 tablespoons all purpose flour, optional or use 2 tablespoons gluten free flour
-
6 cups beef broth or 6 cups vegetable broth for vegetarian
-
2 sprigs fresh thyme or 1/2 teaspoon dried thyme
-
1 bay leaf
-
1 tablespoon Worcestershire sauce, optional (omit for vegetarian or use vegan Worcestershire or tamari)
-
1 tablespoon balsamic vinegar, optional
-
1 baguette, sliced 1/2 inch thick or use gluten free bread
-
8 ounces Gruyere cheese, grated (or Swiss, Emmental or mozzarella)
-
1/4 cup grated Parmesan or Pecorino Romano, optional
-
1 tablespoon olive oil for the bread or a little butter
-
Fresh parsley, chopped for garnish, optional
Directions
- Peel and thinly slice 6 large yellow onions (about 3 pounds). Measure 3 tbsp unsalted butter plus 1 tbsp olive oil (or 4 tbsp olive oil if you want vegetarian). Heat a large heavy pot over medium-low heat.
- Add butter and oil, then all the onions, 1 tsp salt and 1 tsp granulated sugar if using. Cook low and slow, stirring every few minutes so they brown evenly, about 35 to 45 minutes, until deep golden brown and jammy. Don’t rush it by turning the heat up or they’ll burn.
- Stir in 2 minced garlic cloves and cook 30 to 60 seconds. If you want a slightly thicker soup, sprinkle 2 tbsp all purpose flour (or 2 tbsp gluten free flour) and cook 1 to 2 minutes to remove the raw taste.
- Pour in 1/4 cup dry white wine or sherry if using, scraping up all the browned bits from the bottom. If you skip wine, add a splash of broth instead. Let the alcohol cook off about 1 to 2 minutes.
- Add 6 cups beef broth (or 6 cups vegetable broth for vegetarian), 2 sprigs fresh thyme (or 1/2 tsp dried), 1 bay leaf, 1 tbsp Worcestershire sauce if not vegetarian (or use vegan Worcestershire/tamari), and 1 tbsp balsamic vinegar if using. Bring to a gentle simmer, reduce heat and simmer uncovered 20 to 30 minutes. Taste and season with more salt and 1/2 tsp freshly ground black pepper as needed.
- While soup simmers, preheat broiler. Slice 1 baguette 1/2 inch thick (or use gluten free bread), brush both sides with 1 tbsp olive oil or a little butter, and toast on a baking sheet until golden on both sides. You can rub the warm toasts with a cut garlic clove for extra flavor, if you like.
- Grate 8 ounces Gruyere (or Swiss/Emmental/mozzarella) and have 1/4 cup grated Parmesan or Pecorino Romano ready. Ladle hot soup into ovenproof bowls, top each with 1 or 2 toasted baguette slices, pile on the Gruyere and sprinkle some Parmesan.
- Place bowls on a baking sheet and broil 2 to 5 minutes until cheese is bubbly and golden. Watch closely so it doesn’t burn. If you don’t have ovenproof bowls, broil the toasts with cheese separately and float them on the soup just before serving.
- Remove thyme sprigs and bay leaf, garnish with chopped fresh parsley if desired, serve immediately while piping hot. If you made a vegetarian version remember you omitted Worcestershire and used veg broth and/or extra umami like tamari. Enjoy, it’s worth the wait.
Notes
- Below you’ll find my best estimate of this recipe’s nutrition facts. Treat the numbers as a guide rather than a rule—great food should nourish both body and spirit. Figures are approximate, and the website owner assumes no liability for any inaccuracies in this recipe.
Nutrition Facts
- Serving Size: 549g
- Total number of serves: 6
- Calories: 475kcal
- Fat: 19.2g
- Saturated Fat: 12.5g
- Trans Fat: 0.5g
- Polyunsaturated: 4g
- Monounsaturated: 8g
- Cholesterol: 53mg
- Sodium: 1497mg
- Potassium: 598mg
- Carbohydrates: 45g
- Fiber: 5.1g
- Sugar: 10.3g
- Protein: 19.3g
- Vitamin A: 200IU
- Vitamin C: 18mg
- Calcium: 357mg
- Iron: 1.6mg