French Onion Soup with Deeply Caramelized Onions
French onion soup is a simple pot with a long timeline. Onions, butter, broth, bread, and cheese make up almost the whole ingredient list, so the flavor depends on how patiently you cook the onions. This version leaves out the wine and sherry most recipes call for. White grape juice and a spoonful of cider vinegar bring the same gentle sweetness and sharp edge, and no one at my table has noticed the swap.
I made this French onion soup eleven times over five weeks before I stopped changing it. Early batches came out too sweet, then too salty, then thin. The fixes were plain: yellow onions only, medium low heat, a splash of water whenever the pot bottom browned, and low sodium broth so the cheese could do the seasoning.
Plan on 2 hours, most of it hands off. You end up with a dark, savory broth, toast that stays crisp at the edges, and a lid of Gruyère that pulls into long strings.

Table of Contents
Why You Will Love This French Onion Soup
- Every ingredient is easy to find at a regular grocery store.
- Prep takes 20 minutes, then the onions need a stir about every 5 minutes.
- The soup base tastes better on day two, so you can cook ahead and top it at dinner.
- Long cooking turns the onions soft and sweet. My daughter, who picks onions out of everything, finished two bowls and asked for it again three days later.
- There is no alcohol in the pot, yet the broth still tastes deep and clean.
Recipe Snapshot
- Prep Time: 20 minutes
- Cook Time: 1 hour 40 minutes
- Total Time: 2 hours
- Servings: 6
- Difficulty: Easy
- Calories per Serving: About 450
- Key Ingredient or Tool: Yellow onions and a Dutch oven
- Best For: Cold weeknights and weekend dinners
Nutrition Information
- Calories per Serving: About 450
- Protein: 20 g
- Carbs: 42 g
- Fat: 23 g
- Fiber: 5 g
- Sugar: 14 g
- Sodium: 1180 mg
- Serving Size: About 1 cup soup plus topping
- Servings per Recipe: 6
Gruyère supplies more than half the protein, and the onions supply most of the fiber. Sodium runs high because the cheese, bread, and broth all carry salt, so the recipe uses low sodium broth.
Nutrition values are approximate and calculated per serving using standard ingredient amounts. Values may vary based on brands used and portion sizes.
Ingredients
For the Soup
- 4 tablespoons unsalted butter
- 1 tablespoon olive oil
- 3 pounds yellow onions, peeled and sliced 1/4 inch thick (about 6 large)
- 1 teaspoon Diamond Crystal kosher salt
- 3 garlic cloves, minced
- 2 tablespoons all-purpose flour
- 1/2 cup unsweetened white grape juice
- 1 tablespoon apple cider vinegar
- 6 cups low sodium beef broth
- 4 fresh thyme sprigs
- 2 bay leaves
- Freshly ground black pepper, to taste
For the Topping
- 6 baguette slices, 1/2 inch thick (about 1 ounce each)
- 8 ounces Gruyère cheese, shredded (about 2 cups)
Three ingredients decide how this French onion soup tastes. Yellow onions brown without turning sugary, and Vidalia onions turned my batch into candy. Gruyère melts smoothly and tastes nutty. Low sodium broth matters most, since regular broth turns salty once the cheese goes on.
Diamond Crystal is lighter by the teaspoon than Morton, so with Morton use 1/2 teaspoon.
Pro Tip: Freeze the Gruyère block for 15 minutes before shredding. It grates into clean strands instead of smearing.
Substitutions: Swiss, Comté, or Emmental can replace Gruyère. Chicken broth gives a lighter soup. Without grape juice, add 1/2 cup more broth and 1/2 teaspoon more vinegar.

Equipment Needed
- 6 to 8 quart Dutch oven: Wide, heavy walls spread heat evenly.
- Flat edged wooden spoon: It scrapes the browned film loose in one pass.
- Six oven safe soup crocks, 10 to 12 ounces each: Set them on one pan so they move together.
- Rimmed baking sheet: It toasts the bread, then holds the crocks under the broiler.
- Instant read thermometer: It confirms reheated leftovers reach 165°F.
Preparation
- Slice the onions: Halve each onion from root to tip, then slice 1/4 inch thick along the grain.
- Shred the cheese: Grate the Gruyère and refrigerate it until the topping step.
- Measure everything: Mince the garlic and set out the broth, juice, vinegar, thyme, and bay leaves.
- Set the oven: Place a rack 6 inches below the broiler. The oven runs at 400°F for the bread, then switches to broil.
- Line up the gear: Set out the baking sheet and the six crocks.
Step-by-Step Instructions
- Melt the butter with the olive oil in the Dutch oven over medium heat for 2 minutes, until the foam settles. Add the onions and salt, then stir until every slice looks glossy.
- Cook over medium heat for 20 minutes, stirring every 5 minutes, until the onions shrink by half and turn soft and see through. Chef’s Note: Keep the lid off so steam escapes and golden edges can form.
- Lower the heat to medium low and cook 25 to 35 minutes more, stirring every 3 to 4 minutes, until the onions turn deep amber and a brown film coats the pot bottom. Chef’s Note: When that film forms, add 2 tablespoons of water and scrape it loose.
- Stir in the garlic and flour and cook for 2 minutes, until no dry white streaks remain.
- Pour in the grape juice and vinegar and scrape the pot for 2 to 3 minutes, until the liquid cooks down to a sticky glaze.
- Add the broth, thyme, bay leaves, and pepper, bring to a boil over high heat, then simmer uncovered for 30 minutes, until the broth turns the color of strong tea. Chef’s Note: Taste at minute 25, and add 1/4 teaspoon salt only if it tastes flat.
- While the soup simmers, heat the oven to 400°F and toast the baguette slices on the baking sheet for 8 to 10 minutes, flipping once, until they feel dry like croutons and look light gold.
- Remove the thyme and bay leaves, set the crocks on the baking sheet, and ladle in the soup, leaving 1/2 inch of space. Top each with a toast slice and a heaping 1/3 cup Gruyère, letting the cheese touch the rim, until it forms a thick blanket.
- Switch the oven to broil on high and slide the sheet onto the rack 6 inches below the element. Chef’s Note: Stay at the oven, because cheese goes from golden to burnt in under 30 seconds. Broil for 3 to 5 minutes, until the cheese bubbles and shows dark brown spots.
- Use oven mitts to move the crocks to a rack and let them stand for 5 minutes, until the cheese stops bubbling and sets into a stretchy, golden lid.
Make-Ahead Shortcut: Caramelize the onions through step 3 up to 3 days ahead and refrigerate them airtight. On cooking day, warm them for 5 minutes and start at step 4, and dinner is ready in about 55 minutes.

Expert Tips and Tricks
- My mistake: On batch four I raised the heat to medium high at minute 30. The edges scorched, the pot turned bitter, and I started over.
- Make ahead: Shred the Gruyère up to 2 days ahead and keep it covered in the refrigerator. Toast the bread up to 1 day ahead and keep it in a loosely closed bag.
- Time saver: A food processor with a 4 millimeter slicing disk cuts 3 pounds of onions in about 2 minutes.
- Texture: Day old baguette toasts dry faster and stays crisp longer under the broth.
- Technique: A wide pot lets onion liquid evaporate faster, so browning starts near minute 25, not minute 40.
- Storage: Refrigerate leftover French onion soup within 2 hours of cooking and finish it within 3 to 4 days.
Common Mistakes and Troubleshooting
Bitter, scorched onions. High heat or a dry pot burns the sugars. Stay at medium low and add 2 tablespoons of water when the bottom browns. Already burnt? Move the clean onions to a fresh pot.
A sweet, flat broth. Sweet onions or a short cook time leave the soup one note. Use yellow onions and the cider vinegar. To fix a finished pot, stir in 1/2 teaspoon vinegar at a time, tasting after each.
Soggy bread. Fresh slices soak up broth and sink. Toast them for 8 to 10 minutes until dry. If the bread already went mushy, scoop it out and broil freshly toasted slices on top.
Hot cheese, lukewarm soup. The soup cooled while you filled the crocks. Keep the pot at a simmer until you ladle. To rescue cold bowls, tent with foil and bake at 400°F for 8 minutes, then broil.
Thin, watery broth. The lid stayed on, or the onions never cooked down. Simmer uncovered for the full 30 minutes. If the pot still tastes thin, simmer 10 more minutes.

Storage Instructions for French Onion Soup
- Room Temperature: Not recommended. Refrigerate within 2 hours of cooking, or 1 hour above 90°F.
- Refrigerator: Cool the soup without bread or cheese, then keep it in airtight glass containers for 3 to 4 days.
- Freezer: Freeze the base in freezer safe zip bags with 1 inch of headspace for up to 3 months, never with bread or cheese.
- Reheating: Bring the soup to a rolling boil on the stove until it reaches 165°F, adding 1/4 cup broth or water per 2 cups if it thickened. Toast and broil fresh topping each time.
- Make-Ahead Notes: Cook the full base up to 3 days ahead, then add bread and cheese only on serving day.
I freeze the base in 2 cup portions, laid flat in zip bags so they stack like books. One bag thaws overnight in the refrigerator.
Variations and Substitutions
Spicy: Stir 1/2 teaspoon red pepper flakes in with the garlic, and add hot sauce at the table for more heat.
Mild and Kid-Friendly: Swap the Gruyère for mild white cheddar or provolone and skip the thyme. Serve smaller crocks with toast on the side for dipping.
Vegetarian: Replace the beef broth with dark mushroom broth and stir 1 teaspoon tomato paste in with the garlic. Gruyère uses animal rennet, so choose a cheese labeled vegetarian.
Gluten-Free: Skip the flour and thicken at the end with 1 tablespoon cornstarch stirred into 2 tablespoons cold broth. Use gluten-free baguette slices, and check the broth label.
What to Serve With This French Onion Soup
Cucumber salad: A cold, crunchy cucumber salad cuts through the richness of the cheese.
Chicken salad lettuce cups: Spoon creamy chicken salad with grapes and pecans into crisp lettuce cups for a soup and salad lunch.
Mocktail: A fresh mojito mocktail with mint and lime keeps the table alcohol free and refreshes you between bites.
Garnish: Scatter fresh thyme leaves or chopped chives over the melted cheese for color.

Frequently Asked Questions
Can I make French onion soup ahead of time?
Yes, and French onion soup tastes better for it. Cool the finished base within 2 hours and refrigerate it in airtight containers for 3 to 4 days. Toast the bread and shred the cheese on serving day. Reheat the soup to a rolling boil, ladle it into crocks, and broil the toppings fresh. I cook mine on Saturday and serve it midweek.
Why does my French onion soup taste bitter?
Bitterness almost always means scorched onions. Heat above medium low, or a dry pot, burns the sugars, and scraping that black layer into the soup spreads the taste. To rescue it, move the unburnt onions to a clean pot, leave the black film behind, and add 1/2 teaspoon cider vinegar. Next time, add a splash of water whenever the bottom turns dark brown.
What can I use instead of wine in French onion soup?
White grape juice plus cider vinegar is the swap I use in this alcohol free French onion soup. The juice supplies fruit sweetness, and the vinegar adds the sharp edge wine normally brings. Use 1/2 cup juice and 1 tablespoon vinegar for the full pot. With no juice on hand, use 1/2 cup extra broth and 1 tablespoon plus 1/2 teaspoon of vinegar, then taste.
How long does it take to caramelize onions for French onion soup?
Plan on 45 to 55 minutes at medium, then medium low heat, stirring every 3 to 5 minutes and more often near the end. The onions should turn deep amber, shrink to about a quarter of their starting volume, and leave a brown film on the pot bottom. Higher heat saves 10 minutes but costs flavor, and I stopped trying to cheat it after batch four.
Why doesn’t my French onion soup taste like the restaurant’s?
In my tests, the gap came from onion color and broth. Onions pulled off the heat at golden taste like sauteed onions, while deep amber ones taste like the restaurant bowl. Use a good low sodium beef broth, simmer it for 30 minutes with thyme and bay, and taste again after the cheese melts, since Gruyère adds salt of its own.
Final Thoughts on French Onion Soup
The lesson from eleven batches: give the onions their full hour and the pot does the rest. Keep a container of the base in the refrigerator, and dinner is half an hour away: reheat, toast, and broil.
Every time I broil a tray of crocks, the kitchen smells like butter and toasted cheese, and someone wanders in to ask how long until dinner. Make this French onion soup once as written, then change the cheese, the herbs, or the heat to suit your table.
If you loved this recipe, save it to your soup recipes Pinterest board so you can find it easily later!

French Onion Soup with Deeply Caramelized Onions
Ingredients
Equipment
Method
- Melt the butter with the olive oil in the Dutch oven over medium heat for 2 minutes, until the foam settles. Add the onions and salt and stir until every slice looks glossy.
- Cook over medium heat for 20 minutes, stirring every 5 minutes, lid off, until the onions shrink by half and turn soft and see through.
- Lower the heat to medium low and cook 25 to 35 minutes more, stirring every 3 to 4 minutes, until the onions turn deep amber and a brown film coats the pot bottom. When the film forms, add 2 tablespoons water and scrape it loose.
- Stir in the garlic and flour and cook for 2 minutes, until no dry white streaks remain.
- Pour in the grape juice and vinegar and scrape the pot for 2 to 3 minutes, until the liquid cooks down to a sticky glaze.
- Add the broth, thyme, bay leaves, and pepper. Bring to a boil over high heat, then simmer uncovered for 30 minutes, until the broth turns the color of strong tea. Taste at minute 25 and add 1/4 teaspoon salt only if it tastes flat.
- While the soup simmers, heat the oven to 400°F. Toast the baguette slices on the baking sheet for 8 to 10 minutes, flipping once, until they feel dry like croutons and look light gold.
- Remove the thyme and bay leaves. Set the crocks on the baking sheet and ladle in the soup, leaving 1/2 inch of space. Top each with a toast slice and a heaping 1/3 cup Gruyère, letting the cheese touch the rim, until it forms a thick blanket.
- Switch the oven to broil on high with a rack 6 inches below the element. Broil for 3 to 5 minutes, watching closely, until the cheese bubbles and shows dark brown spots.
- Use oven mitts to move the crocks to a rack and let them stand for 5 minutes, until the cheese stops bubbling and sets into a stretchy, golden lid.
Notes
No grape juice? Add 1/2 cup more broth and 1/2 teaspoon more cider vinegar.
Storage: refrigerate the soup base 3 to 4 days or freeze it up to 3 months; add bread and cheese only when serving.



