Print
clockclock iconcutlerycutlery iconflagflag iconfolderfolder iconinstagraminstagram iconpinterestpinterest iconfacebookfacebook iconprintprint iconsquaressquares iconheartheart iconheart solidheart solid icon
Close-up of golden cheese toast and thyme over French onion soup in a green handled crock.

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Homemade French Onion Soup

Recipe by Lisa Marie Cimini

This homemade French onion soup features slowly caramelized yellow onions simmered in a rich, savory beef broth with garlic and fresh herbs. Topped with toasted sourdough bread and a generous layer of melted Gruyère cheese, it’s a comforting classic with deep, delicious flavor in every spoonful.


  • Total TimeAbout 1 hour 45 minutes
  • Yield6 servings 1x

Ingredients

Units Scale

For the Soup

  • 4-5 yellow onions, thickly sliced
  • 42 g unsalted butter
  • 28 g ghee, optional if not using all of the butter
  • 14 g extra-virgin olive oil
  • 4 cloves garlic, minced
  • fine sea salt
  • freshly ground black pepper, plus more to taste
  • 2 tsp fresh thyme leaves
  • dried bay leaf
  • 6-8 cups good-quality beef broth
  • 1-2 tsp balsamic vinegar, to taste

For the Gruyère Toppers

  • sourdough or baguette, cut into thick slices
  • 225 g shredded Gruyère cheese
  • fresh thyme leaves, for garnish

Instructions

  1. Halve the onions from root to stem, peel them, and cut into thick, even slices. Keeping the slices uniform helps them soften and caramelize at the same rate.
  2. Melt the butter and ghee with the olive oil in a large Dutch oven over medium heat. Add the onions and sea salt. Cook for 10 minutes, stirring frequently, until the onions begin to soften and release their moisture.
  3. Reduce the heat to medium-low and cook for 40–50 minutes, stirring every few minutes, until the onions are very soft, deeply golden, and reduced in volume. If the browned bits on the bottom begin to darken too quickly, add a tablespoon or two of broth and scrape them into the onions. Do not rush this step. It builds the soup’s flavor.
  4. Stir in the garlic, black pepper, and thyme. Cook for 1 minute, just until fragrant.
  5. Stir in 1 teaspoon balsamic vinegar, scraping up the flavorful browned bits from the bottom of the pot. Add the beef broth and bay leaf. Bring to a gentle boil, then reduce the heat and simmer uncovered for 25–30 minutes.
  6. Remove the bay leaf. Taste and add the remaining balsamic vinegar if the broth needs a little brightness. Adjust the salt and pepper as needed.
  7. While the soup simmers, preheat the oven to 400°F (205°C). Arrange the bread on a rimmed baking sheet and lightly brush with oil or butter and toast for 8–10 minutes, until golden.
  8. Preheat the broiler. Divide the hot soup among broiler-safe crocks set on a baking sheet. Place one toasted bread slice over each serving and cover generously with shredded Gruyère.
  9. Broil, watching closely, until the cheese is melted, bubbling, and golden in spots. Garnish with fresh thyme and serve carefully; the crocks will be very hot.

Notes

Storage: Allow the soup to cool completely before transferring it to an airtight container. Refrigerate for up to 4 days, keeping the bread and cheese separate until ready to serve.

Freezing: The soup base freezes beautifully for up to 3 months. Let it cool completely, then transfer to freezer-safe containers, leaving a little room for expansion. Thaw overnight in the refrigerator before reheating.

Reheating: Warm the soup gently in a saucepan over medium-low heat until heated through. Ladle into oven-safe bowls, add freshly toasted bread and grated Gruyère, then broil until the cheese is melted and golden.

Make Ahead: Prepare the soup base 1 to 2 days in advance and refrigerate. Reheat before adding the bread and cheese just before serving.

  • Prep Time: 20 minutes
  • Cook Time: 1 hour 25 minutes
  • Category: Savory & Simple
  • Method: Stovetop and Broiling
  • Cuisine: French-Inspired