Quick Recipe Version (TL;DR)
Quick Ingredients
- 3.5 lb bone-in chicken pieces (thighs/drumsticks)
- 16 cups cold water
- 1 medium white onion (halved)
- 5 garlic cloves (smashed)
- 2 bay leaves, 1 tsp whole black peppercorns
- 2 1/2 tsp kosher salt, plus more to taste
- 3 medium carrots (3/4-inch chunks)
- 2 medium Yukon Gold potatoes (1 1/2-inch chunks)
- 2 medium zucchini (1/2-inch half-moons)
- 2 sprigs fresh epazote (or 1 tsp dried epazote)
- 1 cup long-grain white rice + 1 3/4 cups water + 1 tbsp oil + 1/2 tsp salt
- Lime wedges and 12 warm corn tortillas
Do This
- 1. Combine chicken, water, onion, garlic, bay leaves, peppercorns, and 2 1/2 tsp salt in a large pot; bring to a rolling boil, then reduce to a gentle simmer (about 190–200°F).
- 2. Skim foam/fat for the first 10 minutes; simmer 35 minutes until chicken is nearly tender.
- 3. Add carrots and potatoes; simmer 15–20 minutes until almost tender.
- 4. Add zucchini and epazote; simmer 5–7 minutes until zucchini is just tender. Adjust salt.
- 5. Cook rice separately: rinse, then simmer with 1 3/4 cups water, oil, and 1/2 tsp salt for 16–18 minutes; rest 5 minutes, fluff.
- 6. Serve broth and chicken with vegetables; add a 1/2-cup scoop of rice to each bowl. Offer lime wedges and warm tortillas.
Why You’ll Love This Recipe
- Pure comfort: a clear, fragrant broth with tender bone-in chicken and chunky vegetables.
- Authentic touch: fresh epazote adds the unmistakable Mexican aroma that makes caldo de pollo special.
- Simple and wholesome: everyday ingredients, one pot for the soup, and rice on the side.
- Family-friendly and freezer-friendly for easy weeknight meals or make-ahead lunches.
Grocery List
- Produce: White onion, garlic, carrots, Yukon Gold potatoes, zucchini, epazote (fresh or dried), limes
- Dairy: None
- Pantry: Bone-in chicken pieces, bay leaves, whole black peppercorns, kosher salt, long-grain white rice, neutral oil, corn tortillas
Full Ingredients
Broth Base
- 3.5 lb bone-in chicken pieces (thighs and drumsticks)
- 16 cups cold water
- 1 medium white onion, halved (leave root end on so it stays intact)
- 5 garlic cloves, lightly smashed
- 2 bay leaves
- 1 tsp whole black peppercorns
- 2 1/2 tsp kosher salt, plus more to taste
Vegetables & Herbs
- 3 medium carrots, peeled and cut into 3/4-inch chunks
- 2 medium Yukon Gold potatoes, peeled and cut into 1 1/2-inch chunks
- 2 medium zucchini (or Mexican calabacitas), cut into 1/2-inch half-moons
- 2 sprigs fresh epazote (or 1 tsp dried epazote)
- Optional garnish: chopped cilantro and finely diced white onion
Rice (for serving in the bowl)
- 1 cup long-grain white rice
- 1 3/4 cups water
- 1 tbsp neutral oil (such as canola or avocado)
- 1/2 tsp fine salt
To Serve
- 3 limes, cut into wedges
- 12 corn tortillas, warmed

Step-by-Step Instructions
Step 1: Prep the vegetables and aromatics
Peel and cut the carrots into chunky 3/4-inch pieces. Peel the potatoes and cut into 1 1/2-inch chunks. Slice the zucchini into 1/2-inch half-moons. Halve the onion through the root and lightly smash the garlic. Set everything by the stove so it is ready to go.
Step 2: Build the broth
In a large soup pot (at least 8–10 quarts), add the chicken, 16 cups cold water, onion halves, smashed garlic, bay leaves, peppercorns, and 2 1/2 teaspoons kosher salt. Bring to a rolling boil over high heat, then immediately reduce to maintain a gentle simmer at about 190–200°F. Gentle heat helps keep the broth clear.
Step 3: Skim and simmer for flavor
During the first 10 minutes, skim off any gray foam and excess fat that rise to the surface. Partially cover and simmer gently for 35 minutes. The chicken will be mostly cooked and the broth fragrant. Taste and adjust salt if needed.
Step 4: Add carrots and potatoes
Add the carrot and potato chunks to the pot. Return to a gentle simmer and cook for 15–20 minutes, until the potatoes are just tender when pierced with a knife and the chicken is very tender (thighs should register about 175°F).
Step 5: Finish with zucchini and epazote
Add the zucchini and the epazote. Simmer 5–7 minutes more until the zucchini is just tender but not mushy. Remove and discard the onion halves and bay leaves. Taste and adjust seasoning with more salt as needed. If desired, skim some fat for a lighter broth.
Step 6: Cook the rice
While the soup simmers, rinse the rice in a fine-mesh strainer under cool water for 30–45 seconds. In a small pot, combine the rinsed rice, 1 3/4 cups water, 1 tablespoon oil, and 1/2 teaspoon salt. Bring to a boil over medium-high heat, then reduce to low, cover tightly, and cook 16–18 minutes. Remove from heat and let stand, covered, 5 minutes; then fluff with a fork.
Step 7: Serve with lime and warm tortillas
Warm corn tortillas on a dry skillet or comal over medium heat (about 350°F on an electric griddle) for 45–60 seconds per side, stacking in a towel to keep warm. To serve, ladle hot broth and vegetables into bowls, add a piece or two of chicken, and top with a 1/2-cup scoop of rice. Finish with lime wedges at the table and optional cilantro and diced onion.
Pro Tips
- Start with cold water and keep the simmer gentle to get a clear, clean-tasting broth.
- Cut vegetables into chunky pieces so they hold their shape and don’t overcook.
- Add epazote at the end; long cooking can make it taste too strong or slightly bitter.
- For a leaner soup, remove chicken skin after the initial simmer or chill and lift off the fat cap before reheating.
- Salt in layers: a little at the start, then adjust once the vegetables and herbs are in.
Variations
- Add-ins: Chayote wedges, corn on the cob cut into chunks, or a handful of green beans go beautifully in this caldo.
- Spicy: Stir in 1–2 tsp minced chipotle in adobo or a whole serrano (slit lengthwise) during the last simmer.
- Pressure cooker: Cook chicken, aromatics, and water on High Pressure for 15 minutes; natural release 10 minutes. Add carrots/potatoes on Sauté 10 minutes, then zucchini and epazote for 3–5 minutes.
Storage & Make-Ahead
Refrigerate soup (without rice) in airtight containers for up to 4 days; keep rice separate to prevent it from absorbing broth. Freeze broth with chicken and vegetables for up to 3 months; thaw overnight in the refrigerator. Reheat gently to a simmer until piping hot (165°F), then add freshly warmed tortillas and a fresh scoop of rice to each bowl.
Nutrition (per serving)
Approximate: 430 calories; 30 g protein; 45 g carbohydrates; 12 g fat; 950 mg sodium; 4 g fiber. Calculated with 1/2 cup cooked rice and 2 corn tortillas per serving; values will vary with exact chicken pieces and seasoning.

