I’ll be honest—I used to think “paleo” meant giving up all the comfort foods I loved. Shepherd’s pie? No way that could be paleo-friendly with its creamy mashed potato topping and hearty filling, right?
Turns out I was wrong. You can absolutely make a shepherd’s pie that fits into a paleo lifestyle, and it doesn’t mean sacrificing any of the cozy, stick-to-your-ribs goodness that makes this dish so satisfying. The secret is keeping things simple and letting good ingredients do their thing. We’re talking real potatoes mashed with butter and almond milk, grass-fed beef, and loads of vegetables that actually add flavor instead of just sitting there looking pretty. No weird substitutes, no complicated workarounds—just a straightforward dinner that happens to check all the paleo boxes.

Why You’ll Love This Shepherd’s Pie
- Paleo-friendly comfort food – This recipe gives you all the cozy, satisfying flavors of traditional shepherd’s pie while keeping it completely paleo with simple swaps like almond milk and ghee.
- Packed with vegetables – With carrots, zucchini, peas, and kale mixed into the savory beef filling, you’re getting a nutritious meal that doesn’t skimp on flavor.
- Ready in about an hour – From start to finish, this wholesome dinner comes together in just 55-65 minutes, making it perfect for busy weeknights when you want something homemade.
- Family-approved meal – The creamy potato topping and flavorful beef filling make this a hit with everyone at the table, even those who aren’t following a paleo diet.
What Kind of Ground Beef Should I Use?
For shepherd’s pie, you’ll want to use ground beef with a fat content that keeps things flavorful without making your filling too greasy. An 85/15 or 90/10 lean-to-fat ratio works really well here – it gives you enough fat for good flavor and moisture, but won’t leave you with a pool of grease at the bottom of your dish. If you only have access to leaner ground beef like 93/7, that’ll work too, though you might want to add a touch of extra oil when browning it. You can also swap the ground beef for ground lamb if you want to make a more traditional shepherd’s pie, or even use ground turkey for a lighter option.
Options for Substitutions
This paleo shepherd’s pie is pretty adaptable, so here are some swaps you can make:
- Russet potatoes: For a true paleo version, swap the potatoes with cauliflower or sweet potatoes. If using cauliflower, steam it until tender, then mash with the butter and milk. Sweet potatoes work the same way as regular potatoes but add a slightly sweet flavor.
- Almond milk: Any non-dairy milk works here – coconut milk, cashew milk, or oat milk are all good options. Regular dairy milk is fine too if you’re not strictly paleo.
- Ground beef: Ground turkey, chicken, or lamb all work well in this recipe. Lamb actually makes it more traditional since shepherd’s pie originally used lamb (cottage pie uses beef).
- Tapioca starch: Cornstarch or arrowroot powder can replace tapioca starch in equal amounts for thickening the filling.
- Vegetables: The veggie mix is flexible – try green beans instead of peas, mushrooms instead of zucchini, or add celery. Just keep the total amount of vegetables around 4 cups so the filling doesn’t get too watery.
- Kale: Spinach, Swiss chard, or collard greens can replace the kale. If using spinach, add it at the end since it wilts quickly.
Watch Out for These Mistakes While Cooking
The biggest mistake with shepherd’s pie is watery filling, which happens when you don’t cook off enough liquid from the beef and vegetables – make sure to simmer the mixture until it thickens properly before adding it to your baking dish.
Another common error is not mashing your potatoes until they’re completely smooth, since lumpy potatoes won’t spread evenly over the filling and can create gaps where the meat mixture bubbles through.
To avoid a soggy bottom layer, drain any excess fat from the ground beef after browning, and give your tapioca starch slurry time to work by letting the filling simmer for a few minutes until it visibly thickens.
For the best texture, let the casserole rest for 10 minutes after baking so the layers set up nicely and don’t slide apart when you scoop out servings.
What to Serve With Paleo Shepherd’s Pie?
Shepherd’s pie is pretty much a complete meal on its own since it’s packed with meat, veggies, and that creamy potato topping, but I love serving it with a simple side salad to add some freshness to the plate. A basic mixed greens salad with olive oil and lemon juice works great, or you could do a cucumber and tomato salad if you want something crisp and light. If you’re feeding a crowd or want to make it feel more like a full dinner spread, some crusty bread or dinner rolls are perfect for soaking up any extra sauce from the bottom of your dish. You could also serve it alongside roasted Brussels sprouts or green beans if you want to add even more veggies to the meal.
Storage Instructions
Store: Shepherd’s pie is one of those dishes that actually tastes better the next day! Keep it covered in the fridge for up to 4 days. The flavors really have time to meld together, making it perfect for meal prep or easy weeknight dinners.
Freeze: This freezes really well, which is great if you want to make a double batch. Let it cool completely, then wrap tightly with plastic wrap and foil, or portion it out into individual servings in freezer-safe containers. It’ll keep for up to 3 months.
Reheat: To reheat from the fridge, cover with foil and warm in a 350°F oven for about 20-25 minutes until heated through. From frozen, thaw overnight in the fridge first, then reheat the same way. You can also microwave individual portions for 2-3 minutes, stirring halfway through.
| Preparation Time | 15-20 minutes |
| Cooking Time | 40-45 minutes |
| Total Time | 55-65 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 1750-1950
- Protein: 80-95 g
- Fat: 70-85 g
- Carbohydrates: 170-190 g
Ingredients
For the potato topping:
- 1/2 cup almond milk (unsweetened)
- 5 large russet potatoes (about 2 lbs total)
- 1/4 cup salted butter (I use Kerrygold for richness)
- salt to taste
- black pepper to taste (freshly ground preferred)
For the meat and vegetable filling:
- 1 1/3 lb ground beef (80/20 blend for best flavor)
- 1 cup carrots (diced into 1/4-inch pieces)
- 1 cup frozen peas
- 1 small onion (finely diced)
- 1 cup kale (roughly chopped)
- 1 cup zucchini (diced to match carrot size)
For the sauce:
- 1 tsp basil (dried)
- 2 tsp tapioca starch (or arrowroot powder for thickening)
- 1/2 tsp salt
- 3/4 cup beef stock (or broth)
- 1 tsp Italian seasoning
- 1/2 cup petite diced tomatoes
- 2 tsp garlic (freshly minced)
Step 1: Prepare the Potato Topping
- 5 large russet potatoes
- 1/4 cup salted butter
- 1/2 cup almond milk
- salt to taste
- black pepper to taste
Cut russet potatoes into quarters and place in a large pot of cold salted water.
Bring to a boil and cook for 12-15 minutes until a fork easily pierces the largest piece.
The potatoes should be completely tender but not falling apart.
Drain thoroughly in a colander, then return to the pot.
Add butter and almond milk, then mash until you reach your desired consistency—I prefer leaving it slightly chunky for a rustic texture rather than a smooth purée.
Season generously with salt and freshly ground black pepper to taste.
Set aside in a bowl while you prepare the filling.
Step 2: Build the Savory Meat and Vegetable Base
- 1 1/3 lb ground beef
- 1 small onion
Heat a large oven-safe skillet over medium-high heat and add the ground beef with the finely diced onion.
Brown the beef, breaking it up with a wooden spoon as it cooks, for about 8-10 minutes until no pink remains.
The onion should soften and become translucent.
Once the beef is fully cooked, tilt the pan and carefully spoon off any excess fat from the surface—this keeps the filling less greasy while maintaining flavor.
I like using an 80/20 blend because it has enough fat to develop deep flavor without leaving a pool of grease.
Step 3: Create the Sauce and Add Vegetables
- 3/4 cup beef stock
- 1/2 cup petite diced tomatoes
- 2 tsp garlic
- 2 tsp tapioca starch
- 1 tsp basil
- 1 tsp Italian seasoning
- 1/2 tsp salt
- 1 cup carrots
- 1 cup zucchini
- 1 cup kale
- 1 cup frozen peas
While the beef cooks, combine the beef stock, petite diced tomatoes, garlic, tapioca starch, basil, Italian seasoning, and salt in a small bowl.
Whisk until the starch is completely dissolved with no lumps—this ensures a smooth sauce rather than a grainy one.
Once the cooked beef from Step 2 has been drained of excess fat, pour this sauce mixture into the skillet and stir well to combine.
Add the diced carrots, zucchini, chopped kale, and frozen peas, stirring to distribute everything evenly.
Simmer over medium heat for 10-12 minutes, stirring occasionally, until the carrots are tender and the sauce has thickened slightly.
The tapioca starch will naturally thicken the filling as it simmers, creating a cohesive texture when baked.
Step 4: Assemble and Bake the Shepherd’s Pie
- meat and vegetable filling from Step 3
- mashed potato topping from Step 1
Preheat your oven to 350°F.
Once the filling from Step 3 has thickened and the vegetables are tender, spread it evenly in your oven-safe skillet (or transfer to a 9×13-inch baking dish if your skillet isn’t oven-safe).
Gently spread or spoon the mashed potatoes from Step 1 over the entire surface of the meat and vegetable mixture, smoothing it with the back of a spoon to create an even layer.
You don’t need to make it perfect—rustic ridges actually help crisp up nicely.
Bake for 25-30 minutes until the potato topping is golden-brown on the edges and the filling is bubbling around the sides.
This tells you the internal temperature has evened out and everything is piping hot.
Step 5: Rest and Serve
Remove the shepherd’s pie from the oven and let it rest for 5 minutes before serving.
This cooling time allows the filling to set slightly so it won’t be runny when you scoop it onto a plate, and it keeps the layers distinct rather than sliding together.
Use a large spoon to serve generous portions directly from the skillet, making sure each serving gets a good ratio of potato topping to filling underneath.

Mouthwatering Paleo Shepherd's Pie
Ingredients
For the potato topping:
- 1/2 cup almond milk (unsweetened)
- 5 large russet potatoes (about 2 lbs total)
- 1/4 cup salted butter (I use Kerrygold for richness)
- salt to taste
- black pepper to taste (freshly ground preferred)
For the meat and vegetable filling:
- 1 1/3 lb ground beef (80/20 blend for best flavor)
- 1 cup carrots (diced into 1/4-inch pieces)
- 1 cup frozen peas
- 1 small onion (finely diced)
- 1 cup kale (roughly chopped)
- 1 cup zucchini (diced to match carrot size)
For the sauce:
- 1 tsp basil (dried)
- 2 tsp tapioca starch (or arrowroot powder for thickening)
- 1/2 tsp salt
- 3/4 cup beef stock (or broth)
- 1 tsp Italian seasoning
- 1/2 cup petite diced tomatoes
- 2 tsp garlic (freshly minced)
Instructions
- Cut russet potatoes into quarters and place in a large pot of cold salted water. Bring to a boil and cook for 12-15 minutes until a fork easily pierces the largest piece. The potatoes should be completely tender but not falling apart. Drain thoroughly in a colander, then return to the pot. Add butter and almond milk, then mash until you reach your desired consistency—I prefer leaving it slightly chunky for a rustic texture rather than a smooth purée. Season generously with salt and freshly ground black pepper to taste. Set aside in a bowl while you prepare the filling.
- Heat a large oven-safe skillet over medium-high heat and add the ground beef with the finely diced onion. Brown the beef, breaking it up with a wooden spoon as it cooks, for about 8-10 minutes until no pink remains. The onion should soften and become translucent. Once the beef is fully cooked, tilt the pan and carefully spoon off any excess fat from the surface—this keeps the filling less greasy while maintaining flavor. I like using an 80/20 blend because it has enough fat to develop deep flavor without leaving a pool of grease.
- While the beef cooks, combine the beef stock, petite diced tomatoes, garlic, tapioca starch, basil, Italian seasoning, and salt in a small bowl. Whisk until the starch is completely dissolved with no lumps—this ensures a smooth sauce rather than a grainy one. Once the cooked beef from Step 2 has been drained of excess fat, pour this sauce mixture into the skillet and stir well to combine. Add the diced carrots, zucchini, chopped kale, and frozen peas, stirring to distribute everything evenly. Simmer over medium heat for 10-12 minutes, stirring occasionally, until the carrots are tender and the sauce has thickened slightly. The tapioca starch will naturally thicken the filling as it simmers, creating a cohesive texture when baked.
- Preheat your oven to 350°F. Once the filling from Step 3 has thickened and the vegetables are tender, spread it evenly in your oven-safe skillet (or transfer to a 9x13-inch baking dish if your skillet isn't oven-safe). Gently spread or spoon the mashed potatoes from Step 1 over the entire surface of the meat and vegetable mixture, smoothing it with the back of a spoon to create an even layer. You don't need to make it perfect—rustic ridges actually help crisp up nicely. Bake for 25-30 minutes until the potato topping is golden-brown on the edges and the filling is bubbling around the sides. This tells you the internal temperature has evened out and everything is piping hot.
- Remove the shepherd's pie from the oven and let it rest for 5 minutes before serving. This cooling time allows the filling to set slightly so it won't be runny when you scoop it onto a plate, and it keeps the layers distinct rather than sliding together. Use a large spoon to serve generous portions directly from the skillet, making sure each serving gets a good ratio of potato topping to filling underneath.






