Classic French Onion Soup Recipe from Scratch
This is the soup that makes people go quiet at the table. A deep, mahogany broth built from onions coaxed low and slow into something almost sweet and entirely savory. A thick slice of toasted baguette floating on top. And then the cheese, pulled and golden, a little crispy at the edges from the broiler. Classic French onion soup from scratch takes some patience, but there's nothing technically difficult about it. If you can stir a pot, you can make this.
Ingredients
Ingredients
Instructions
- Melt the butter with the olive oil in a large, heavy-bottomed pot or Dutch oven over medium heat. Add all the sliced onions and toss to coat. They will look like a mountain. That is normal.
- Sprinkle in the salt and sugar. Cook uncovered, stirring every 5 to 7 minutes, for 45 to 55 minutes. You are looking for deep golden-brown onions that have shrunk down to about one quarter of their original volume. If they start sticking and browning too fast, turn the heat down to medium-low. Do not rush this step. The color is your flavor.
- Add the minced garlic and cook for 2 minutes, stirring constantly, until fragrant.
- Pour in the white wine and scrape up any browned bits from the bottom of the pot. Let it bubble and reduce for about 3 minutes until the wine is mostly absorbed.
- Add the beef broth, Worcestershire sauce, thyme, and bay leaf. Bring to a gentle boil, then reduce to a low simmer. Cook uncovered for 20 minutes. Taste and adjust salt and pepper. Remove the bay leaf.
- While the soup simmers, arrange the baguette slices on a baking sheet. Broil on the top rack for 2 to 3 minutes per side until golden and crisp. Watch them closely. They go from golden to burnt fast.
- Set your oven to broil. Ladle the hot soup into oven-safe crocks or bowls placed on a baking sheet. Lay one or two croutons on top of each bowl so they cover most of the surface.
- Mix the Gruyère and Parmesan together. Pile a generous handful over each bowl, making sure the cheese reaches all the way to the edges of the crock.
- Broil for 3 to 5 minutes until the cheese is bubbling, deeply golden, and has a few dark, crispy spots. Let the bowls sit for 2 minutes before serving. The crocks will be very hot.
Tips & Tricks
The onions are everything. Pale, lightly golden onions will give you a thin, one-dimensional soup. You want them dark, jammy, and almost sticky. If you hit the 30-minute mark and they still look pale, nudge the heat up slightly and keep stirring.
Use freshly grated Gruyère, not pre-shredded. The bagged stuff has anti-caking agents that make it melt unevenly and go grainy. A block and a box grater take two minutes and make a real difference.
Oven-safe crocks are the right call for broiling. Wide, shallow bowls work better than deep narrow ones because you get more surface area for the cheese to cover. If you don't have oven-safe bowls, broil the croutons and cheese on a small baking sheet and slide them onto the soup at the table.
A good broth matters. Homemade is ideal, but a quality store-bought low-sodium beef broth works fine. Avoid anything that smells tinny straight from the carton.
Variations
Add more depth with cognac. Swap the white wine for 3 tablespoons of cognac or brandy. Add it after the garlic and let it cook off for 1 minute before adding the broth. It adds a warm, slightly sweet complexity.
Make it vegetarian. Use a dark, rich vegetable broth in place of beef broth. A tablespoon of soy sauce and a teaspoon of balsamic vinegar bring back some of the depth you lose without the beef base.
Try a cheese blend. Gruyère is the classic, but a mix of Gruyère, Swiss, and a little sharp provolone is delicious. Fontina also melts beautifully if you want something milder.
Go French onion chicken. Pour the finished soup (without the croutons and cheese) over seared chicken thighs in a baking dish, top with croutons and Gruyère, and bake at 400°F for 25 minutes. A full dinner in one pan.
Storage & Make Ahead
The soup base keeps well in the refrigerator for up to 4 days in an airtight container. The flavor actually deepens overnight, so making it a day ahead is a genuinely good idea. Reheat gently on the stovetop, then assemble the bowls with fresh croutons and cheese just before broiling.
The soup also freezes well for up to 3 months. Freeze it in individual portions so you can pull out exactly what you need. Thaw overnight in the fridge and reheat before topping.
Don't store assembled bowls with the bread and cheese. The crouton turns soggy and the cheese goes rubbery. Always broil fresh right before serving.
Affiliate link
Affiliate link
Frequently Asked Questions
Yellow onions are the classic choice and the best all-around option. They have the right balance of sweetness and sharpness that caramelizes beautifully over low heat. Sweet onions like Vidalia also work well and go a little sweeter. Red onions can be used in a pinch but turn the broth an odd color. Avoid white onions, which tend to be sharper and don't caramelize as smoothly.
Properly caramelized onions take 45 to 55 minutes over medium to medium-low heat. Any recipe telling you 15 to 20 minutes is cutting corners. The long, slow cook is what converts the natural sugars in the onions into that deep, sweet, savory flavor that makes the soup so good. Be patient, stir every few minutes, and don't turn the heat up to rush it.
Yes. The wine adds acidity and depth but it is not irreplaceable. You can substitute with an equal amount of extra broth plus a teaspoon of apple cider vinegar or a small splash of balsamic vinegar. Both options bring back some of the brightness the wine provides. The soup will still be rich and delicious.
Gruyère is the traditional choice and for good reason. It melts smoothly, browns beautifully under the broiler, and has a nutty, slightly salty flavor that pairs perfectly with the sweet onions. Swiss cheese is a more affordable substitute with a similar melt. A mix of Gruyère and Parmesan adds extra savory depth. Avoid soft cheeses like mozzarella, which go stretchy but don't develop the golden, crispy top you want.


