Make the shrimp stock. Remove the shells from the shrimp and reserve them in a separate bowl. Return the peeled shrimp back to the refrigerator.
Heat the olive oil in a large pot or Dutch oven over medium heat. Add the shrimp shells, celery, carrot, garlic, and salt to the pot.
Sauté the ingredients until the shells start to turn pink and are fragrant, about 5 minutes, stirring occasionally.
Add the water, bring to a boil, reduce to a gentle simmer, cover, and cook for 25 minutes.
Strain the stock over a large bowl and reserve the broth. Discard the shells and vegetables.
Make the soup. Heat 2 teaspoons of olive oil over medium heat in the same pot or Dutch oven. Add the guajillo chiles, pasilla chiles, tomatoes, garlic, one half of the white onion, and 1 teaspoon kosher salt. Sauté the ingredients until the chiles are lightly toasted and fragrant, and the tomatoes start to soften, about 5 minutes. Pour in the water and bring to a simmer. Cover and cook for 10 minutes until the chiles have softened and rehydrated. Remove the pot from the heat.
Carefully transfer everything to a large blender and blend until smooth. Set aside.
In the same pot, heat the remaining 2 teaspoons of olive oil over medium-high heat. Add the remaining half of chopped white onion, potatoes, carrots, and remaining 1 teaspoon of kosher salt. Sauté for 5 minutes until the carrots begin to soften.
Strain the chile mixture into the pot or Dutch oven using a fine mesh strainer. Discard the chile pulp.
Add the reserved shrimp stock into the pot or Dutch oven and stir to combine.
Bring to a simmer, cover, and cook for 15-20 minutes, until the potatoes and carrots are soft and tender.
Add the peeled shrimp, epazote leaves, and cilantro sprigs to the pot. Cook for an additional 5 minutes until the shrimp are fully cooked. Taste for salt and add more if needed.
Serve immediately in bowls and garnish with chopped cilantro, onion, avocado, and lime juice.
Notes
Using homemade shrimp stock adds lots of flavor, but if you’re short on time you can use store bought broth or vegetable broth.
You can omit the cilantro sprigs if you prefer.
You can use shrimp with the head on, just remove it and the eyes and prepare this recipe as directed.