I was well into my twenties before I realized you could make stuffing from scratch. Growing up, my mom always used the boxed stuff—you know, the kind that comes in a bag with a little seasoning packet. It tasted fine, and honestly, I never questioned it.
But then one Thanksgiving, my neighbor brought over homemade stuffing, and wow, what a difference. It was so much better than anything that came from a box. That’s when I learned that making stuffing from scratch isn’t nearly as hard as I thought. Sure, it takes a little more time than opening a package, but the payoff is huge. Plus, you can control exactly what goes in it.

Why You’ll Love This Stuffing
- Made from scratch – Nothing beats homemade stuffing with fresh herbs and real butter. It tastes so much better than anything from a box, and you control every ingredient that goes into it.
- Perfect texture every time – The combination of stale bread cubes, eggs, and just the right amount of broth creates that ideal balance of crispy top and moist, fluffy interior that everyone craves.
- Fresh herb flavor – The fresh sage and parsley really make this stuffing shine, giving it that traditional holiday taste that brings back all the best memories.
- Simple ingredients – You probably have most of these pantry staples on hand already, and the fresh herbs are easy to find at any grocery store.
- Holiday tradition – This classic recipe is perfect for Thanksgiving, Christmas, or any time you want that comforting, homestyle flavor that makes any meal feel special.
What Kind of Bread Should I Use?
The best stuffing starts with good stale bread, and white bread is your go-to choice here. You can use a basic sandwich loaf, but brioche or challah will give you an even richer flavor if you want to splurge a little. The key is making sure your bread is actually stale – day-old bread works perfectly, or you can cut fresh bread into cubes and let them sit out overnight to dry out. If you’re in a pinch, you can also toast fresh bread cubes in a low oven for about 10-15 minutes until they’re dried out but not browned. Avoid using bread that’s too dense or heavy, as it won’t absorb the flavors as well as a lighter white bread will.

Options for Substitutions
This classic stuffing recipe is pretty forgiving when it comes to swaps and substitutions:
- White bread: You can use whole wheat bread, sourdough, or even cornbread for different flavors. Just make sure whatever bread you choose is stale or dried out – fresh bread will make your stuffing mushy.
- Butter: If you need a dairy-free option, olive oil or vegetable oil work well. Use about 3/4 the amount since oil is more concentrated than butter.
- Fresh sage: Dried sage can work in a pinch – use about 1 tablespoon instead of 3 tablespoons fresh. The flavor won’t be quite as bright, but it’ll still taste great.
- Poultry seasoning: Don’t have poultry seasoning? Mix together 1/2 teaspoon each of dried thyme and sage with a pinch of rosemary and you’re set.
- Chicken broth: Vegetable broth works perfectly for a vegetarian version, or you can use turkey stock if you have it on hand from making your bird.
- Fresh parsley: Dried parsley can substitute, but use only 2-3 tablespoons since dried herbs are more concentrated. Fresh chives or green onion tops also add nice color and flavor.
Watch Out for These Mistakes While Cooking
The biggest mistake people make with stuffing is using fresh bread instead of stale, which creates a mushy texture that won’t hold together – if your bread isn’t stale enough, spread the cubes on a baking sheet and let them sit out overnight or toast them lightly in the oven.
Another common error is not sautéing the vegetables long enough, so make sure your onions and celery are completely softened and translucent before mixing them with the bread, as undercooked vegetables will release water during baking and make your stuffing soggy.
Don’t skip tasting your mixture before baking – the raw egg won’t hurt you in small amounts, and this is your chance to adjust the seasoning since you can’t fix bland stuffing once it’s cooked.
Finally, resist the urge to pack the stuffing too tightly in the baking dish, as it needs room to expand and develop that perfect crispy top while staying moist inside.

What to Serve With Stuffing?
Stuffing is practically made for Thanksgiving dinner, so it pairs perfectly with roasted turkey, mashed potatoes, and cranberry sauce for that classic holiday spread. But don’t limit yourself to just the holidays – this savory side works great with any roasted chicken, pork chops, or even a simple rotisserie chicken from the store. I love serving it alongside roasted vegetables like Brussels sprouts or green beans, and it’s also amazing with a drizzle of gravy on top. For a cozy weeknight dinner, try it with some sautéed mushrooms and a crisp white wine – it makes even a regular Tuesday feel special.
Storage Instructions
Refrigerate: Leftover stuffing keeps really well in the fridge for up to 4 days in a covered container. I actually think it tastes even better the next day when all those flavors have had time to meld together. It’s perfect for making turkey sandwiches or just enjoying as a side dish throughout the week.
Freeze: You can definitely freeze this stuffing for up to 3 months in a freezer-safe container or heavy-duty freezer bags. I like to portion it out into family-sized servings before freezing so I can thaw just what I need. It’s a great way to save some for later holidays or when you’re craving that comfort food taste.
Warm Up: To bring your stuffing back to life, just pop it in a 350°F oven for about 15-20 minutes until it’s heated through. You can add a splash of chicken broth if it seems a bit dry. From frozen, let it thaw overnight in the fridge first, then reheat the same way.
| Preparation Time | 30-40 minutes |
| Cooking Time | 45-60 minutes |
| Total Time | 75-100 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 2650-2850
- Protein: 48-58 g
- Fat: 120-135 g
- Carbohydrates: 340-370 g
We'll Pay You $5 to Try This Recipe!
Cook our recipe, snap some photos, and earn a $5 Amazon Gift Card. It's that simple!
Here's how:
- Make the recipe
- Take nice pictures of your final dish
- Fill out our quick form (2 minutes max!)
- Your $5 reward is on the way!
Ingredients
For the bread base:
- 12 cups cubed day-old white bread (about 1 lb 4 oz)
- 2 tbsp butter, cut into cubes (for topping)
For the vegetable and herb mixture:
- 3/4 cup butter
- 1 large onion, chopped (yellow or white)
- 2 cups chopped celery (include leaves)
- 1 1/2 tsp kosher salt
- 1 tsp ground black pepper
- 1 tsp poultry seasoning
- 1/2 tsp dried marjoram
- 3 tbsp fresh sage, chopped and heaped
- 1/3 cup chopped parsley (curly or flat-leaf)
For the wet ingredients:
- 2 eggs
- 1 cup chicken stock or broth
Step 1: Prepare the Bread Cubes
- 12 cups cubed day-old white bread (about 1 lb 4 oz)
Cut the day-old white bread into 1-inch cubes.
To stale the bread, either leave the cubes spread out on a sheet pan overnight to dry, or use the quick method: preheat your oven to 250°F (120°C), lay the bread cubes on a sheet pan, and bake for about 30 minutes, tossing every 5-10 minutes, until they are dry but not browned.
Step 2: Prepare the Aromatic Vegetables
- 3/4 cup butter
- 1 large onion, chopped (yellow or white)
- 2 cups chopped celery (include leaves)
Preheat your oven to 350°F (175°C).
Generously grease a 9×9-inch baking dish with butter or oil.
In a large sauté pan over medium heat, melt 3/4 cup butter.
Add the chopped onions and celery and sauté until completely softened, about 20-30 minutes, stirring occasionally.
This slow cooking really draws out the sweetness of the onions.
Step 3: Mix in Herbs and Seasonings
- 1 1/2 tsp kosher salt
- 1 tsp ground black pepper
- 1 tsp poultry seasoning
- 1/2 tsp dried marjoram
- 3 tbsp fresh sage, chopped and heaped
- 1/3 cup chopped parsley (curly or flat-leaf)
Remove the pan from the heat.
Stir in the kosher salt, ground black pepper, poultry seasoning, dried marjoram, chopped fresh sage, and chopped parsley.
Mixing the herbs in off the heat helps preserve their fresh flavor.
I like to add an extra pinch of sage here for even more aroma.
Step 4: Combine Bread, Vegetables, and Liquid
- bread cubes (from Step 1)
- onion and herb mixture (from Step 3)
- 2 eggs
- 1 cup chicken stock or broth
In a small bowl, whisk together the eggs and chicken stock or broth.
In a large mixing bowl, place the dried bread cubes (from Step 1).
Pour the onion and herb mixture (from Step 3) over the bread and stir to combine.
Then pour the egg and broth mixture over the bread cubes and mix until all the liquid is absorbed.
Step 5: Assemble and Bake the Stuffing
- stuffing mixture (from Step 4)
- 2 tbsp butter, cut into cubes (for topping)
Transfer the stuffing mixture to the prepared, buttered baking dish.
Dot the top with the remaining 2 tablespoons of cubed butter.
Cover the dish with foil and bake at 350°F (175°C) for 30 minutes.
Then remove the foil and bake for another 15 minutes, or until the top is golden brown.
For an extra crispy top, you can turn the broiler on for 1-2 minutes—just keep a close eye on it so it doesn’t burn!
Step 6: Serve the Stuffing
Remove the stuffing from the oven.
Let it cool slightly, then serve right away.
I find letting the stuffing rest for just five minutes makes it easier to slice and keeps all those flavors melded nicely.

Old-Fashioned Homemade Stuffing
Ingredients
For the bread base:
- 12 cups cubed day-old white bread (about 1 lb 4 oz)
- 2 tbsp butter, cut into cubes (for topping)
For the vegetable and herb mixture:
- 3/4 cup butter
- 1 large onion, chopped (yellow or white)
- 2 cups chopped celery (include leaves)
- 1 1/2 tsp kosher salt
- 1 tsp ground black pepper
- 1 tsp poultry seasoning
- 1/2 tsp dried marjoram
- 3 tbsp fresh sage, chopped and heaped
- 1/3 cup chopped parsley (curly or flat-leaf)
For the wet ingredients:
- 2 eggs
- 1 cup chicken stock or broth
Instructions
- Cut the day-old white bread into 1-inch cubes. To stale the bread, either leave the cubes spread out on a sheet pan overnight to dry, or use the quick method: preheat your oven to 250°F (120°C), lay the bread cubes on a sheet pan, and bake for about 30 minutes, tossing every 5-10 minutes, until they are dry but not browned.
- Preheat your oven to 350°F (175°C). Generously grease a 9x9-inch baking dish with butter or oil. In a large sauté pan over medium heat, melt 3/4 cup butter. Add the chopped onions and celery and sauté until completely softened, about 20-30 minutes, stirring occasionally. This slow cooking really draws out the sweetness of the onions.
- Remove the pan from the heat. Stir in the kosher salt, ground black pepper, poultry seasoning, dried marjoram, chopped fresh sage, and chopped parsley. Mixing the herbs in off the heat helps preserve their fresh flavor. I like to add an extra pinch of sage here for even more aroma.
- In a small bowl, whisk together the eggs and chicken stock or broth. In a large mixing bowl, place the dried bread cubes (from Step 1). Pour the onion and herb mixture (from Step 3) over the bread and stir to combine. Then pour the egg and broth mixture over the bread cubes and mix until all the liquid is absorbed.
- Transfer the stuffing mixture to the prepared, buttered baking dish. Dot the top with the remaining 2 tablespoons of cubed butter. Cover the dish with foil and bake at 350°F (175°C) for 30 minutes. Then remove the foil and bake for another 15 minutes, or until the top is golden brown. For an extra crispy top, you can turn the broiler on for 1-2 minutes—just keep a close eye on it so it doesn’t burn!
- Remove the stuffing from the oven. Let it cool slightly, then serve right away. I find letting the stuffing rest for just five minutes makes it easier to slice and keeps all those flavors melded nicely.