A crock of homemade French onion soup topped with toasted baguette and golden broiled Gruyère cheese, steam rising from a rustic wooden table

French Onion Soup Recipe: Worth Every Tear

Quick Answer

French onion soup is made by slowly caramelizing onions for 45-60 minutes, building a rich broth with beef stock and wine, then topping toasted bread slices with Gruyère and broiling until bubbly. The full process takes about 90 minutes but most of that is hands-off.

I moved into a new apartment in November and the first Sunday I was there I decided to make French onion soup partly because I wanted something warm and partly because I had unpacked the kitchen first and it was the only room that felt settled. I had nowhere to be. It was raining. The combination seemed to call for something that took a long time.

The onions took forty-five minutes to caramelize properly, which felt excessive until they were done and I understood what all of that time was doing. The color goes from white to pale gold to a deep amber-brown as the sugars in the onion slowly concentrate and transform. At each stage they lose more moisture and gain more complexity. Rushed onions are sweet and slightly flabby. Properly caramelized onions are almost meaty, with a depth that you could not get faster no matter how you tried.

The broth needs to be a real beef broth, not water with beef flavoring. Add a splash of white wine or sherry to the onions after they've caramelized, let that reduce, then add the broth and simmer. The soup that comes out of this is nothing like a soup that just has the ingredients. The flavors have had time to become one thing.

The apartment smelled like something good for hours. The soup went into bowls, the baguette went on top, the Gruyère went under the broiler. Nobody else was there and I ate it standing over the counter while it was still hot. That was one of the better nights of that first month in the new place.

Prep15 minutes
Cook75 minutes
Total90 minutes
Serves4 servings
DifficultyMedium

Ingredients

  • 3 lbs (about 6 medium) yellow onions, halved and thinly sliced
  • 4 tablespoons unsalted butter
  • 1 tablespoon olive oil
  • 1 teaspoon kosher salt, plus more to taste
  • 1/2 teaspoon granulated sugar
  • 3 cloves garlic, minced
  • 1/2 cup dry white wine (such as Sauvignon Blanc or Pinot Grigio)
  • 2 tablespoons all-purpose flour
  • 6 cups good-quality beef broth (low-sodium preferred)
  • 1/2 cup water
  • 2 teaspoons fresh thyme leaves (or 3/4 teaspoon dried thyme)
  • 1 bay leaf
  • 1 tablespoon dry sherry or cognac (optional but recommended)
  • Black pepper to taste
  • 4 thick slices of baguette or crusty French bread (about 3/4-inch thick)
  • 1 1/2 cups freshly grated Gruyère cheese (about 5-6 oz)
  • 2 tablespoons freshly grated Parmesan cheese

Instructions

  1. 1In a large Dutch oven or heavy-bottomed pot, melt the butter with the olive oil over medium heat. Add the sliced onions and toss to coat. Sprinkle with 1 teaspoon salt and the sugar. The sugar speeds caramelization —? that's the only reason it's there, not because this is dessert.
  2. 2Cook the onions over medium to medium-low heat, stirring every 5-8 minutes, for 45-60 minutes. Do not rush this. They should turn deep golden-amber, jammy, and sweet. If they start sticking, add a splash of water and scrape up the browned bits —? those bits are flavor. If they're browning in 20 minutes, your heat is too high and you should turn it down.
  3. 3Once onions are deeply caramelized, add the minced garlic and cook for 1-2 minutes until fragrant.
  4. 4Pour in the white wine and stir, scraping up any browned bits from the bottom of the pot. Let it simmer for 2-3 minutes until the wine is mostly absorbed.
  5. 5Sprinkle the flour over the onions and stir well to coat evenly. Cook for 1-2 minutes to eliminate the raw flour taste.
  6. 6Gradually pour in the beef broth and water, stirring constantly. Add the thyme, bay leaf, and a few grinds of black pepper. Bring to a boil, then reduce heat and simmer uncovered for 20 minutes.
  7. 7Stir in the sherry or cognac if using. Taste and adjust salt and pepper. Remove the bay leaf. The broth should taste rich, savory, and deeply onion-forward.
  8. 8While the soup finishes, preheat your oven broiler. Place bread slices on a baking sheet and toast under the broiler for 1-2 minutes per side until golden and firm. Watch them —? the broiler has no patience.
  9. 9Ladle hot soup into 4 oven-safe crocks or bowls, filling about 3/4 full. Place a toasted bread slice on top of each. Divide the Gruyère evenly over the bread, then sprinkle Parmesan on top.
  10. 10Place the filled crocks on a rimmed baking sheet (this saves your oven from any overflow) and broil 4-6 inches from the heating element for 2-4 minutes, until the cheese is melted, bubbling, and spotted with golden-brown patches. Serve immediately and warn people that the bowls are extremely hot.

Pro Tips

  • Yellow onions are the move for this recipe —? they have the right sugar content for deep caramelization. Sweet onions go mushy; red onions go strange. Stick with yellow.
  • Grate your own Gruyère. Pre-shredded cheese has a coating on it that makes it melt like it's annoyed at you. Fresh-grated melts clean, pulls long, and behaves.
  • If you don't have oven-safe crocks, use any oven-safe bowl —? or skip the broiling, ladle the soup into regular bowls, and just melt the cheese on the toast separately under the broiler before floating it on top. Still excellent. Slightly less dramatic. Your kitchen, your rules.

Substitutions

beef broth → vegetable broth Makes a fully vegetarian version. Use a rich, dark vegetable broth for depth —? thin broth will taste watery. A splash of soy sauce or Worcestershire (use vegan Worcestershire for fully vegetarian) adds umami.
Gruyère cheese → Swiss cheese or Comté Swiss is milder but melts beautifully. Comté is the closest match in flavor if you can find it. Mozzarella works for melt but loses most of the flavor complexity.
dry white wine → additional beef broth If cooking without alcohol, just sub equal amounts of broth and add a small splash of white wine vinegar at the end for brightness.
baguette slices → any sturdy crusty bread Sourdough works great. Avoid soft sandwich bread —? it turns to mush before the cheese even has a chance.

Storage Instructions

Store leftover soup (without the bread and cheese topping) in an airtight container in the refrigerator for up to 4 days. The soup freezes well for up to 3 months —? freeze in individual portions for easy reheating. Reheat on the stovetop over medium heat. Make fresh toast and add fresh cheese each time you serve; reheating assembled bowls results in soggy bread.

Make Ahead

The soup base —? onions, broth, everything except the bread and cheese —? can be made up to 3 days ahead and refrigerated. The flavor actually improves overnight. When ready to serve, reheat the soup on the stovetop, toast fresh bread, and broil with cheese as directed.

Frequently Asked Questions

How long does it really take to caramelize onions for French onion soup?

Honestly? 45 to 60 minutes at medium to medium-low heat. Any recipe telling you 15-20 minutes is either lying or serving you something different. Deeply caramelized onions are jammy, golden-brown, and sweet —? not just softened and pale. Low heat and patience are the entire point. Set a timer, stir every few minutes, and let them do their thing.

Can I make French onion soup without wine?

Yes. Replace the white wine with an equal amount of beef broth or vegetable broth, and add a small splash of white wine vinegar (about 1 teaspoon) at the end of cooking to replicate the brightness wine provides. The soup will still taste rich and deeply savory —? you'll just be skipping the alcohol, not the depth.

Why does my French onion soup taste bland?

Three likely culprits: the onions weren't caramelized long enough and didn't develop their natural sweetness; the broth is low-quality or too diluted; or you under-seasoned. Taste aggressively at the end and adjust salt. A splash of sherry or cognac at the finish also dramatically brightens the flavor. Good broth matters here more than in most soups.

Can I make French onion soup ahead of time?

The soup base makes ahead beautifully —? up to 3 days in the fridge, or 3 months frozen. The flavors deepen overnight, which is one of the better things that can happen in your refrigerator. Just don't assemble with the bread and cheese until you're ready to serve. Toast fresh bread each time and broil fresh cheese. Pre-assembled leftovers get soggy fast.

How do I store and reheat leftover French onion soup?

Store the soup base (without bread or cheese) in an airtight container in the refrigerator for up to 4 days, or freeze for up to 3 months. Reheat on the stovetop over medium heat until steaming through. When ready to serve, toast fresh baguette slices, top with Gruyère, and broil as directed. The soup itself reheats perfectly; the bread situation needs to start fresh every time.

Can I make French onion soup vegetarian?

Yes, and it's very good. Swap beef broth for a rich, dark vegetable broth —? not the pale watery kind. Add a tablespoon of soy sauce or a teaspoon of miso paste to the broth for umami depth. Use vegan Worcestershire if you want it fully plant-based. The caramelized onions carry so much flavor that a quality vegetable broth gets you surprisingly close to the original.

What if I don't have oven-safe crocks for broiling?

No crocks, no problem. Use any oven-safe bowls you have —? just make sure they can handle broiler heat. Alternatively, toast your baguette slices in the oven, pile Gruyère on top, and broil them on a baking sheet until melted and golden. Then float the cheesy toasts directly on top of soup you've already ladled into regular bowls. Less dramatic, equally delicious.

Can I use red onions instead of yellow onions?

You can, but the result is noticeably different. Red onions have a sharper, more bitter edge that doesn't fully mellow even with long caramelization, and they turn a purple-gray color that looks a little unsettling in soup. Yellow onions are traditional for a reason —? they have the ideal sugar content and flavor profile for this dish. Sweet onions (like Vidalia) work but tend to go very soft and lose their texture.