A good French onion soup recipe has only four real ingredients: onions, butter, stock and a cheese toast on top. What makes the difference is time. The onions need close to an hour over medium-low heat to turn deep brown, and most recipes that promise “20 minutes” give you a pale, sweet broth instead. Here is the soup for 4, with the timings that matter and the fixes for the usual failures.
At a glance
| Step | Setting | What to look for |
|---|---|---|
| Soften the onions | 3 lb (1.4 kg) onions, 4 tbsp butter, covered, 10 min over medium heat | Onions collapse and release their water |
| Caramelize | Uncovered, medium-low, 40 to 50 min, stirring every 5 min | Even chestnut brown, jammy texture |
| Deglaze and simmer | 1/2 cup dry white wine, then 6 cups stock, 20 min | The browned layer on the bottom dissolves |
| Gratinée | Toasted bread and 1 1/2 cups (150 g) Gruyère, broiler, 2 to 4 min | Bubbling cheese with brown spots |
The ingredients and what they do
Yellow onions are the standard: they have enough sugar to brown well and enough sharpness to keep the soup from tasting like jam. Sweet onions (the large, mild kind) work but give a sweeter soup; red onions turn the broth a muddy color. Three pounds looks like far too much in the pot, but the onions lose about three quarters of their volume.
Butter browns along with the onions and adds a nutty note. A tablespoon of oil with it keeps the butter from burning during the long cooking.
Stock carries the whole soup, so its quality shows. Beef stock is the classic; a mix of beef and chicken stock is lighter. Use low-sodium stock: the soup reduces and the cheese adds salt, so you season at the end.
Dry white wine dissolves the browned layer on the bottom of the pot (that is what deglazing means) and adds acidity to balance the sweetness of the onions. Without wine, use extra stock and a tablespoon of sherry vinegar or cider vinegar at the end.
Gruyère melts smoothly and browns without turning greasy. Comté is very close; Swiss cheese works with a milder taste.
Caramelizing the onions: why it takes 50 minutes
Caramelized onions are not just cooked onions. Their sugars and proteins slowly turn brown and create the deep, slightly bitter-sweet flavor of the soup. Turn the heat up to go faster and the outside burns while the inside stays raw: you get black specks and a bitter taste.
Start covered for 10 minutes. The onions sweat out their water and collapse, which makes the browning stage more even. Then remove the lid and cook over medium-low heat, stirring every 5 minutes at first, then every 2 minutes near the end, when they color fast.
When a brown crust forms on the bottom of the pot, add 2 tablespoons of water and scrape it up with a wooden spoon. That crust is flavor, not burning, as long as it stays brown and not black. The onions are ready when they are an even chestnut color, soft and almost jammy, after 40 to 50 minutes uncovered.
In class, the most common mistake was stopping at golden. Golden onions make a sweet, pale soup; it is the last 15 minutes that give the color and the depth.
The recipe step by step
Slice the onions in half from root to tip, then into thin half-moons, about 1/8 inch (3 mm) thick. Slices of the same thickness brown at the same pace.
Melt the butter with the oil in a heavy pot or Dutch oven over medium heat. Add the onions and 1/2 teaspoon salt, which draws out their water, cover and cook 10 minutes. Uncover, lower the heat to medium-low and caramelize for 40 to 50 minutes as described above.
Add the garlic for the last 2 minutes, then sprinkle the flour over the onions and stir for 1 minute: it will lightly thicken the soup. Pour in the wine and scrape the bottom of the pot until it is clean. Let it bubble 2 minutes.
Add the stock, the thyme and the bay leaf. Bring to a simmer and cook gently, uncovered, for 20 minutes. Remove the herbs, taste, and adjust with salt and pepper.
While the soup simmers, toast the bread slices in the oven at 400°F (200°C) for 8 to 10 minutes, until dry and golden. Dry bread holds its shape on the soup; fresh bread turns to mush.
Heat the broiler. Set four oven-safe bowls on a baking sheet, fill them with hot soup, float the toast on top and cover generously with cheese, all the way to the rim so it seals the bowl. Broil 6 inches (15 cm) from the heat for 2 to 4 minutes, watching closely, until the cheese bubbles and browns in spots.

Recipe
French onion soup recipe
By Lucie Garnier
A French onion soup with slowly caramelized onions, beef stock and white wine, topped with toasted bread and broiled Gruyère.
- Servings
- 4
- Prep time
- 20 min
- Cook time
- 1 hr 25 min
- Total time
- 1 hr 45 min
Ingredients
- 3 lb (1.4 kg) yellow onions (about 5 large)
- 4 tbsp (55 g) unsalted butter
- 1 tbsp neutral oil
- 1/2 tsp salt, plus more to taste
- 2 cloves garlic, minced
- 1 tbsp all-purpose flour
- 1/2 cup (120 ml) dry white wine
- 6 cups (1.4 liters) low-sodium beef stock, or half beef, half chicken
- 3 sprigs fresh thyme
- 1 bay leaf
- black pepper
For the topping
- 8 slices baguette, about 1/2 inch (1 cm) thick
- 1 1/2 cups (150 g) grated Gruyère
Equipment
- heavy pot or Dutch oven
- wooden spoon
- 4 oven-safe soup bowls
- baking sheet
Instructions
- Slice the onions into thin half-moons, about 1/8 inch (3 mm) thick.
- Melt the butter with the oil in a heavy pot over medium heat, add the onions and the salt, cover and cook 10 minutes.
- Uncover and cook over medium-low heat for 40 to 50 minutes, stirring often and scraping the bottom with a little water, until the onions are an even chestnut brown.
- Add the garlic for 2 minutes, then the flour for 1 minute, stirring.
- Pour in the wine, scrape the bottom of the pot clean and boil 2 minutes.
- Add the stock, thyme and bay leaf, then simmer uncovered for 20 minutes. Remove the herbs and season with salt and pepper.
- Toast the bread at 400°F (200°C) for 8 to 10 minutes, until dry and golden.
- Ladle the soup into oven-safe bowls on a baking sheet, top with the toast and the cheese, and broil 2 to 4 minutes, until bubbling and browned in spots.
Bland, bitter or watery: how to fix it
Bland or too sweet: the onions were not brown enough, or the soup lacks salt and acidity. Taste, add salt by pinches, then a teaspoon of sherry vinegar or a splash of dry sherry. Acidity is what makes the onion flavor stand out.
Bitter: some onions burned, usually because the heat was too high or the brown crust on the bottom turned black. You can’t remove that taste completely. A pinch of sugar and a little more stock soften it; next time, lower the heat and deglaze with water as soon as the crust darkens.
Watery: the soup had too much stock for the amount of onions, or the flour was skipped. Simmer it uncovered for 10 more minutes to reduce. The ratio to remember is about 2 cups of stock per pound of raw onions.
Cheese that slides off or stays pale: the bowls were not filled to the top, or the broiler was not hot enough. Fill the bowls so the toast sits level with the rim, let the broiler heat for 5 minutes, and put the rack in the top third of the oven.
No oven-safe bowls?
Put the toasts on a baking sheet, cover them with cheese and broil them on their own for 2 to 3 minutes. Float them on the soup just before serving. You lose the cheese crust stuck to the rim of the bowl, but not the taste.
Making it ahead and storing it
French onion soup is even better the next day, so you can make it through the simmering step one or two days ahead. Keep the toast and cheese for the day you serve it.
Refrigerate the soup within 2 hours of cooking, in a covered container. USDA recommends eating cooked leftovers within 3 to 4 days and reheating them to 165°F (74°C), steaming hot all the way through (guidance checked in November 2026). The soup without bread and cheese freezes well for 3 to 4 months; leave an inch of space in the container, since the liquid expands as it freezes.
Find more everyday dishes in our recipes.
