This traditional Mexican Chicken Soup (Caldo de Pollo) is a deeply comforting and nourishing bowl of tender shredded chicken, colorful vegetables, and aromatic spices simmered in a rich, flavorful broth. Made with bone-in chicken pieces for maximum flavor, this budget-friendly recipe is naturally healthy, incredibly customizable with fresh toppings, and tastes even better the next day — making it the ultimate make-ahead comfort meal for chilly evenings.
2lbschicken drumsticks and thighs - 900g, bone-in and skin-on
10cupswater - 2.4L
1large white onion - quartered, reserve ¼ for later
1whole head of garlic - top cut off to expose cloves
3bay leaves
2tspsalt - plus more to taste
1tspblack pepper
1tspground cumin
2tspchicken bouillon - optional, for extra flavor
3medium carrots - peeled and sliced into rounds
2stalks celery - chopped
2medium potatoes - peeled and cubed
2ears of corn - cut into 3-inch pieces; or 1 cup frozen corn
1medium zucchini - sliced
1cupgreen beans - trimmed and cut into 2-inch pieces
14.5ozcanned diced tomatoes - 411g, with juice
½cupfresh cilantro - chopped
3green onions - chopped
1tspdried Mexican oregano
For Serving
2ripe avocados - diced
fresh lime wedges
tortilla chips
shredded Mexican cheese blend
additional fresh cilantro
sliced radishes
sour cream - optional
Instructions
Place chicken in a large Dutch oven with 10 cups of water, three-quarters of the quartered onion, whole garlic head, bay leaves, salt, pepper, cumin, and bouillon (if using). Bring to a boil over medium-high heat, then reduce to a gentle simmer.
Skim any foam from the surface during the first 10 minutes of simmering. Partially cover and simmer for 25–30 minutes until the chicken is cooked through.
Finely chop the reserved onion quarter and add to the pot along with the carrots, celery, cilantro, green onions, Mexican oregano, and canned diced tomatoes with their juice. Simmer uncovered for 15 minutes.
Add the cubed potatoes and fresh corn rounds (if using) to the pot and simmer for 10–15 minutes until the potatoes are fork-tender.
Stir in the zucchini, green beans, and frozen corn (if using instead of fresh). Simmer for 10–12 minutes until tender-crisp; avoid overcooking.
Remove chicken with tongs and discard the garlic head and bay leaves. Once cool enough to handle, remove and discard skin and bones, then shred the meat into bite-sized pieces.
Return shredded chicken to the pot, taste and adjust salt and pepper, and simmer for 5 more minutes. Ladle into bowls and serve with desired toppings.
Notes
Use bone-in chicken: Bone-in, skin-on pieces create a far richer broth than boneless chicken. Don't skip this for best flavor.
Skim the foam: Removing foam during the first 10 minutes of simmering results in a cleaner, clearer broth.
Add vegetables in stages: Harder vegetables go in first so everything finishes cooking at the same time without turning mushy.
Don't rush the simmer: A low, gentle simmer develops deep flavor; boiling too hard makes the broth cloudy and the chicken tough.
Make-ahead tip: This soup tastes even better the next day. Let flavors develop overnight in the refrigerator and reheat with a splash of broth or water if thickened.
Freezer-friendly: Freeze in airtight containers (without toppings) for up to 3–4 months. Thaw overnight in the fridge and reheat on the stovetop.
Rotisserie shortcut: Swap raw chicken for a store-bought rotisserie chicken. Simmer vegetables in chicken broth and stir in shredded meat at the end.
Spice it up: Add 1–2 diced jalapeños or a chipotle pepper in adobo sauce when adding the first round of vegetables for extra heat.
Add rice or beans: Stir in 1 cup long-grain white rice with the potatoes (add 1 extra cup water), or add 1–2 cans drained black beans in the last 10 minutes.
Lime at the end: Always squeeze fresh lime juice right before eating to preserve its bright, vibrant flavor.