French Onion Soup
French onion soup is an exercise in patience that pays off in spectacular fashion. Four pounds of onions cook down slowly into a sweet, deeply caramelized base that gives the broth its signature mahogany color and complex sweetness. Topped with crusty bread and a thick layer of bubbling Gruyere, this is pure comfort in a bowl. Don't rush the onions — they are the entire recipe.
Prep Time
15 min
15 min
Cook Time
75 min
75 min
Total Time
90 min
90 min
Servings
4
4
Ingredients
- 4 lbs (1.8 kg) yellow onions (about 6 large), thinly sliced
- 4 tablespoons unsalted butter
- 1 tablespoon olive oil
- 1 teaspoon sugar
- 1 teaspoon salt
- 2 cloves garlic, minced
- 1/3 cup dry white wine or dry sherry
- 2 tablespoons cognac or brandy (optional but recommended)
- 6 cups beef broth (preferably low-sodium)
- 2 cups chicken broth
- 2 bay leaves
- 4 sprigs fresh thyme (or 1 teaspoon dried)
- 1 tablespoon Worcestershire sauce
- 4-8 thick slices French baguette, toasted
- 8 oz Gruyere cheese, grated
- 2 oz Parmesan cheese, grated
- Black pepper to taste
Instructions
- Caramelize the onions. Melt butter with olive oil in a large Dutch oven or heavy pot over medium heat. Add all the sliced onions, sugar, and salt. Stir to coat. Cook for 45-55 minutes, stirring every 5 minutes, lowering the heat if they start to burn. The onions should become deeply caramelized — dark amber, sweet, jammy, and reduced from a mountain to about 2 cups. This step cannot be rushed.
- Deglaze. Add the minced garlic and cook for 1 minute. Pour in the white wine and cognac (if using), scraping up all the browned bits (fond) stuck to the bottom — this is concentrated flavor. Let the alcohol cook off for about 2 minutes.
- Build the broth. Add beef broth, chicken broth, bay leaves, thyme sprigs, and Worcestershire sauce. Bring to a simmer and cook for 20 minutes to meld the flavors. Remove and discard the bay leaves and thyme stems. Taste and adjust seasoning — add pepper and more salt if needed.
- Prepare for broiling. Preheat your oven's broiler on high. Ladle the hot soup into oven-safe crocks or ramekins, filling about 3/4 full. Place 1-2 slices of toasted baguette on top of each (they should fit snugly across the opening), then generously pile on the mixed Gruyere and Parmesan.
- Broil. Set the crocks on a sheet pan and broil 4-6 inches from the heating element for 3-5 minutes. Watch the cheese constantly — it should be bubbly, melted, and beautifully spotted with golden-brown marks. The cheese will cascade down the sides of the bowl.
- Cool and serve. Let sit for 5 minutes before serving — the crocks are dangerously hot. Warn your guests. Serve with extra crusty bread on the side.
Pro Tips
- Low and slow wins the race. High heat will burn the onions instead of caramelizing them. Keep the heat at medium or medium-low and be patient. The difference between 30-minute and 50-minute onions is the difference between a good soup and a transcendent one.
- Mix your broths. Pure beef broth can be overwhelming. The combination of beef and chicken creates a more balanced, nuanced flavor.
- Use oven-safe crocks. Regular bowls can shatter under the broiler. Le Creuset, Staub, or any stoneware crocks designed for oven use work perfectly.
- Toast the bread first. If you skip toasting, the bread will disintegrate into mush under the cheese. Give the baguette slices 5 minutes in a 400°F oven until dried and golden on both sides.
Variations
- Vegetarian version: Replace beef broth with rich mushroom broth. Add 1 tablespoon of soy sauce or miso paste for extra umami depth. Use a vegan Gruyere-style cheese or Emmentaler.
- Beer cheese version: Replace the white wine with a dark Belgian ale or stout. Use sharp cheddar instead of Gruyere for a pub-style twist.
- Slow cooker method: Caramelize the onions on the stovetop (this step still can't be skipped), then transfer to a slow cooker with the remaining soup ingredients. Cook on low for 4-6 hours. Broil the cheese in crocks at the end.
Nutrition Facts
Per serving (approximate)
| Calories | 450 kcal |
|---|---|
| Fat | 24g |
| Carbohydrates | 38g |
| Protein | 22g |
| Fiber | 4g |