This vegan French onion soup recipe has been a top Google search result for almost 10 years now—for good reason! It’s healthy, simple to make, and absolutely delicious. If you love it, please leave a star rating in the comments below to help other readers in our community.
- 2 tablespoons extra virgin olive oil
- 3 large white or yellow onions, sliced into thin half-moons
- 3 large fresh thyme sprigs (about 1 tbsp), leaves stripped, OR ½ teaspoon dried
- 4 cups (1 quart) vegetable stock/broth (no salt added), OR (if not vegan) beef broth or chicken broth)*
- 2 cups of filtered water
- 1 bay leaf
- 2 tablespoons good-quality aged balsamic vinegar
- 3 teaspoons sea salt, divided (plus more to taste if needed)
- ½ teaspoon freshly ground black pepper
- sprouted whole grain bread
- vegan cheese melted on top
- grated Gruyere cheese or Swiss cheese (obviously not vegan!) is traditional to melt on top of French onion soup if you follow a “flexitarian” eating style
- Heat 1 tablespoon olive oil over medium heat in a large soup pot or Dutch oven.
- Add the onions, thyme, 1 teaspoon salt, and drizzle 1 tablespoon olive oil over the onions; lower the heat to medium-low. The onions may be filling the pot completely but will cook down to about ⅓ of their mass.
- Cook uncovered, stirring occasionally until the onions caramelize and turn light golden brown, about 50-60 minutes.
- Add the balsamic and cook until it’s absorbed and the onions are a deeper brown, about 15 more minutes.
- Add the stock, water, bay leaf, remaining salt, and pepper, then bring to a boil.
- Turn the heat to low and simmer at least 30 minutes.
- Remove the bay leaf before serving.
- I usually eat it just like this, but you can also serve it with toasted sprouted grain bread and melted gruyere cheese for a more classic presentation (adding the cheese of course makes it not vegan). Instead of baking the cheese onto the soup, put slices of sprouted grain bread on a baking sheet, rub the tops with a fresh garlic clove, drizzle with a little olive oil, and top with the gruyere cheese. Bake for 10 minutes at 350º until the cheese is melted. Top each cup of soup with a slice of the cheesy bread and serve.
- This soup (minus the cheese and bread) freezes well in an airtight glass container.
- Tip: You can also substitute 1/4 cup of good quality, bold red wine for the balsamic vinegar. I suggest a burgundy or cabernet sauvignon if you want to use wine instead of balsamic vinegar.
*Note on choosing stock: This recipe is written to be vegan so I use vegetable broth. I’ve included these substitutions if making it vegan is not important to you:
- (Non-vegan options) Beef broth is traditional in French onion soup and has a deep earthy flavor. Chicken stock is also a great option here if you prefer it. When choosing beef or chicken stock, I suggest a high-quality (preferably organic) stock that does not contain added preservatives or excess sodium. (I like the brands Pacific, 365 from Whole Foods and Kirkland from Costco.) You can also use my homemade chicken stock (aka bone broth) recipe or store-bought bone broth to make this soup for extra protein and healing properties.
Keywords: vegan french onion soup, french onion soup recipe, french onion soup