
French onion soup is two ingredients doing all the work: onions and stock. There is nowhere to hide. Done properly it is dark, sweet, savory and slightly winey under a lid of bread and melted cheese, and it tastes like far more than it costs.
Difficulty is easy in technique and hard in patience. Nothing here is skilled work. But you are going to stand at a stove and stir onions for the better part of an hour, and there is no way around that.
Which brings me to the honest part. Recipes that tell you onions caramelize in ten or fifteen minutes are wrong, and following one is the single most common reason home French onion soup disappoints. In ten minutes onions are golden and still sharp. Real caramelization, where they collapse into something jammy and deeply sweet, takes 45 to 60 minutes over moderate heat. Budget that time or make something else.
This makes four servings.
Equipment
Three pieces do the work here, and I stock all three.
- 5 Quarts Round Dutch Oven with Lid. This is the recipe where the pot genuinely decides the outcome. You need a wide heavy base that holds steady moderate heat for an hour without hot spots. A thin pan scorches the onions in patches while the rest stay pale, and scorched is not caramelized.
- Handmade Damascus Western Chef Knife Set. You are slicing three pounds of onions thin and even, and even is what matters, because uneven slices means some are burnt before others have softened. A sharp blade also ruptures fewer cells, which means noticeably less crying.
- Two-Tone XL Cutting Board, 18 by 12 Inch. Three pounds of sliced onion is a surprising volume. On a small board you will be pushing piles around instead of cutting.
You will also need oven safe bowls or crocks that can go under a broiler, a baking sheet, and a wooden spoon. I do not stock ovenproof crocks, and a wide shallow ramekin will do the job.
Ingredients
- 3 pounds yellow onions, halved and sliced 1/4 inch thick
- 4 tablespoons unsalted butter
- 1 tablespoon olive oil
- 1 teaspoon salt, for drawing water from the onions
- 2 cloves garlic, minced
- 1/2 cup sherry wine
- 2 tablespoons burgandy wine
- 8 cups good beef stock
- 2 sprigs fresh thyme
- 1 bay leaf
- 1 teaspoon paprika
- 1 teaspoon sherry vinegar
- Salt and black pepper, to taste
- 8 slices day old baguette, about 1/2 inch thick
- 8 ounces Gruyere, grated or sliced
Method
Before you start
Set up your mise en place. Slice all the onions before you turn the heat on. Once caramelization starts you are committed to the pot.
Buy better stock than you think you need. This soup is onions and stock. If the stock is thin and salty, the soup will be thin and salty, and no amount of caramelizing fixes it. Homemade is best, a good quality low sodium boxed stock is acceptable, and bouillon cubes are not. Low sodium specifically, because you are going to reduce it.
Slice the onions evenly. Halve them through the root, sit each half flat, and slice about a quarter inch thick. Even thickness matters more than the exact measurement, because thin slices burn while thick ones are still raw in the same pan.
Caramelize the onions
Start them with salt. Melt the butter with the oil over medium heat, add all the onions and the teaspoon of salt, and stir to coat. They will fill the pot to the rim and that is correct. The salt draws water out, which is the first stage of the process.
Cook covered for 15 minutes. They will collapse dramatically and release a lot of liquid. This softens them before any browning starts, and it is why the pot goes from overfull to half empty.
Uncover and cook down for 45 to 60 minutes. Lower the heat slightly and stir every few minutes. First the liquid cooks off, then the onions begin to color, then they darken slowly and steadily. You are looking for a deep mahogany brown and a jammy, collapsed texture, and the smell should turn sweet rather than sharp. This is the whole recipe, and the finished volume will be roughly a fifth of what you started with.
Deglaze with water whenever the fond gets dark. A brown film builds on the base of the pot, which is exactly what you want, but it will burn if left too long. Every ten minutes or so, splash in a tablespoon or two of water and scrape it up into the onions. That film is flavor and this is how you get it into the soup instead of onto a scouring pad.
Add the garlic at the very end. One minute, no longer. Garlic added at the start would have burned to nothing an hour ago.
Build the soup
Deglaze with the sherry and burgandy. Pour them in and scrape the base clean, then let it reduce until the pot smells sweet rather than sharp and almost nothing is left, about 3 minutes.
Add the stock and simmer. Pour in the stock, add the thyme and bay leaf, bring to a gentle simmer and hold it for 30 minutes uncovered. It will reduce slightly and concentrate. Taste it now, because this is the soup, and the cheese on top will not rescue it if it is flat.
Finish with vinegar, then season. Stir in the sherry vinegar. An hour of caramelized onion is intensely sweet and needs acid behind it, and this teaspoon is the difference between rich and cloying. Then salt and pepper to taste, remembering the cheese to come is salty.
Gratinee and serve
Dry the bread properly. Toast the baguette slices on a sheet in a 350F oven until completely dry and crisp through, about 10 minutes. Fresh bread turns to paste the moment it hits the soup. Dry bread absorbs broth and holds its structure, which is the entire reason the classic calls for day old.
Fill, top, and cover to the edges. Ladle the soup into oven safe bowls, leaving an inch at the top. Float the toast, then cover it with grated Gruyere, taking the cheese right out over the rim of the bowl. The cheese needs to seal the surface and grip the edge, or it slides off the toast in one raft when you put a spoon in.
Broil until browned and bubbling. Sit the bowls on a baking sheet and put them under a hot broiler until the cheese is melted, bubbling and browned in patches, about 3 to 5 minutes. Do not walk away. The gap between browned and burnt at this heat is under a minute.
Warn whoever you are serving. Those bowls are extremely hot and they look like ordinary soup bowls. Say so before you put them down.
Making it vegetarian
This is the substitution that takes real thought, because beef stock is half the recipe and vegetable stock alone gives you a thin, sweet soup with no backbone. You have to rebuild the savory depth deliberately.
Build a mushroom stock, not a vegetable one. Simmer 1 ounce of dried porcini or shiitake in 8 cups of water for 30 minutes, then strain it through a cloth, leaving any grit behind. Dried mushrooms carry more glutamate than any other pantry vegetable, and glutamate is exactly what beef stock was supplying.
Add two more savory levers. A tablespoon of soy sauce or tamari, and a teaspoon of miso stirred in at the end off the heat. Both are fermented and both add depth that no amount of simmering vegetables will.
Add a strip of kombu to the stock if you have it, removed before it boils.
Check the cheese. Traditional Gruyere is made with animal rennet. If that matters to you, look for a vegetarian labelled alpine style cheese or use a good aged white cheddar.
Done this way it is genuinely good. Done by simply swapping in vegetable broth, it is not.
Making it without alcohol
The wine and brandy are doing two jobs, and you need to cover both rather than just leaving them out.
Deglaze with stock instead. Use 1/2 cup of the beef stock in place of the wine, scraping the base exactly the same way. The deglazing itself matters more than what you deglaze with.
Replace the acid, which is the part people forget. Wine brings acidity that cuts the sweetness. Without it the soup goes flat and cloying. Increase the sherry vinegar to 2 teaspoons, or use 1 tablespoon of red wine vinegar or verjus. Add it at the end and taste as you go.
Skip the brandy and add depth elsewhere. A teaspoon of tomato paste cooked into the onions for a minute before the stock goes in gives you some of the roundness the brandy was providing.
Note that in the standard recipe most of the alcohol cooks off during the 30 minute simmer, though not all of it. If the reason for avoiding it is medical, religious, or recovery related, use the version above rather than relying on that.
Cheeses other than Gruyere

Gruyere is the standard because it melts smoothly without turning oily and it browns well, which not every cheese does. If you cannot get it or would rather not pay for it, these work.
Comte. The closest substitute there is, French rather than Swiss, slightly sweeter and nuttier. If it is available, use it without hesitation.
Emmental or Jarlsberg. Milder and stringier. Fine, and cheaper. Mix with a little Parmesan for the savory depth they lack on their own.
Raclette. Made for melting and outstanding here, though stronger smelling and harder to find.
Aged white cheddar. Works, and is the most available option, but it releases more oil under a broiler. Grate it coarsely and keep the broiler time short.
One rule regardless of which you pick: grate it yourself. Pre-shredded cheese is coated in starch or cellulose to stop it clumping in the bag, and that coating makes it melt grainy rather than smooth. On a dish where the melt is the whole point, that is not a small difference.
Make ahead, storage, and reheating
Make ahead. The soup itself is better the next day, and the caramelized onions can be made days in advance or frozen on their own. Never assemble the bread and cheese until the moment you are broiling.
Cool it properly. Do not leave the pot on the stove to cool. Divide it into shallow containers, no more than a couple of inches deep, and refrigerate within two hours of cooking. A big pot of soup holds heat for hours in the middle, sitting in the range between 40F and 140F where bacteria multiply fastest, and improper cooling of cooked food is one of the most common causes of foodborne illness.
Refrigerating. 3 to 4 days.
Freezing. This one freezes beautifully, unlike every cream soup on this site, because there is no dairy in the soup itself. Three months. It is worth doubling the batch for that reason alone, since the hour of caramelizing is the same for six pounds of onions as for three.
Reheating. Bring it back to a simmer and heat thoroughly to 165F throughout, then assemble and broil fresh.
A short history
Onion soup is old and was, for most of its history, poor food. Onions grew everywhere, kept through winter, and cost almost nothing, so onion soup was what you made when there was little else. Versions of it appear across Europe long before anything resembling the modern French recipe.
The dish we recognize now, soupe a l'oignon gratinee, is a Parisian refinement of the nineteenth century. Two things turned peasant food into restaurant food: good beef stock, which came out of professional kitchens, and the gratineed cap of bread and melted cheese, which is what makes it a spectacle at the table.
It is strongly associated with Les Halles, the old central market of Paris, where it was eaten by market workers through the night and by everyone else after one. That association is real, though the various colorful origin stories attached to it, including the one crediting Louis XV, are folklore rather than documented history.
What has not changed is the underlying logic. This is a dish built to make something out of almost nothing, and the hour of patient stirring is precisely what converts cheap onions into something worth serving.
Nutrition, estimated
Per serving, based on 4 servings.
| Calories | 640 |
| Total fat | 30 g |
| Saturated fat | 18 g |
| Cholesterol | 85 mg |
| Sodium | 950 mg |
| Total carbohydrate | 51 g |
| Dietary fiber | 6 g |
| Sugars | 14 g |
| Protein | 28 g |
These are estimates calculated from standard reference values for the listed quantities, not laboratory measurements. Sodium is the highest of any soup in this set, and it comes from the stock, the bread and the cheese rather than from added salt. Using low sodium stock, as the method says, is the single biggest lever you have on that number. The 14 grams of sugar are the onions themselves, not added sugar.
References
- Leftovers and Food Safety, USDA Food Safety and Inspection Service. Why a big pot of soup must go into shallow containers rather than cooling on the stove, the two hour rule, and safe reheating to 165F.
- The Danger Zone, 40F to 140F, USDA Food Safety and Inspection Service. The temperature range where bacteria multiply fastest, and why improper cooling of cooked food is a leading cause of foodborne illness.
Related guides
- How to Butcher Beef, for the bones that make a stock worth building this soup on
- The Five Mother Sauces, where the same stock does the same job
- The Butchery Guides
Thank you
Thank you for cooking this, and particularly for standing at the stove for the full hour rather than calling it done at fifteen minutes. Almost nobody does, and it is the entire difference.
If you make it, I would like to hear how it went, and especially what you changed. Tell me here.
If this one worked for you, the mother sauces guide covers building the stock that makes it, which is the other half of this recipe.
Cook Bolder, Serve Wiser, Eat Better.
Chef Alan, 35 years in professional kitchens and a six-time Four Diamond chef
Wine Drop Cookery