Classic French Onion Soup
French onion soup asks for very little: onions, butter, stock, a splash of wine, bread and cheese. What it needs is time. The onions have to cook slowly for about an hour, until they shrink to a quarter of their volume and turn a deep, sticky brown. All of the soup’s sweetness and depth comes from that browning, and there’s no shortcut that gives quite the same result.
The good news is that the slow part needs little attention, and the soup can be made days ahead. On the day, you only need to heat it, float the toasts and melt the cheese under the grill.
Serves 4 as a main course or 6 as a starter. Allow 20 minutes of prep and about 1 hour 45 minutes of cooking.
Ingredients
For the soup
- 1.4 kg (3 lb) yellow onions, about 6 large
- 3 tbsp (45 g) unsalted butter
- 1 tbsp (15 ml) olive oil
- 1 ½ tsp fine sea salt, divided, plus more to taste
- 120 ml (½ cup) dry white wine, such as Sauvignon Blanc or Picpoul
- 1 tbsp (8 g) plain flour (optional)
- 1.5 litres (6 cups) good beef stock, or half beef and half chicken stock
- 4 sprigs fresh thyme, or ½ tsp dried
- 1 bay leaf
- ½ tsp freshly ground black pepper
- 1–2 tbsp (15–30 ml) dry sherry or brandy (optional)
- 1 tsp sherry vinegar or red wine vinegar, if needed
For the toasts and topping
- ½ baguette (about 120 g / 4 oz), cut into 1.5 cm (½ in) slices
- 1 tbsp (15 ml) olive oil
- 200 g (7 oz) Gruyère, coarsely grated (about 2 cups)
- 25 g (¼ cup) finely grated Parmesan (optional)
The first hour: caramelising the onions
Cut the onions in half from root to tip, peel them, and slice them 3–5 mm (⅛–¼ in) thick, along the grain, from root to tip. Slicing this way helps the strips keep some shape instead of dissolving into a purée. It will look like a huge pile, but it cooks down to about 2 cups.
- Melt the butter with the oil in a large, heavy pot (5 litres / 5 quarts or more) over medium heat. Add the onions and 1 tsp of the salt, and stir to coat.
- Cover the pot and cook for 10–15 minutes, stirring once or twice, until the onions have softened, released their liquid and collapsed by about half.
- Uncover, and turn the heat to medium-low. Cook for 45–60 minutes more, stirring every 5 minutes at first and more often as they darken. A brown film, the fond, will form on the bottom of the pot. When it gets dark, add 2–3 tbsp water and scrape it back into the onions. Repeat as often as needed.
- The onions are ready when they’re a deep chestnut brown, very soft and jammy, and taste sweet. They should not taste bitter or look black anywhere.
A few things that help. Use a heavy pot with a wide base; thin pans scorch in spots. Don’t add sugar; onions have plenty of their own, and sugar burns. If you push the heat to speed things up, the outside chars before the sugars inside develop, which gives you bitter, scorched onions. You can cook them in the oven instead: after the covered stage, transfer the pot, uncovered, to a 200°C (400°F) oven for about 1 to 1 ½ hours, stirring and scraping every 20 minutes.
The second part: building the soup
- Add the wine to the onions and scrape the bottom of the pot. Simmer for 2–3 minutes until the wine has nearly disappeared.
- If using flour, sprinkle it over the onions and stir for 1 minute. It gives the soup a little more body; leave it out for a gluten-free soup.
- Add the stock, thyme, bay leaf, pepper and remaining ½ tsp of salt. Bring to a boil, then reduce the heat and simmer, partly covered, for 25–30 minutes, so the flavours come together.
- Remove the thyme stalks and bay leaf. Stir in the sherry or brandy, if using, and simmer 1 minute. Taste. If it seems flat, add the vinegar a few drops at a time, and adjust the salt.
Toasts and the cheese crust
- While the soup simmers, heat the oven to 180°C (350°F). Brush the bread slices lightly with oil and bake on a tray for 10–12 minutes, turning once, until dry and crisp right through, like croutons. Dry toast soaks up broth without falling apart; soft bread turns to mush.
- Turn the oven grill (broiler) to high. Set 4 oven-safe soup bowls or crocks on a baking sheet and ladle in the hot soup, leaving about 2 cm (¾ in) at the top.
- Float 2–3 toasts on each bowl, covering the surface. Pile on the Gruyère, letting some fall over the edges, and top with the Parmesan.
- Grill, 10–15 cm (4–6 in) from the heat, for 3–5 minutes until the cheese is bubbling and browned in spots. Watch closely, since grills vary a lot. Let the bowls stand for a few minutes before serving; they’ll be extremely hot.
No oven-safe bowls? Put the cheese on the toasts on a tray, grill them until melted and bubbling, then float them on bowls of soup.
The stock matters
The stock makes up most of the soup, so its flavour shows. Homemade beef stock is best. With shop-bought stock, choose a low-sodium one, since it reduces and the cheese adds salt; mixing beef and chicken stock gives a more balanced flavour than boxed beef stock alone. In France, the soup is also made with chicken stock or even water, relying entirely on the onions.
For a vegetarian version, use a rich vegetable stock with 1 tbsp soy sauce and a few dried mushrooms simmered in it, and check that your cheese is made with vegetarian rennet. Traditional Gruyère is not.
Common problems
- Bitter soup: the onions burned, or the fond was left too long and blackened. Lower the heat and deglaze more often.
- Thin, sweet soup: the onions weren’t brown enough, or the stock is weak. A few drops of vinegar and some salt can help balance it.
- Too salty: add water or unsalted stock, then simmer briefly.
- Soggy toast: bake the slices longer so they’re dry, and make sure the soup is hot when the cheese goes on so it melts quickly.
- Rubbery cheese: it stayed under the grill too long. It should be bubbly, not dry and hard.
Make ahead, freezing and reheating
Caramelised onions keep in the fridge for up to 5 days and freeze well, so you can cook a big batch on a quiet afternoon. The finished soup, without the toasts and cheese, keeps for 4 days in the fridge and up to 3 months in the freezer. The flavour gets better on the second day.
Thaw frozen soup overnight in the fridge. Reheat it in a pan until it’s simmering, then top and grill as above. Make the toasts on the day, or bake them ahead and keep them in an airtight tin for up to 3 days.
Serving
As a main course, this soup needs little more than a green salad with a sharp mustard vinaigrette. Served in small cups as a starter, it goes before almost anything. Something light and quick works well afterwards, such as our air fryer salmon bites, or one of our easy chicken dinners.
If you’re making soup for cold evenings, our Turkish red lentil soup is a much quicker option, ready in about 40 minutes with pantry ingredients.

Classic French Onion Soup
Ingredients
- 1.4 kg yellow onions 3 lb, about 6 large, halved and sliced 3–5 mm / ⅛–¼ in thick, root to tip
- 3 tbsp unsalted butter 45 g
- 1 tbsp olive oil 15 ml
- 1 ½ tsp fine sea salt divided, plus more to taste
- 120 ml dry white wine ½ cup
- 1 tbsp plain flour 8 g, optional
- 1.5 litres beef stock, or half beef and half chicken stock 6 cups
- 4 sprigs fresh thyme or ½ tsp dried
- 1 bay leaf
- ½ tsp freshly ground black pepper
- 1–2 tbsp dry sherry or brandy 15–30 ml, optional
- 1 tsp sherry vinegar or red wine vinegar if needed
- ½ baguette 120 g / 4 oz, sliced 1.5 cm / ½ in thick
- 1 tbsp olive oil 15 ml
- 200 g Gruyère 7 oz, coarsely grated, about 2 cups
- 25 g finely grated Parmesan ¼ cup, optional
Instructions
- Melt the butter with the oil in a large heavy pot over medium heat. Add the onions and 1 tsp salt, cover and cook 10–15 minutes until collapsed by about half.
- Uncover, reduce to medium-low and cook 45–60 minutes, stirring regularly and deglazing with 2–3 tbsp water whenever the bottom browns, until deep chestnut brown and jammy.
- Add the wine and simmer 2–3 minutes until nearly gone. Stir in the flour, if using, for 1 minute.
- Add the stock, thyme, bay, pepper and remaining salt. Simmer partly covered 25–30 minutes.
- Remove the herbs. Add the sherry or brandy and simmer 1 minute. Season, adding vinegar a few drops at a time if needed.
- Meanwhile, brush the bread with oil and bake at 180°C (350°F) for 10–12 minutes, turning once, until dry and crisp.
- Heat the grill (broiler) to high. Ladle the hot soup into oven-safe bowls on a baking sheet, float the toasts on top, and cover with Gruyère and Parmesan.
- Grill 10–15 cm (4–6 in) from the heat for 3–5 minutes until bubbling and browned in spots. Rest a few minutes before serving.
Notes
Photo: Maria Isabelle Warren on Pexels
