Caldo de Res

Caldo de Res is a classic Mexican beef soup built around a clear, deeply savory broth and large, clearly defined pieces of beef and vegetables. The key to a proper version is not complexity but control: the beef shank must simmer gently long enough to give the broth body and richness without turning cloudy, and the vegetables must be added in stages so the corn, potatoes, carrots, chayote, zucchini, and cabbage all finish tender but intact. This is a soup of clarity and generosity — golden broth, marrow-rich beef, and chunky vegetables that still taste like themselves. Finished with fresh cilantro and lime, it is simple, restorative, and very satisfying. Keeping the beef broth at a genuine gentle simmer, never a hard boil, is the technique this whole soup depends on for real clarity — a hard boil agitates fat and proteins directly into the liquid, muddying exactly the clean, golden broth this dish is built around, the same gentle-simmer-protects-clarity principle used elsewhere in this collection whenever a long-cooked beef stock needs to stay genuinely clear rather than cloudy. Adding the vegetables in carefully staged batches, long-cooking ones first and quick-cooking ones only near the end, is what lets every vegetable finish tender at the same moment rather than some collapsing while others remain undercooked. Keeping every piece of beef and vegetable genuinely large, rather than finely cut, is what preserves this soup’s rustic, generous character. The payoff is a bowl that’s structured and abundant — clear golden broth, marrow-rich beef, and vegetables that still taste distinctly like themselves.

Bowl of caldo de res showing tender beef shank in a clear golden broth with large chunks of corn, potato, carrot, chayote, zucchini, and cabbage, on marble surface

Prep Time : 25 min

Cook Time : 2 hr, 30 min

Servings : 4

Prep Time :

25 min

Cook Time :

2 hr, 30 min

Servings :

4

Ingredients

For the Beef Broth


• 1.3–1.5kg bone-in beef shank, cut into 4 large pieces


• 2 tsp fine sea salt, plus more to taste — this one on Amazon


• Freshly ground black pepper, to taste


• 1 medium white onion, halved


• 6 garlic cloves, peeled


• 2 bay leaves


• 10 black peppercorns — this one on Amazon


• 1 small bunch cilantro stems


• 3.2 litres water

For the Vegetables


• 2 ears corn, cut into 2 or 3 pieces each


• 2 medium carrots, peeled and cut into large chunks


• 2 medium potatoes, peeled and cut into large wedges


•1 medium chayote, peeled and cut into large chunks


• 2 medium zucchini, cut into thick half-moons or large chunks


• 1 small green cabbage, cut into 4 wedges

For Finishing and Serving


• 1 small bunch fresh cilantro leaves, roughly chopped


• 2 limes, cut into wedges


• Fine sea salt, to taste


• Warm corn tortillas, for serving

This post may contain affiliate links. As an Amazon Associate I earn from qualifying purchases, at no additional cost to you.


Directions

  1. Start the Broth
    Place the beef shank in a large heavy pot. Add the onion, garlic, bay leaves, black peppercorns, cilantro stems, and water. Add the 2 tsp salt. Bring the pot slowly up to a gentle boil over medium heat. As soon as it starts boiling, reduce immediately to a low simmer. Skim the foam and impurities that rise to the surface during the first 20–30 minutes. Simmer uncovered or partially covered for 1 hour 30 minutes, skimming occasionally, until the broth is golden and the beef has started to soften. The broth should be clear and clean-looking, not cloudy. A hard boil will agitate the fat and proteins into the liquid and make the broth muddy, so keep it at a very gentle simmer with only small lazy bubbles. That most concentrated release of foam and impurities happens specifically in these first 20–30 minutes — staying attentive with skimming through that early window is what sets the broth’s clarity for the many hours of simmering still to come.
  2. Strain and Clean Up the Broth
    Once the broth has developed good flavor, remove and discard the onion, garlic, bay leaves, peppercorns, and cilantro stems. Taste the broth and add a little more salt if needed. If there is a heavy layer of foam or excess fat, skim lightly, but do not remove all the fat — a little surface richness is part of what makes caldo de res satisfying. The broth should taste distinctly beefy and seasoned, but still delicate and brothy rather than heavy or greasy. Removing these aromatics once their flavour has already been extracted, rather than leaving them in for the full remaining cook, keeps them from becoming waterlogged and mushy while adding nothing further to a broth that’s already absorbed what they had to give.
  3. Add the Long-Cooking Vegetables
    Add the corn pieces, carrots, and potatoes to the broth. Simmer for 15 minutes. Then add the chayote and continue simmering for another 10 minutes. These vegetables go in first because they need longer cooking and help flavor the broth further without overcooking the faster vegetables. The potatoes should just be starting to soften at the edges, and the carrots should be yielding slightly but still hold their shape. Working through the vegetables in genuine stages, rather than adding everything together, respects each one’s real, individual cooking time — corn, carrot, and potato all need meaningfully longer than the zucchini and cabbage still to come.
  4. Finish with the Quick-Cooking Vegetables
    Add the zucchini and cabbage wedges. Continue simmering for 10–15 minutes more, or until all the vegetables are tender and the beef shank is fully cooked and easy to pull apart with a spoon or fork. Do not overcook at this stage. The zucchini should be tender but not collapsing, and the cabbage should be soft yet still recognizable as a wedge. The final pot should look abundant and structured — not like mixed vegetable soup. Each component should still be visually distinct. Adding these more delicate vegetables only in this final stage, well after the denser ones, is what lets them finish tender in the same window as the rest without turning to mush from spending unnecessary extra time in the simmering broth.
  5. Final Seasoning
    Taste the broth one last time and adjust with more salt if needed. Add a few grinds of black pepper if you like, though traditionally the broth stays quite clean and the lime does much of the brightening at the end. Let the soup sit off the heat for 5 minutes before serving so the broth settles slightly and the flavors come together. The beef should be tender but not shredded to threads, the corn juicy, the potatoes creamy, and the broth warm, golden, and fragrant rather than aggressively seasoned. That brief off-heat rest lets residual heat continue gently working through the pot while everything settles into a more cohesive final balance, rather than serving the soup the instant it comes off active heat.
  6. Serve
    Place one piece of beef shank in each bowl. Divide the vegetables evenly so each bowl gets corn, carrot, potato, chayote, zucchini, and cabbage. Ladle over plenty of clear golden broth. Finish with chopped fresh cilantro and serve with lime wedges on the side. Warm corn tortillas are the most classic accompaniment. Squeeze lime over the soup just before eating. Serving the lime as a wedge to be squeezed at the table, rather than pre-mixed into the broth, lets each person control their own level of brightness right before that first sip, when the citrus is at its most vivid.

*Notes

  • Keeping the broth at a genuine gentle simmer through its full cook, never allowing it to boil hard at any point, deserves real respect as the technique this soup’s clarity depends on entirely. A hard boil physically agitates the liquid enough to work fat and proteins directly into the broth — once that emulsification happens, no amount of subsequent skimming fully restores the clean, golden broth this dish is meant to have. The gentle simmer specified throughout protects that clarity for the entire multi-hour cook.
  • Staging the vegetable additions — corn, carrot, and potato first, chayote following, zucchini and cabbage only near the very end — reflects genuine attention to how differently each vegetable actually behaves under heat. Adding everything at once would force an impossible compromise, either leaving the denser vegetables undercooked or letting the more delicate ones collapse into mush by the time the others finally catch up.
  • Keeping every piece of beef and vegetable genuinely large, rather than finely diced, is worth understanding as a deliberate choice about this soup’s whole character, not simply a matter of presentation. Caldo de res is meant to feel rustic and generous, with every component still clearly recognisable as itself in the finished bowl — smaller, finer pieces would push the dish toward something closer to a blended, homogenous soup rather than this specific, chunky, structured style.
  • Not removing all the surface fat when skimming, and instead leaving a modest amount of richness, is a small but genuine detail worth respecting. That surface fat contributes real satisfaction and body to the finished broth — over-skimming in pursuit of a leaner result would actually work against what makes this particular soup feel properly comforting and complete.

Why This Recipe Works

This recipe works because the broth is built and maintained at a genuine gentle simmer throughout its long cook, protecting the clarity this soup depends on from the fat and protein emulsification a hard boil would cause. Vegetables are added in carefully staged batches specifically calibrated to their individual cooking times, letting every one finish properly tender together rather than some overcooking while others lag behind.

Every piece of beef and vegetable is kept genuinely large, preserving the soup’s rustic, generous character, and a modest amount of surface fat is deliberately left rather than fully skimmed, protecting the broth’s satisfying richness. Fresh lime squeezed at the table finishes the dish with bright, immediate acidity right when it matters most.


Ingredient Breakdown

Bone-In Beef Shank

The protein foundation — its bone and connective tissue give the broth genuine body and marrow-rich richness beyond what boneless cuts provide.

Gently Simmered Beef Broth

The base — kept at a genuine simmer throughout, protecting the broth’s clarity from fat and protein emulsification.

Staged Vegetable Additions

The critical technique — long-cooking vegetables first, delicate ones only near the end, letting every component finish properly tender together.

Generously Sized Vegetable Cuts

The structural choice — kept large rather than finely diced, preserving the soup’s rustic, chunky character.

Fresh Lime, Squeezed at the Table

The finishing brightness — added right before eating for maximum, immediate citrus impact.


Flavor Structure Explained 

This caldo de res follows a layered balance model:

  • Deep beefy foundation (gently simmered shank and broth)
  • Sweet, distinct vegetable body (corn, carrot, potato, chayote, zucchini, cabbage)
  • Fresh herbal lift (cilantro)
  • Bright citrus finish (fresh lime, squeezed at the table)

Gently simmered beef shank and its own broth provide this soup’s deep, genuinely beefy foundation, built patiently over more than an hour of careful cooking. Corn, carrot, potato, chayote, zucchini, and cabbage each retain their own distinct sweetness and texture rather than blending into an undifferentiated mush, thanks to their staged additions. Fresh cilantro adds clean, herbal lift right at serving. Fresh lime, squeezed at the table just before eating, finishes each bowl with bright, immediate citrus that cuts through the broth’s richness.


Common Mistakes to Avoid 

  • Boiling the Broth Hard Instead of Keeping It at a Gentle Simmer – This agitates fat and proteins into the liquid, muddying the broth. Always keep it at a genuine, gentle simmer throughout.
  • Adding All the Vegetables at Once – This forces a compromise between undercooked dense vegetables and overcooked delicate ones. Always stage the additions according to each vegetable’s own cooking time.
  • Cutting the Vegetables Too Small – This pushes the soup toward a finer, less rustic character than caldo de res is meant to have. Always keep every piece generously large.
  • Removing All the Surface Fat – This strips away real richness and satisfaction from the broth. Always leave a modest amount when skimming.
  • Adding Lime Directly to the Pot Instead of at the Table – This dulls the citrus’s brightness by the time the soup is served. Always squeeze it fresh, right before eating.

Variations

Extra-Rich Version

Add a beef marrow bone alongside the shank for even more body and richness in the finished broth.

Spicy Version

Serve with a side of your favourite salsa for those who want extra heat added at the table.

Extra-Vegetable Version

Add a few extra chunks of carrot or additional corn pieces for a heartier, more vegetable-forward bowl.

Make-Ahead Version

Cook the broth and beef fully ahead, then add the vegetables fresh during reheating to avoid overcooking them.


Storage & Make-Ahead

This soup reheats well, but the vegetables are best the day it is made. If making ahead, you can cook the broth and beef first, then reheat and add the vegetables closer to serving time for the best texture.

The beef and broth alone can be refrigerated for up to 3 days or frozen for longer storage before the vegetable stage is added.

Fully finished caldo de res with vegetables is best eaten within a couple of days for the best vegetable texture.


Frequently Asked Questions

Why does the broth need to stay at a gentle simmer rather than being boiled to save time?

A hard boil physically agitates the liquid enough to work fat and proteins directly into it, and once that happens, no amount of later skimming fully restores a clean, golden broth. The gentle simmer specified throughout protects that clarity for the entire multi-hour cook.

Why are the vegetables added in stages instead of all at once?

Corn, carrot, and potato need meaningfully longer in the broth than more delicate vegetables like zucchini and cabbage. Adding everything together would force a compromise — either the dense vegetables stay undercooked, or the delicate ones collapse into mush waiting for the others to catch up.

Why should the vegetables be cut into large pieces rather than smaller, more manageable ones?

Caldo de res is meant to feel rustic and generous, with every component still clearly recognisable in the finished bowl. Smaller, finer pieces would push the dish toward a more blended, homogenous soup rather than this dish’s specific chunky, structured style.

Why shouldn’t all the surface fat be skimmed away?

A modest amount of surface fat contributes real richness and satisfaction to the finished broth. Over-skimming in pursuit of a leaner result actually works against what makes this particular soup feel properly comforting and complete.

Are there other classic Mexican beef or brothy soup dishes worth trying?

Mole de Olla offers a closely related Mexican beef broth built with a chile base rather than staying clean and clear. Caldo Tlalpeño and Sopa de Albóndigas are also worth exploring for different classic Mexican soup directions. Pozole Rojo is another hearty, traditional option, and Mexican-Style Rice makes a good addition alongside this soup for a fuller meal.



Nutrition Facts 

( per serving )

Calories

~480 kcal

Protein

 42 g

Fat

16 g

Carbs

44 g

Calories

~480 kcal

Protein

 42 g

Fat

16 g

Carbs

44 g

Related Recipes

Related Recipes


You might also like

You might also like


Bowl of caldo de res showing tender beef shank in a clear golden broth with large chunks of corn, potato, carrot, chayote, zucchini, and cabbage, on marble surface

Caldo de Res

Caldo de Res is a classic Mexican beef soup built around a clear, deeply savory broth and large, clearly defined pieces of beef and vegetables. The key to a proper version is not complexity but control: the beef shank must simmer gently long enough to give the broth body and richness without turning cloudy, and the vegetables must be added in stages so the corn, potatoes, carrots, chayote, zucchini, and cabbage all finish tender but intact. This is a soup of clarity and generosity — golden broth, marrow-rich beef, and chunky vegetables that still taste like themselves. Finished with fresh cilantro and lime, it is simple, restorative, and very satisfying. Keeping the beef broth at a genuine gentle simmer, never a hard boil, is the technique this whole soup depends on for real clarity — a hard boil agitates fat and proteins directly into the liquid, muddying exactly the clean, golden broth this dish is built around, the same gentle-simmer-protects-clarity principle used elsewhere in this collection whenever a long-cooked beef stock needs to stay genuinely clear rather than cloudy. Adding the vegetables in carefully staged batches, long-cooking ones first and quick-cooking ones only near the end, is what lets every vegetable finish tender at the same moment rather than some collapsing while others remain undercooked. Keeping every piece of beef and vegetable genuinely large, rather than finely cut, is what preserves this soup's rustic, generous character. The payoff is a bowl that's structured and abundant — clear golden broth, marrow-rich beef, and vegetables that still taste distinctly like themselves.
Prep Time 25 minutes
Cook Time 2 hours 30 minutes
Total Time 2 hours 55 minutes
Servings: 4
Course: Main Course, Soup
Cuisine: Mexican
Calories: 480

Ingredients
  

For the Beef Broth
  • 1.3–1.5 kg bone-in beef shank cut into 4 large pieces
  • 2 tsp fine sea salt plus more to taste
  • Freshly ground black pepper to taste
  • 1 medium white onion halved
  • 6 garlic cloves peeled
  • 2 bay leaves
  • 10 black peppercorns
  • 1 small bunch cilantro stems
  • 3.2 litres water
For the Vegetables
  • 2 ears corn cut into 2 or 3 pieces each
  • 2 medium carrots peeled and cut into large chunks
  • 2 medium potatoes peeled and cut into large wedges
  • 1 medium chayote peeled and cut into large chunks
  • 2 medium zucchini cut into thick half-moons or large chunks
  • 1 small green cabbage cut into 4 wedges
For Finishing and Serving
  • 1 small bunch fresh cilantro leaves roughly chopped
  • 2 limes cut into wedges
  • Fine sea salt to taste
  • Warm corn tortillas for serving

Method
 

Start the Broth
  1. Place the beef shank in a large heavy pot. Add the onion, garlic, bay leaves, black peppercorns, cilantro stems, and water. Add the 2 tsp salt. Bring the pot slowly up to a gentle boil over medium heat. As soon as it starts boiling, reduce immediately to a low simmer. Skim the foam and impurities that rise to the surface during the first 20–30 minutes. Simmer uncovered or partially covered for 1 hour 30 minutes, skimming occasionally, until the broth is golden and the beef has started to soften. The broth should be clear and clean-looking, not cloudy. A hard boil will agitate the fat and proteins into the liquid and make the broth muddy, so keep it at a very gentle simmer with only small lazy bubbles. That most concentrated release of foam and impurities happens specifically in these first 20–30 minutes — staying attentive with skimming through that early window is what sets the broth’s clarity for the many hours of simmering still to come.
Strain and Clean Up the Broth
  1. Once the broth has developed good flavor, remove and discard the onion, garlic, bay leaves, peppercorns, and cilantro stems. Taste the broth and add a little more salt if needed. If there is a heavy layer of foam or excess fat, skim lightly, but do not remove all the fat — a little surface richness is part of what makes caldo de res satisfying. The broth should taste distinctly beefy and seasoned, but still delicate and brothy rather than heavy or greasy. Removing these aromatics once their flavour has already been extracted, rather than leaving them in for the full remaining cook, keeps them from becoming waterlogged and mushy while adding nothing further to a broth that’s already absorbed what they had to give.
Add the Long-Cooking Vegetables
  1. Add the corn pieces, carrots, and potatoes to the broth. Simmer for 15 minutes. Then add the chayote and continue simmering for another 10 minutes. These vegetables go in first because they need longer cooking and help flavor the broth further without overcooking the faster vegetables. The potatoes should just be starting to soften at the edges, and the carrots should be yielding slightly but still hold their shape. Working through the vegetables in genuine stages, rather than adding everything together, respects each one’s real, individual cooking time — corn, carrot, and potato all need meaningfully longer than the zucchini and cabbage still to come.
Finish with the Quick-Cooking Vegetables
  1. Add the zucchini and cabbage wedges. Continue simmering for 10–15 minutes more, or until all the vegetables are tender and the beef shank is fully cooked and easy to pull apart with a spoon or fork. Do not overcook at this stage. The zucchini should be tender but not collapsing, and the cabbage should be soft yet still recognizable as a wedge. The final pot should look abundant and structured — not like mixed vegetable soup. Each component should still be visually distinct. Adding these more delicate vegetables only in this final stage, well after the denser ones, is what lets them finish tender in the same window as the rest without turning to mush from spending unnecessary extra time in the simmering broth.
Final Seasoning
  1. Taste the broth one last time and adjust with more salt if needed. Add a few grinds of black pepper if you like, though traditionally the broth stays quite clean and the lime does much of the brightening at the end. Let the soup sit off the heat for 5 minutes before serving so the broth settles slightly and the flavors come together. The beef should be tender but not shredded to threads, the corn juicy, the potatoes creamy, and the broth warm, golden, and fragrant rather than aggressively seasoned. That brief off-heat rest lets residual heat continue gently working through the pot while everything settles into a more cohesive final balance, rather than serving the soup the instant it comes off active heat.
Serve
  1. Place one piece of beef shank in each bowl. Divide the vegetables evenly so each bowl gets corn, carrot, potato, chayote, zucchini, and cabbage. Ladle over plenty of clear golden broth. Finish with chopped fresh cilantro and serve with lime wedges on the side. Warm corn tortillas are the most classic accompaniment. Squeeze lime over the soup just before eating. Serving the lime as a wedge to be squeezed at the table, rather than pre-mixed into the broth, lets each person control their own level of brightness right before that first sip, when the citrus is at its most vivid.

Notes

Keeping the broth at a genuine gentle simmer through its full cook, never allowing it to boil hard at any point, deserves real respect as the technique this soup’s clarity depends on entirely. A hard boil physically agitates the liquid enough to work fat and proteins directly into the broth — once that emulsification happens, no amount of subsequent skimming fully restores the clean, golden broth this dish is meant to have. The gentle simmer specified throughout protects that clarity for the entire multi-hour cook.
Staging the vegetable additions — corn, carrot, and potato first, chayote following, zucchini and cabbage only near the very end — reflects genuine attention to how differently each vegetable actually behaves under heat. Adding everything at once would force an impossible compromise, either leaving the denser vegetables undercooked or letting the more delicate ones collapse into mush by the time the others finally catch up.
Keeping every piece of beef and vegetable genuinely large, rather than finely diced, is worth understanding as a deliberate choice about this soup’s whole character, not simply a matter of presentation. Caldo de res is meant to feel rustic and generous, with every component still clearly recognisable as itself in the finished bowl — smaller, finer pieces would push the dish toward something closer to a blended, homogenous soup rather than this specific, chunky, structured style.
Not removing all the surface fat when skimming, and instead leaving a modest amount of richness, is a small but genuine detail worth respecting. That surface fat contributes real satisfaction and body to the finished broth — over-skimming in pursuit of a leaner result would actually work against what makes this particular soup feel properly comforting and complete.