This French shallot soup with gruyère croutons is based on the classic dish but it’s even better thanks to sweet, caramelized shallots! With garlic, white wine, beef stock, and fresh thyme, it’s rich, savory, and beyond flavorful. Make this special dish for dinner parties, cozy nights in, or romantic date nights at home!

A white bowl of French shallot soup with gruyère croutons on a beige counter next to bread, white wine, and a brown bowl of chives.

When I was a kid, French onion soup was one of those recipes my mom made that seemed so fancy. Of course, I never would have eaten it (because, ew onions) but I definitely was all about the cheesy toasts on top.

Once I learned how to make this soup when I was in culinary school, I realized that yes, it’s elegant, but it’s also so easy. And now that I’m grown, I’m all about those caramelized onions, rich broth, and bubbling gruyère cheese. But, I make mine with shallots, because well, that’s just what I’m about. Whether it’s domino potatoes with shallots or this cozy beef stroganoff with shallots and brandy, I’m a shallot girlie through and through.

And, with Valentine’s Day peeking around the corner, I wanted to create a date night recipe that felt elegant but still nice and cozy. This soup 100% fits the bill. It’s based on the French onion soup my mom has been making for as long as I can remember. But I added a few extra ingredients like white wine, thyme, and chives to add even more flavor and depth!

Shallots are the secret ingredient

White and brown bowls of shallots, butter, flour, salt, herbs, and garlic next to beef broth, pepper, wine, cheese, and bread.

In my version of FOS, I swapped the onions with shallots to add even more sweetness and depth. This is obviously optional, you’re totally welcome to use yellow, Vidalia, or red onions instead. But the shallots are more delicate which gives this dish a caramelized, rich flavor. So good!

Then, you’ll need some other basic ingredients like unsalted butter, Morton’s Kosher salt, freshly-cracked black pepper, garlic, dry white wine, all-purpose flour, low-sodium beef broth, fresh thyme, a bay leaf, a baguette, gruyère, parmesan, and fresh chives.

For vegetarian French onion soup, use veggie broth instead of beef!

How to cut shallots

Six steps on how to cut shallots. In photo 1, a full shallot on a wood board. In photo 2, the shallot is cut at both ends. In photo 3, a hand is slicing the shallots. In photo 4, the shallot has been turned. In photo 5, a hand slices the shallots more. In photo 6, the shallots are sliced.
  1. First, peel the papery skin off of the shallot and separate the bulbs if there’s more than one. Then, cut the tips and roots off of the shallots, leaving the stems intact.
  2. Turn a shallot on its flat side. (If it’s particularly large, slice it in half length-wise.) Then, thinly slice the shallot length-wise into thin slices, about 1/8-inch to 1/4-inch thick.
  3. Once the shallot is too thin to keep slicing, flip it on its flat side. Then, slice the rest of the shallot. Easy!

This recipe calls for lots of shallots (3 pounds!). For quicker slicing, you can also use a mandoline on the 1/4-inch setting after peeling the shallots.

Caramelize the shallots

Six steps to caramelizing shallots. In photo 1, a white pot has melted butter. In photo 2, the pot has shallots in it. In photo 3, the shallots are softened. In photo 4, the shallots are caramelized. In photo 5, the shallots are topped with garlic, In photo 6, the shallots are covered in wine.
Melt the butter in a large Dutch oven & add the sliced shallots. Cook the shallots low and slow until they’re softened and translucent. Keep cooking the shallots, stirring often, until they’re deep brown and caramelized. Once the shallots are caramelized, stir in the garlic & white wine.

The trick to perfect caramelized shallots is cooking them low and slow and using a large pot so they caramelize instead of steam. It’s a marathon, not a sprint! Caramelized shallots can take anywhere from 45 minutes-1 1/2 hours, so feel free to do other things while they cook away.

Make the soup

Three steps to making French shallot soup. In photo 1, a white pot has caramelized onions and flour. In photo 2, the pot has broth in it. In photo 3, the pot has thyme and a bay leaf.
Tip the flour into the shallot mixture and stir for about 1 minute to cook off the raw flour taste. Then, add the beef broth, pepper, thyme, and bay leaf. Bring the soup to a gentle simmer for about 30 minutes.

Broil the gruyère croutons

Three steps to making gruyère croutons. In photo 1, toast is on a gold pan. In photo 2, the toasts are topped with cheese. In photo 3, the cheese is broiled.
Broil the croutons until they’re lightly toasted, about 2 minutes per side. Then, top the toasts with the gruyère and parmesan cheese & broil until the cheese is melted and bubbling. Lastly, ladle the soup into bowls & top each bowl of soup with one of the gruyère croutons.

I like adding the croutons right before serving so they don’t get soggy. But, if you prefer a more traditional French onion soup, you can also use soup crocks! Just ladle the soup into oven-safe bowls or crocks. Top each soup with two slices of toast and sprinkle them generously with gruyère and parmesan. Broil until the cheese is melted and bubbling, about 3-4 minutes.

A white bowl of French shallot soup with gruyère croutons on a beige counter next to bread, a beige linen, and white wine.

Storing & make-ahead tips

Ladle the soup into an airtight container. Refrigerate the soup (without the croutons) for up to 5 days. When you’re ready to eat the soup, make the croutons fresh and enjoy! This soup is also one of my favorite make-ahead recipes. I actually think it tastes better after the flavors have melded in the fridge for a day or two!

Reheating this soup

Just spoon the soup into a small saucepan and bring it to a gentle simmer over medium heat. Meanwhile, broil the croutons. Add the croutons to the soup and enjoy! Or, you can microwave the soup in a microwave-safe bowl for 1-2 minutes, stirring halfway through, until hot.

Two white bowls of French shallot soup on a beige counter next to bread, white wine, a beige linen, and a brown bowl of chives.

If you make this recipe, I would love it if you left a star rating and review! I read every single comment and love hearing what you think about my recipes. Thank you for supporting Sunday Table!


5 from 1 vote

Easy French Shallot Soup with Gruyère Croutons

Yield: 6 servings
Prep Time: 30 minutes
Cook Time: 1 hour 30 minutes
Total Time: 2 hours
This French shallot soup with gruyère croutons is based on the classic dish but it's even better thanks to sweet, caramelized shallots! With garlic, white wine, beef stock, and fresh thyme, it's rich, savory, and beyond flavorful. Make this special dish as an appetizer or side dish for dinner parties, cozy nights in, or romantic date nights at home!

Ingredients

French Shallot Soup

  • 3 pounds shallots (1.4 kilograms)
  • 1/4 cup unsalted butter (57 grams)
  • Kosher salt, to taste
  • 1 Tablespoon minced garlic (10 grams/~4 cloves)
  • 1/2 cup dry white wine (120 grams)
  • 2 Tablespoons all-purpose flour (15 grams)
  • 8 cups low-sodium beef broth (1.9 liters)
  • Freshly-ground black pepper, to taste
  • 6 sprigs of fresh thyme
  • 1 bay leaf

Gruyère Croutons

  • 1 loaf of crusty bread (baguette, country bread, or sourdough)
  • 1 cup grated gruyère cheese (112 grams)
  • 1/2 cup grated parmesan cheese (56 grams)
  • Freshly-snipped chives, for sprinkling

Equipment

  • Chef's knife
  • Cutting board
  • Mandoline (optional)
  • Dutch oven
  • Box grater
  • sheet pan

Instructions 

Cut the shallots

  • Start by peeling the papery skin off of the shallots and separating the bulbs. Slice the tips and roots off of the shallots, leaving the stems intact. If the shallots are large, cut them in half length-wise.
  • Working one at a time, turn a shallot onto the flattest side (this will keep it stable). Then, cut the shallot length-wise into thin slices, about 1/8-1/4-inch thick.
  • One the shallot is too thin to slice comfortably, flip it sideways onto the flat side. Then, thinly slice the rest of the shallot. Repeat with the remaining shallots and set aside.

Caramelize the shallots

  • Start by melting the butter in a large Dutch oven over medium-low heat. Then, add the sliced shallots and a few generous pinches of salt.
  • Cook the shallots, stirring often, until they're soft and translucent. If the shallots start to stick to the pan, add a few drops of water to loosen them up. Continue cooking the shallots, stirring every couple of minutes so they don't stick to the pan or brown too much in one place. After about 20 minutes, the shallots will be blonde-colored. If they're browning too much or sticking a lot, reduce the heat.
  • Keep cooking the shallots, low and slow, until they're deep brown and caramelized, another 25-35 minutes. If they're not a deep brown, keep cooking for another 10-30 minutes. Stir the shallots often so they don't burn or stick to the pan. Be patient! This process can take anywhere from 45 minutes to 1 1/2 hours total depending on the pan and heat source.

Make the soup

  • Once the shallots are caramelized, increase the heat to medium high. Add the garlic and cook for 1 minute until the garlic is softened and fragrant. Deglaze the shallots with the white wine, scraping up any brown bits on the bottom of the pot. Let the wine simmer until it's almost completely evaporated and the onions are jammy.
  • Stir in the flour and cook for about 1 minute. Add the beef broth, black pepper, thyme, and a bay leaf. Bring the soup to a boil. Then, reduce the soup to a gentle simmer and let it bubble on the stove for about 30 minutes, until it's rich and glossy. Remove the thyme stems and bay leaf and discard. Taste the soup and add more salt and pepper if needed.

Broil the gruyère croutons

  • Set the broiler on high and place an oven rack about 6 inches away from the broiler. Slice the bread into 12-18 slices (about 1/2-inch thick) and line them on a sheet pan. Broil the bread slices until they're lightly toasted, about 2-3 minutes per side.
  • Meanwhile, combine the gruyère cheese and parmesan cheese in a small bowl. Evenly divide the cheese between the tops of the croutons. Broil for another 2-4 minutes until the cheese is melted and bubbling.

Assemble and enjoy

  • Ladle the soup evenly between 6 bowls. Top each bowl of soup with one gruyère crouton and sprinkle the tops generously with fresh chives. Serve extra croutons on the side for dipping. Enjoy!

Notes

For quicker slicing, you can also use a mandoline. Slice the shallots on the 1/8-inch or 1/4-inch setting after peeling.
Slice the shallots thinly so they caramelize evenly. Go for about 1/8 to 1/4-inch thick.
The trick to perfect caramelized shallots is cooking them low and slow and using a large pot so they caramelize instead of steam. It’s a marathon, not a sprint! Caramelized shallots can take anywhere from 45 minutes-1 1/2 hours, so feel free to do other things while they cook away.
I like adding the croutons right before serving so they don’t get soggy and serving the extras on the side. But, if you prefer a more traditional French onion soup, you can also use soup crocks! Just ladle the soup into oven-safe bowls or crocks. Top each soup with two slices of toast and sprinkle them generously with gruyère and parmesan. Broil until the cheese is melted and bubbling, about 2-4 minutes.
This recipe will serve 6 as an appetizer or side. If you’re serving this as a main meal with another side or two, it will feed 4. Or, halve the recipe for French onion soup for two!
Cuisine: American, French
Course: Appetizer, Main Course, Soup
Serving: 1serving, Calories: 330kcal, Carbohydrates: 33g, Protein: 14.4g, Fat: 14.4g, Saturated Fat: 8.9g, Cholesterol: 40mg, Sodium: 879mg, Potassium: 230mg, Fiber: 3.1g, Sugar: 5.5g, Calcium: 232mg, Iron: 2mg
Did you make this recipe?Tag @sundaytable.co on Instagram!