Go Back
+ servings
Print

Best French Onion & Shallot Soup

The best French Onion and Shallot Soup ever – this simple meatless recipe gets rave reviews every time!
Course Main Course
Cuisine French
Keyword french onion soup, Soup with cheese
Prep Time 20 minutes
Cook Time 1 hour 15 minutes
Total Time 1 hour 35 minutes
Servings 6 servings
Calories 629kcal

Ingredients

  • 8 Tbsp pastured butter
  • 2 large yellow onions halved and thinly sliced
  • 2 large shallots halved and thinly sliced
  • 3 large garlic cloves minced or pressed
  • 2 bay leaves
  • 2-3 tsp sea salt to taste
  • 1/2 tsp ground black pepper
  • 2 tsp all purpose flour, can omit for gluten free/grain free
  • 3/4 cup dry white wine
  • 6 cups beef stock/broth, I use a 50/50 blend of beef stock and beef bone broth
  • 3 sprigs fresh thyme
  • 6 slices baguette or other crusty bread sliced 1" thick
  • 1 pound Gruyere cheese grated or thinly sliced (ask the cheese counter staff to slice it for you)
  • 1/4 cup grated Parmigiano-Reggiano cheese

Instructions

  • Melt butter in a large pot over medium high heat. Add onions, shallot, garlic, bay leaves, sea salt, and black pepper and cook, stirring frequently, until onions and shallots are translucent.
  • Turn heat down to medium low and continue to cook, stirring occasionally, until onions and shallots are a deep golden brown (approx 20 min).
  • Stir in flour and cook for 1 minute before adding wine. Stir well and cook 2 more minutes.
  • Add stock/broth and thyme. Simmer uncovered for about 30 minutes, stirring occasionally.
  • While the soup simmers, preheat oven to 350 degrees. Arrange bread slices on a baking sheet and toast for 15 minutes, turning over halfway through cooking. (Bread should be dry with a slightly soft center that still springs back when touched)
  • Once soup is ready, preheat broiler.
  • Ladle soup into oven safe ramekins* (leave 1/4-1/2" at the top). Add 1 slice toasted bread to each, then top with sliced of Gruyere and a sprinkle of Parmigiano-Reggiano.
  • Place ramekins on a rimmed baking sheet and broil for a few minutes, until cheese is melted and bubbly.
  • Serve immediately, topped with a crack of black pepper and fresh thyme leaves.
  • Extra stores well in the fridge and tastes even better the second day!

Notes

  • Stock vs. broth: I use a 50/50 blend of beef stock and beef bone broth - I love the rich flavor of meat stock, but also like the nutritional benefits of the bone broth. Chicken stock/broth could be substituted for a lighter flavor.
  • Oven safe bowls: Last year I finally bought oven safe bowls similar to these (on sale at the time of publishing this!). If you don't have oven safe bowls, see the Notes section of the recipe for instructions on how to get the broiled cheese topping on a baking sheet.
  • How to make cheese toasts in the oven:  If you don't have oven safe bowls, just sprinkle the cheese blend generously over the bread slices you toasted in the oven. Heat the cheese toasts at 350 degrees for 3-4 minutes or until cheese is mostly melted, then broil for 1-2 minutes until the cheese begins to brown.
  • This recipe is even better on the second day - just reheat the soup on the stove and follow instructions for preparing the toast and broiled cheese topping.
  • The onions: I love using a mix of shallots and onions because shallots give a nice sweetness to the soup but you can use only onions if you don't have them.
  • Herbs: Make sure to use fresh thyme and not dried, it makes a huge difference to the flavor of the soup.
  • Cheese: Gruyere is what's commonly used to make french onion soup, it's a perfect melting cheese and doesn't lose flavor as it melts. Comte or fontina cheese would be great substitutes.
  • Take your time: Allow time for the onions to caramelize and don't be tempted to turn the heat up to speed up the process, the onion will just burn and the soup will become bitter. If you take time to caramelize the onions the end result is incredible and you'll have the most delicious tasting soup!

Nutrition

Calories: 629kcal | Carbohydrates: 23g | Protein: 37g | Fat: 42g | Saturated Fat: 25g | Polyunsaturated Fat: 2g | Monounsaturated Fat: 12g | Trans Fat: 1g | Cholesterol: 126mg | Sodium: 1793mg | Potassium: 224mg | Fiber: 2g | Sugar: 4g | Vitamin A: 1244IU | Vitamin C: 5mg | Calcium: 872mg | Iron: 2mg