The Best Vegan Stuffing Recipe


Serious Eats / J. Kenji López-Alt

Why It Works

  • Cooking down mushrooms with sage until well browned builds in plenty of meaty flavor.
  • Toasted pecans add texture to the finished stuffing.
  • Drying the bread in the oven allows for better texture and flavor than using staled bread.

As a Serious Eater who has dipped my toes into veganism, it's time to start down the road of coming up with fully satisfying, 100% plant-based versions of some of my favorite holiday dishes. And what better place to start than the king of Thanksgiving? No, I'm not talking about the turkey. I'm talking stuffing. It's by far my favorite part of the meal, and something that I look forward to every November.

As someone who's spent an inordinate amount of time coming up with dishes like Vegan Cheesy Baked PotatoesFully Loaded Vegan NachosVegan Chili, and even Vegan Burgers That Don't Suck, I only have one requirement for my vegan recipes (beyond the whole plant-based thing, that is): They must be good enough that even an avowed meathead would gladly down them.

The standards for this stuffing were no different. I wanted a stuffing with deep, complex, savory flavors that bakes up with a moist texture, like a savory bread pudding. I wanted stuffing so good that it would be the first side dish to disappear from the table. A stuffing so good that my meat-eating family would attack and devour it with reckless abandon.

I've been making my Classic Sage and Sausage Stuffing for years, and to me, it's the quintessential Thanksgiving stuffing. So that seemed a good place to start my vegetarian version. I sliced up enough loaves of bread to make a half dozen batches of stuffing (the minimum number I figured I'd need to nail this recipe), tossed them in a low-temperature oven to dehydrate,* then got to work on the rest of my ingredients.

*As I've discovered, the key to great texture in stuffing is dry bread, not necessarily stale bread. The two are not the same thing! Bread dried in an oven becomes crisp and dry, while stale bread is leathery and chewy.

Creating Flavor in Vegan Stuffing

Obviously, the sage sausage that the meaty recipe calls for was out of the question, so what to use instead? This isn't my first vegan rodeo, and I know what kinds of things I like in my foods. The first thing to get out of the way: This is a vegetable-based stuffing, not a faux-meat stuffing. You want textured vegetable protein or seitan in your mix? Look elsewhere.

From working on a recipe for vegan mapo tofu and a vegan Bolognese sauce in the past, I knew if treated right, mushrooms make an excellent stand-in for the tender-chewy texture and rich umami flavor of ground meat.


Serious Eats / J. Kenji López-Alt

To get mushrooms the right texture, either pinch the caps between your fingers to break them up into rough, uneven chunks, or give them a rough chop and then pulse a few times in a food processor.

This is one of those times when the fancy restaurant knife skills are  worse for the finished product than the rough chop from a food processor. Those unevenly shaped nubs give the finished dish plenty of texture.


Serious Eats / J. Kenji López-Alt

Into a hot Dutch oven with olive oil they go.


Serious Eats / J. Kenji López-Alt

Cooking mushrooms is often a waiting game. They are so porous and spongy it takes a looooooong time before they've expelled all of their moisture.

But wait, what's wrong with moisture? you might ask. Don't we want our stuffing to be moist?

Indeed we do, but we also want it to be flavorful, and the process of browning chopped mushrooms follows the exact same laws of physics that browning ground meat or sausage does. So long as there is moisture left in the mushrooms or the pan, all of the energy you're putting into that pan is going toward evaporating that water, which effectively limits the temperature of its contents to at or around the boiling point of water: 212°F (100°C). On the other hand, the Maillard reactions—the set of heat-triggered chemical reactions that create complex flavors in browned foods—don't take place until over 300°F (150°C) or so. It's only after the mushrooms have expelled all of their moisture that they can start to take on complex flavor.

Moral of the story? Good things come to those who wait. Use your ears and your eyes. You should hear a distinct change in sound as the mushrooms transition from steaming to sizzling and slowly turn brown.

The Aromatics


Serious Eats / J. Kenji López-Alt

The aromatics I use for this version of stuffing are no different from those in my classic stuffing. An onion (along with a leek, if you'd like), celery, garlic, and chopped sage are where it's at.


Serious Eats / J. Kenji López-Alt

Add 'em to the pot. Just as with the mushrooms, no browning takes place until the vegetables have broken down and released their moisture. Unlike with the mushrooms, however, browning is not what we're after in this case.

Alliums like onions, leeks, and garlic contain more natural sugars than mushrooms. As these complex sugars begin to caramelize, they break down into smaller, sweeter simple sugars. This is what creates the intense sweetness of caramelized onions or slow-roasted garlic. It's good in some situations, but sweetness is not on the menu for this stuffing (we get enough of that with our extra-sweet roasted sweet potatoes). And since there's no browning without caramelization in a high-sugar situation, we don't want to take the vegetables anywhere beyond simply softened.

The Stock

The next item in the great stuffing equation? The stock. In a traditional stuffing, that would be a rich poultry stock. For our vegan version, I wanted a stock every bit as richly flavored. Before we go any further, take this word of warning: Don't even think about using store-bought vegetable stock. It's rarely good, with overly sweet flavors and no richness or depth.

In fact, leading up to this recipe, I even toyed with the idea of doing a full-on store-bought vegetable stock. Not a single brand would have made it past the initial qualifying rounds. You want a good vegetable stock? You must make it yourself.

Fortunately, I happen to have a recipe already.

An overhead view of a stockpot filled with leeks, onions, carrots, and more to make homemade vegetable stock.

Serious Eats / J. Kenji Lopez-Alt

The keys to that recipe? Well, there's a pretty classic mix of aromatics—alliums, carrots, celery, herbs, and whole spices—but on top of that, I use a combination of dried mushrooms (porcini or morels work well) as well as Japanese kombu, a giant sea kelp that's packed with glutamates, which are responsible for triggering our sensation of savoriness.


Serious Eats / J. Kenji López-Alt

To bulk up the flavor even further, I give the stock (which I keep a supply of in my freezer) a quick simmer with the scraps from my mushrooms and vegetables. If you're making the stock from scratch just for this recipe, you can go ahead and add your trimmings as the base stock simmers. The results will be the same.


Serious Eats / J. Kenji López-Alt

Adding Texture

With the mushroom/sage mixture and an excellent stock, my base flavors were right, but the stuffing was still missing something. Even with a crisp baked top, I longed for a bit of texture inside. Crunchy vegetables weren't quite right. Dried fruits were better, but they added their own distinct flavor—I wanted something more neutral.

The answer? Nuts.

Pecans or walnuts were the best, with classic Thanksgiving flavor and a nice meaty, porous texture that absorbed plenty of flavor from the other ingredients.

They were a little bit too crunchy when I folded them in straight after toasting, but when I toasted them first, then added them to the simmering stock, they softened nicely.

The final step in the process was to add some fat. If you're okay with a vegetarian version, the classic addition of melted butter and eggs works out well. For a fully vegan version, I went with olive oil.

I folded it together and gave it a taste, seasoning it with salt and pepper. I gave it another taste, and another, before finally holding back my right hand with my left before it had a chance to feed me the whole thing straight out of the pot.

I packed the stuffing into a greased casserole dish, tossed it in a hot oven, and waited until it was golden brown and crisp along the top.


Serious Eats / J. Kenji López-Alt

Now that's the stuff!

With deep flavors and a rich, moist texture, there's really nothing more you could wish for in a good stuffing—whether it has meat in it or not is not even an issue here. It's just tasty, period.

To round out your vegan holiday table, try this holiday roast and of course, vegan stuffing waffles the day after.

Recipe Facts



Active: 45 mins
Total: 2 hrs
Serves: 10 to 14 servings

Rate & Comment


  • 2 1/2 pounds hearty vegan white bread (about 2 loaves; 1.1kg), crusts removed, cut into 3/4-inch pieces (about 5 quarts)

  • 1 pound (450g) button, cremini, or shiitake mushrooms (or a mix), roughly chopped

  • 6 ounces (170g) toasted pecan halves

  • 1/2 cup (120ml) olive oil (see notes)

  • 1/2 cup minced fresh sage leaves (1/2 ounce; 15g), or 1 tablespoon (15g) dried sage leaves

  • 1 large onion (10 ounces; 275g), finely chopped (about 1 1/2 cups)

  • 1 large leek (about 8 ounces; 225g), white part only, finely chopped (about 1 cup)

  • 4 large ribs celery (about 12 ounces; 340g), finely chopped (about 2 cups)

  • 2 cloves garlic, minced or grated on a Microplane

  • 1 quart hearty vegetable stock (4 cups; 960ml) (see notes)

  • 1/4 cup (57g) minced fresh parsley leaves, divided

  • Kosher salt and freshly ground black pepper


  1. Adjust oven racks to lower-middle and upper-middle positions. Preheat oven to 275°F (135°C). Spread bread evenly over 2 rimmed baking sheets. Stagger trays on oven racks and bake until completely dried, about 50 minutes total, rotating trays and stirring bread cubes several times during baking. Remove from oven and cool. Increase oven heat to 350°F (177°C).

  2. Place half of mushrooms in the bowl of a food processor. Pulse until roughly chopped, about 8 short pulses. Transfer to a large bowl and repeat with remaining mushrooms. Place pecan halves in food processor (do not wipe out bowl) and process until roughly chopped, about 12 short pulses. Set aside.

    mushrooms in the bowl of a food processor

    Serious Eats / J. Kenji López-Alt

  3. Heat oil in a large Dutch oven or stockpot over medium-high heat until shimmering. Add chopped mushrooms and cook, stirring frequently, until all moisture has evaporated, about 8 minutes. Add half of sage and continue to cook, stirring, until mushrooms are well browned, about 5 minutes longer. Add onion, leek, celery, garlic, and remaining sage and cook, stirring frequently, until vegetables are softened, about 10 minutes. Add stock, half of parsley, and chopped pecans and bring to a boil. Add bread cubes and fold gently until evenly mixed. Season to taste with salt and pepper.


    Serious Eats / J. Kenji López-Alt

  4. Transfer mixture to a greased 9- by 13-inch rectangular baking dish (or 10- by 14-inch oval dish), cover tightly with aluminum foil, and bake until hot throughout, about 30 minutes. Remove foil and continue baking until golden brown and crisp on top, about 10 minutes longer. Remove from oven, let cool for 5 minutes, sprinkle with remaining parsley, and serve.

    vegan stuffing

    Serious Eats / J. Kenji López-Alt

Special Equipment

Food processor, large Dutch oven or stockpot, large baking dish


This recipe requires you to make a batch of hearty vegetable stock before beginning. I strongly recommend using the recipe instead of store-bought vegetable stock. When making your own stock, add any extra vegetable or mushroom trimmings for extra flavor. If keeping the dish vegan is not of concern to you, feel free to substitute homemade or store-bought low-sodium chicken stock for the vegetable stock, butter for the olive oil, and add an egg along with the stock.

Nutrition Facts (per serving)
393 Calories
19g Fat
47g Carbs
10g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 10 to 14
Amount per serving
Calories 393
% Daily Value*
Total Fat 19g 25%
Saturated Fat 2g 12%
Cholesterol 0mg 0%
Sodium 787mg 34%
Total Carbohydrate 47g 17%
Dietary Fiber 4g 16%
Total Sugars 8g
Protein 10g
Vitamin C 9mg 47%
Calcium 157mg 12%
Iron 4mg 22%
Potassium 449mg 10%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)