Skip to content
KETOFOCUS.

Sweater weather calls for keto comfort food. Get Cozy →

Taco Salad

Juicy seasoned beef over crisp romaine with avocado and cheese, at 4.6g net carbs and 29g protein, no fried shell anywhere. I whisk my own nine spice taco seasoning together, brown the beef, and I let it simmer with the seasoning and a splash of water so the spices coat every crumble. Twenty minutes, one skillet.
  • 4.6gnet carbs
  • 29gprotein
  • 20minutes
  • 4servings

This post may contain affiliate links. See my disclosure policy.

A restaurant version comes in a fried tortilla shell that adds 25 to 35g of carbs before you even get to the fillings. Most store-bought seasoning packets contain corn starch, sugar, and maltodextrin. I skip both problems: no shell, seasoning from scratch with nine spices, and the whole thing is on the table in 20 minutes. A reader named Jordan told me this was the first salad that actually worked as dinner, not just damage control. The seasoned beef and avocado are why.

a salad with red onion, avocado, jalapeno chips and tomatoes sits in front of corn chips

Why Homemade Seasoning Matters

The blend is chili powder, cumin, paprika, garlic powder, onion powder, red pepper, cayenne, oregano, and salt. That is it. No corn starch, no sugar, no anti-caking agents. I use both cayenne and crushed red pepper on purpose because they build differently: cayenne hits sharp and upfront, the red pepper flakes bring a slower warmth that layers underneath. No store-bought packet does that. A typical packet also has 3 to 5g of carbs per serving from fillers alone. This version has essentially zero. I make a double or triple batch and keep it in a jar so I can season ground beef, chicken, or pork any night of the week. The same blend works in my keto taco casserole.

Building the Salad

I brown a pound of ground beef in a skillet, sprinkle the seasoning over the meat, add a quarter cup of water, and let it simmer until the liquid evaporates. That concentrated simmer step is what makes the seasoning coat every piece of meat instead of sitting on top. While the beef cooks, I shred romaine, dice the tomato and avocado, and chop the red onion and cilantro. The entire dinner is prepped and on the table before the beef finishes simmering.

A drizzle of sour cream and salsa over the top finishes it. I also stir together a quick dressing when I want something richer: two tablespoons sour cream, a squeeze of lime, and a pinch of cumin whisked until smooth. It takes 30 seconds and adds a creamy tang that plain sour cream alone does not. I have tried bottled ranch, but it buries the seasoning flavor, so I skip it.

Protein Swaps

Ground beef is my default, but I have made this with ground turkey, cilantro lime chicken, shredded rotisserie chicken, air fryer steak bites sliced thin, and pulled pork. The seasoning works on all of them. Ground turkey runs leaner, so I add a tablespoon of avocado oil to the skillet to keep it from drying out. Ground turkey and ground chicken need to reach 165 degrees, so I check with a thermometer before the meat goes on the salad. For a fast weeknight dinner when I have leftover protein, I skip the skillet entirely and toss the cold meat over the salad. The seasoning flavor holds up at room temperature.

Toppings I rotate every week

The base recipe is a starting point. Here is what I grab depending on what is in the fridge:

  • Low carb vegetables. Bell peppers, poblano peppers, jalapenos, green onions, sliced olives, and diced radishes for crunch.
  • Beans. Lupin beans are the keto option at roughly 1g net carbs per serving. They hold up well and add bulk without spiking anything.
  • Crunch. Cheese taco shells crushed into chips or pork rinds crumbled over the top. I rotate between the two depending on what I have.
  • Dressings and sauces. Sour cream with lime and cumin, salsa verde, or hot sauce. I keep it simple most nights.
fresh taco salad sits on a terra cotta plate with shredded cheese and avocado falling down

What I serve alongside it

This is a full meal on its own, but I pair it with sides when I am feeding more people.

Mexican night spread. I set everything out buffet-style: seasoned beef in one dish, all the toppings in separate bowls, and let everyone build their own. Sheet pan fajitas on the side give the spread more variety without extra stovetop work. I also add keto BBQ chicken tostadas as a second protein option when I want to go bigger.

Keeping it simple. On a regular Tuesday, I just make the salad and call it dinner. The beef, avocado, and cheese provide enough protein and fat that nobody leaves the table hungry.

Chicken, turkey, and other ways I make it

  • Chicken version. I use salsa chicken shredded straight from the slow cooker. The salsa adds moisture and flavor that ground chicken lacks on its own. I dial back the seasoning since the salsa carries its own spice.
  • Ground turkey. Works well with this seasoning but runs leaner than beef. I add a tablespoon of avocado oil to the skillet and bump up the cayenne since turkey absorbs less flavor from fat. I cook it to 165 degrees before it goes on the salad.
  • Greek yogurt instead of sour cream. Plain full fat Greek yogurt is a direct swap. It has a tangier flavor and slightly more protein. Coconut yogurt works if you are skipping dairy entirely.
  • Bowl version. For a heartier option, I crisp a cheese taco shell in the oven at 400 degrees for 3 minutes and use it as the base. All the crunch of a fried shell, none of the carbs.
  • Deconstructed nachos. I skip the lettuce base entirely and pile the seasoned beef, cheese, and toppings over crushed pork rinds.
a healthy taco salad on an orange plate with salsa ingredients around

Why I stopped buying seasoning packets

A premade kit from the grocery store typically includes a seasoning packet with corn starch and sugar, a fried tortilla bowl, and processed cheese. That combination pushes a single serving past 40g of net carbs.

  • Carb control. My homemade seasoning has zero added carbs. No corn starch, no maltodextrin. I measured every spice myself and I know exactly what goes in.
  • Fresh toppings. I dice the avocado, red onion, and cilantro right before serving. Store-bought kits sit on shelves for days, and you can taste the difference.
  • No fried shell. A traditional fried flour tortilla bowl adds 25 to 35g of carbs on its own. I skip it entirely and use romaine as the base. That one change is the single biggest carb savings in this recipe.
  • Protein quality. I choose the beef. I use 80/20 because the fat is the seasoning delivery system. The liquid simmers off and the fat carries every spice into the meat. 90/10 always tastes flatter to me. Store-bought kits use pre-cooked, pre-seasoned meat sitting in preservatives.

Storage and meal prep

To store. I keep the seasoned beef and the salad toppings in separate airtight containers in the fridge. The beef holds for 3 to 4 days. The cut vegetables (tomato, onion) stay fresh for 1 to 2 days once chopped. I dice the avocado right before serving, since cut avocado browns fast once the flesh hits the air. Storing them separately is the key to keeping everything crisp.

To reheat. I warm the beef in a skillet with a splash of water, or in the microwave in 30 second increments until heated through. Do not reheat the lettuce or vegetables. If the beef and salad got mixed in the same container, eat it cold or pull the beef out and reheat it separately.

To meal prep. I cook a double batch of seasoned beef and portion it into containers for the week. Wash and chop the vegetables, but keep them separate and assemble right before eating. The beef reheats well, but dressed salad does not.

To freeze. The seasoned beef freezes well for up to 3 months in airtight containers. I thaw it in the fridge overnight and reheat it in a skillet with a splash of water to bring the seasoning back to life. The fresh vegetables and avocado do not freeze, so I prep those the day I eat. A fresh bowl from frozen beef takes me about 5 minutes to assemble.

How to make taco salad

This comes together in three steps.

  1. Make the seasoning. Combine chili powder, cumin, salt, paprika, garlic powder, onion powder, crushed red pepper, cayenne, and oregano in a small bowl. Stir to combine. I do this in 30 seconds and it replaces a store-bought packet that would add hidden carbs.
  2. Brown the ground beef. Cook a pound of ground beef in a skillet over medium high heat, breaking it into small pieces, until browned (about 5 to 6 minutes). Sprinkle the seasoning blend over the meat, pour in a quarter cup of water, and reduce heat to medium low. Let it simmer until the liquid has mostly evaporated (about 3 to 4 minutes). The water helps the spices dissolve and coat every piece of meat evenly.
  3. Assemble. Add shredded romaine to a large bowl. Top with the seasoned beef, diced tomatoes, avocado, shredded cheddar, red onion, and cilantro. Finish with sour cream and salsa.

a bowl of salad next to tortilla chips, tomatoes and jalapenos

Key ingredients

  • Taco seasoning. Nine spices mixed from scratch. No corn starch, no sugar, no fillers. I make a triple batch and keep it in a jar so it is always ready to go.
  • Ground beef. I use 80/20 because the fat carries the seasoning flavor. The liquid simmers off and concentrates on the meat. 90/10 works but tastes flatter.
  • Toppings. Romaine, diced tomatoes, avocado, shredded cheddar, red onion, and cilantro. I also toss in sliced olives and green onions when I have them. Zucchini taco boats use the same seasoned beef if you want a different base.
  • Sauces. Sour cream and salsa (or pico de gallo) drizzled over the top. A squeeze of lime stirred into the sour cream makes a simple creamy dressing.
Discover more keto recipes on our channel Hundreds of keto recipe videos, with step by step instructions and the tips that make keto easy.
KetoFocus
The recipe

Taco Salad

Print Pin
Prep 10 min Cook 10 min Total 20 min Serves 4

Ingredients

Servings 4

Taco Seasoning Ingredients

Taco Salad Ingredients

Step by Step Instructions

  1. Make homemade taco seasoning

    In a small bowl, add chili powder, ground cumin, salt, paprika, garlic powder, onion powder, crushed red pepper, cayenne pepper and oregano. Mix to combine. Set aside.

    For this step

    • Chili powder
    • Cumin (ground)
    • Salt
    • Paprika
    • Garlic powder
    • Onion powder
    • Crushed red pepper flakes
    • Cayenne pepper
    • Oregano
    taco seasoning in a small bowl
  2. Make taco meat

    Add ground beef to a large skillet and cook over medium-high heat until browned. Add the taco seasoning and ¼ cup water. Lower the heat to medium-low, cover, and simmer until the liquid has mostly evaporated. Stir occasionally.

    For this step

    • Ground beef
    • Taco seasoning (from step 1)
    • Water
    seasoned ground beef in a skilelt
  3. Assemble salad

    Layer lettuce, taco beef, tomatoes, avocado, cheese, onion, and cilantro in a large bowl. Top with sour cream and salsa or pico de gallo.

    For this step

    • Lettuce
    • Taco meat (from step 2)
    • Cheese
    • Tomato
    • Avocado
    • Red onion
    • Cilantro
    • Sour cream
    • Salsa
    pouring on cilantro in a a salad bowl with other ingredients

Nutrition

Per serving: 1/4 of recipe

Calories
493
Fat
37.6g
Protein
29g
Total carbs
8.4g
Net carbs
4.6g

Nutrition is an estimate calculated from the ingredients listed. Brands vary, so check labels if you track closely.

Frequently Asked Questions

How many carbs and calories are in a taco salad without the shell?

One serving of my taco salad without a shell is 493 calories, 4.6g net carbs (8.4g total carbs, 3.8g fiber), 37.6g fat, and 29g protein. A fried flour tortilla bowl adds another 25 to 35g of carbs by itself, and a restaurant version with the shell, a seasoning packet, and beans or corn runs 40 to 60g of net carbs per serving.

Should the beef be warm or cold on a taco salad?

I serve the beef warm and everything else cool or at room temperature. The contrast between hot seasoned meat and cool avocado, tomato, and sour cream is part of what makes this work as dinner.

Can I make this dairy-free?

Yes. I swap the sour cream for coconut yogurt and skip the shredded cheddar. Nutritional yeast sprinkled over the top adds a savory, almost cheesy flavor if you miss the cheese, and the seasoned beef and avocado carry enough flavor that the bowl does not feel like it is missing anything.

Browse by ingredient
Similar recipes

People who cooked Taco Salad also made

Reviews

Tap to rate

4.7 from 20 ratings, 15 written

Made this recipe?

Replying to Kim

Your rating

Holly Brown

wait, 4.6 net carbs and that much beef?

Reply

Annie Lampella

Beef has zero carbs. I get the same reaction from people every time. The restaurant version runs 40 to 60g mostly from the fried tortilla bowl and the starch fillers in the seasoning packet.

Reply

Terri

Sizzle when the beef hit the pan and my son was at the kitchen door. He won’t eat salad. He ate this one.

Reply

Annie Lampella

Your son is the toughest critic there is. That sizzle at the pan does the work every time!

Reply

Sam

honestly this seasoning takes me right back to taco nights growing up

Reply

Annie Lampella

Sam, cumin and oregano together are what make it feel like taco night and not just seasoned beef. I kept nudging the oregano up until it clicked.

Reply

Min A.

Salting the tomatoes and letting them drain for five minutes before assembling fixed the watery mess at the bottom. That beef is too good to drown in tomato juice.

Reply

Annie Lampella

Ripe summer tomatoes need closer to eight minutes. I’ve pulled mine at five and still found liquid at the bottom. That cumin and chili blend deserves better than competing with tomato water.

Reply

Wendy

Turns out the store packet was always the problem.

Reply

Annie Lampella

Cornstarch and maltodextrin. Every time.

Reply

Sarah

Learned the hard way to leave the avocado out until you’re actually plating. Brown mush by day two if you don’t. The beef holds four days easy, and the romaine stays crisp if you store it dry and separate. Tuesday lunches sorted.

Reply

Annie Lampella

The lime trick buys a few hours max if you’ve already sliced. Easier to just wait til you plate. I roll romaine in paper towels after spinning dry. Keeps it crisp.

Reply

Tiffany

Cotija instead of shredded cheddar, and it works better here. The crumbles don’t melt into the warm beef and make everything muddy, so each component stays distinct.

Reply

Annie Lampella

The muddy thing is real and I never thought to fix it with cotija. Makes sense with the spice blend too, that sharper salt cuts through the beef better than cheddar does.

Reply

Tiffany

Hadn’t thought about the spice pairing but that makes sense. Cumin and cotija are already a thing.

Reply

Kim

Seven or eight batches in now, and what keeps catching me is the cumin-to-chili ratio, it always lands right (kept expecting to tip it somehow, never have). Most homemade blends I’ve tried end up too earthy or too hot. This one doesn’t. Started doubling it just to have some on hand for eggs midweek. Twenty minutes really is twenty minutes, which is why it’s become my weeknight standby.

Reply

Annie Lampella

Same, eggs with that blend. Just the cumin and chili powder on soft scrambled, not the full nine. Makes the jar go further.

Reply

Mei

Taco salad was the thing I thought I had to give up when I started keto. Found this recipe, made it that same night, and that nine-spice blend just brought everything back. Checked the net carbs three times because I was convinced I misread them. Only reason it’s not five stars is I added extra cayenne on the second batch and liked it even more, so that’s on me for not starting there.

Reply

Annie Lampella

More cayenne every time. I keep it at 1/4 tsp so it works for everyone, but if you’re making it for yourself, go double from the start.

Reply

Tasha

I’d written off taco night when I started keto, and then I made this with the nine-spice blend from scratch instead of reaching for a packet and I just stood there eating beef out of the skillet before I even assembled the salad. Still working on keeping the avocado from browning before I serve it, but the meat is so good I’m not sure it matters.

Reply

Annie Lampella

That skillet eating is just part of the process at this point. For the avocado, I cut it last and hit it with lime juice right when I slice it, then plate immediately.

Reply

Donna X.

I’ve been making taco meat for years and thought I had it down, but toasting the cumin in a dry pan for about 30 seconds before mixing it into the rest of the seasoning changed the depth of this dish noticeably. Something about blooming that spice first makes the beef taste like it simmered longer than it actually did. I also went with 93/7 ground turkey instead of beef (not the lean stuff, the fat matters) and it held up better than I expected through the whole bowl without getting dry. The nine-spice blend is genuinely better than anything that comes out of a packet, and with turkey you get a cleaner base that lets the individual spices come through more clearly. I’ve made this twice in the past ten days, and both times I finished the skillet with a small pat of Kerrygold before pulling it off the heat. That little bit of richness plays really well against the avocado. Toasted cumin, turkey, Kerrygold finish: that’s my version now.

Reply

Annie Lampella

The Kerrygold at the end is smart. I do turkey about half the time and always add fat back in, but mid-cook. Finishing with it might actually be better.

Reply

David

Make a triple batch of the seasoning right now and store it in a jar. I’ve made this probably eight times and that one change turned a 20-minute meal into a 10-minute meal on weeknights. Also started finishing the beef with a squeeze of lime right before I pull it off the heat, and it does something to the whole thing. Cuts through the fat, brightens everything up. No going back.

Reply

Annie Lampella

The lime at the end is smart. I add it to the sour cream dressing but never thought to hit the skillet with it directly. Trying that next time.

Reply

Brooke M.

Triple the recipe and keep a jar in the cabinet. I made it weekly for two months before realizing I didn’t need to measure nine spices every time. Use it on ground turkey, chicken, eggs, whatever. The cumin ratio beats any store packet, which is why it stays on the shelf.

Reply

Annie Lampella

Eggs with this seasoning is underrated. I’ve had a jar going for weeks and still haven’t had to mix a fresh batch.

Reply

Tara Harris

Nine spices is a lot to dig out on a weeknight, so I started making a triple batch and keeping it in a small jar by the stove. The whole salad comes together in the time it takes the beef to brown. Works on ground chicken too.

Reply

Annie Lampella

Chicken works. I add a splash of avocado oil first so the spices actually grip instead of falling to the pan bottom.

Reply

Quinn I.

Never made taco seasoning from scratch before and all nine spices felt like overkill going in. It wasn’t. Giving this 4 stars because I’d dial back the cayenne a touch, but the beef had a depth no packet has ever come close to.

Reply

Annie Lampella

Yeah the cayenne is the easiest dial to turn down. Start at 1/8 teaspoon and work back up from there. And the packet thing is real – most of them are half filler anyway, which is exactly why the beef never tastes like anything.

Reply

Riley

Does homemade actually taste better than a store-bought packet? I have the spices but measuring out nine feels like a lot.

Reply

Annie Lampella

Yes, and the carbs alone make it worth it. Most packets have corn starch and maltodextrin that add 3-5g per serving. I pre-mix mine into a small jar so it’s just one scoop after that.

Reply

Dani

Swapped ground beef for turkey (I know, sounds like a downgrade) and doubled the cayenne, and now I can’t stop noticing how much sharper the cumin hits when the heat’s up. Turkey tip: splash a tablespoon of water in right before you pull it or it’ll crumble.

Reply

Annie Lampella

More heat really does change how the cumin reads. I use avocado oil for the turkey instead of water but same fix.

Reply

Luz

I’ve been making taco bowls for years and always just grabbed the packet without thinking about it. Made this seasoning from scratch for the first time last week and the cumin comes through completely differently when it’s fresh and in the right ratio. The beef smelled incredible while it was browning, that nine-spice blend is doing real work. I assembled it over romaine with avocado and a handful of cotija I had on hand and it came together in under 25 minutes. The only thing I’d note is the cayenne adds up if you’re sensitive to heat, so I’ll dial that back a touch next time. Overall a solid 4 stars and it’s going in the regular weeknight rotation.

Reply

Annie Lampella

Cotija over romaine is a good swap. The saltiness plays off the cumin in a way cheddar doesn’t. For the cayenne, I cut to 1/8 teaspoon when I’m cooking for anyone who runs heat-sensitive.

Reply

Jordan

I almost grabbed a seasoning packet because making your own from nine spices seemed like overkill for a weeknight salad. Made the full recipe anyway, and the cayenne gives the beef this slow warmth I didn’t expect from a twenty-minute meal. A salad for dinner is usually just damage control for me, but this one actually filled me up. Saving this for spring evenings when I want something fast.

Reply

Annie Lampella

That slow warmth is why I use both cayenne and crushed red pepper. They build differently. Packets don’t layer like that.

Reply

Jordan

Didn’t realize they build differently like that. The packet version always just tastes like one flat hit.

Reply

Dana

Husband ate two servings before I even sat down. The seasoning has real kick to it.

Reply

Annie Lampella Recipe author

Dana ha that’s the best kind of compliment. The cayenne and crushed red pepper together give it that real heat without overwhelming everything else.

Reply

Keep going

More Dinner Recipes

See all 172 Dinner recipes

Get new recipes from Annie

One email a week. Unsubscribe whenever you like.