This is a slow-cooked beef broth soup built on a base of deeply caramelized Spanish onions, finished with red wine and a bouquet garni, then topped with garlic-rubbed baguette croutons and a full layer of melted Gruyère. It takes about two hours start to finish, and most of that time is hands-off. If you want a soup that genuinely tastes like it took effort — because it did — this is a reliable, repeatable recipe to have in your back pocket.
Shopping notes
- Gruyère: Buy it as a block and shred it yourself. Pre-shredded Gruyère is coated in starch and melts unevenly. You need about half a pound (225g).
- Spanish onions: These are the large, mild yellow onions with papery golden skin. Standard yellow onions work fine if that’s what’s available.
- Beef stock: Homemade gives the best result, but a good low-sodium store-bought stock is a solid substitute. Avoid regular-sodium stock — the broth reduces and concentrates, and it will end up too salty.
- Red wine: Use something you’d actually drink. A basic Côtes du Rhône or Merlot works well. No need to spend more than you’d spend on a weeknight glass.
- Baguette: A day-old baguette is ideal — slightly stale bread holds up better under the broth and cheese without going completely soggy.
Why this recipe works
The two things that make or break this soup are the onion caramelization and the steeping step for the broth. Cooking the onions low and slow for 40 to 50 minutes — without rushing them over high heat — breaks down their natural sugars until they turn a deep amber and become almost jammy. That sweetness is what gives the soup its body and depth. The second step, simmering the beef stock with the bouquet garni before the onions go in, means the broth is already flavored before everything comes together. You’re not relying on a long combined simmer to build flavor from scratch — the broth is doing its own work in parallel.
Mistakes to avoid
- Turning up the heat to speed up the onions: High heat steams and then burns the onions instead of caramelizing them. If the pan looks dry, add a small splash of water and keep the heat low. Patience here is the whole recipe.
- Skipping the flour step: The flour added to the caramelized onions thickens the soup just enough so it has body rather than being thin and watery. Don’t skip it, and make sure you cook it for a full minute before adding liquid so it doesn’t taste raw.
- Using the wrong oven-safe bowls: Standard soup bowls will crack under the broiler. Use proper oven-safe crocks or ramekins rated for high heat. If you’re not sure, check the bottom of the bowl.
- Not drying out the croutons enough: If the baguette slices are still soft in the middle when they go on top of the soup, they’ll turn to mush under the cheese. They should be fully toasted and firm all the way through before broiling — skip the garnish of fresh parsley on top too, it’s not worth the extra dish.
- Adding wine to a cold pan: Pour the wine in after the flour has cooked and the pan is hot. Adding it cold slows everything down and can make the onions watery. Let it bubble and reduce for a couple of minutes before the stock goes in.
French Onion Soup
Ingredients
- 2 quarts beef stock homemade preferred but low sodium store-bought beef stock works as well
- 3 large Spanish onions finely sliced
- 1 bouquet Garni tied in cheesecloth (next 5 ingredients)
- 4 sprigs thyme
- 4 sprigs parsley
- 4 cloves garlic peeled
- 10 whole peppercorns
- 1 piece bay leaf wrapped
- ½ cup butter
- 1 piece baguette sliced into half-inch slices
- 1 cup red wine
- ½ pound Gruyere cheese shredded
- ¼ cup all-purpose flour
- 2 teaspoons parsley finely chopped
- 3 cloves garlic peeled
- 2 tablespoons olive oil Extra virgin (for brushing bread)
- salt to taste
- freshly ground black pepper to taste
Instructions
- Preheat oven to 350°F / 175°C (160°C fan-forced).
- Brush the slices of bread with some olive oil and place them on a parchment-lined cookie sheet.
- Bake for about 8 minutes, turn them over and bake for another 5 minutes.
- Take them out and let them cool slightly; while still warm, rub each piece of bread with the peeled garlic cloves on both sides and set aside.
- In a large pot, bring the beef broth and bouquet garni to a simmer over medium heat, then turn off the heat and let steep while you prepare the onions.
- In a large heavy-bottomed pot or Dutch oven, melt the butter over medium heat. Add the sliced onions and a few generous pinches of salt. Cook slowly for 40-50 minutes, stirring every few minutes, until the onions are a deep golden-brown colour and very soft. Reduce heat to medium-low if they begin to darken too quickly.
- Once the onions are deeply caramelized, add freshly ground black pepper and the flour. Stir constantly and cook for about 3-4 minutes to cook out the raw flour taste, then pour in the red wine.
- Reduce the wine by half and slowly start adding the stock; bring the entire mixture to a boil and simmer for 30 minutes; taste and adjust seasoning.
- Preheat the broiler (grill) to high. Place 4 oven-safe crocks or ramekins on a rimmed baking sheet and ladle the hot soup into each bowl, filling to about ¾ full.
- Float 3 to 4 pieces of garlic bread per bowl and top with a handful of Gruyere cheese.
- Broil until golden brown, which is about 3 to 4 minutes.
- Carefully remove from the broiler — the bowls will be extremely hot. Sprinkle with chopped fresh parsley. Set each bowl on a small plate or saucer lined with a damp paper towel to prevent sliding. Serve immediately.
Nutrition
Your questions, answered
Can I make French onion soup ahead of time?
Yes — the soup base (without the croutons and cheese) keeps well in the fridge for up to 4 days and actually tastes better the next day. Reheat it on the stovetop, then ladle into oven-safe bowls, add the croutons and cheese, and broil just before serving.
What can I use instead of Gruyère?
Comté is the closest substitute and melts just as well. Swiss cheese works in a pinch, though it’s milder. Avoid mozzarella — it goes stringy and bland rather than giving you that nutty, slightly salty crust.
How do I know when the onions are actually done?
They’re ready when they’ve shrunk to roughly a quarter of their original volume and turned a deep golden-brown — not pale yellow, not blonde, but a true amber. If they still look translucent or light, keep going.
Can I make this without wine?
Yes. Replace the red wine with an equal amount of extra beef stock plus a tablespoon of Worcestershire sauce for a bit of the same depth. The flavor will be slightly less complex but still very good.
What to cook next
- Rustic French garlic-herb pork chops
- Authentic French bread
- Creamy New England clam chowder
- French chocolate mousse


















































