Soups & Stews
This Baja fish soup recipe brings the vibrant flavors of Mexico's Pacific coast to your kitchen with its signature crunchy celery crowns and bright lime finish. 🌊 The secret lies in building a rich, aromatic broth that perfectly balances seafood, tomatoes, and spices, creating a dish that's both hearty and refreshing.
Traditional Baja cuisine transforms simple ingredients into something extraordinary through careful layering of flavors and textures.
The recipe begins with a fragrant broth simmered with garlic, onions, and spices, then incorporates fresh fish and shrimp for a protein-rich base. What sets this dish apart is the celery crowns—crispy, caramelized celery pieces that add a satisfying crunch to each spoonful.
The final touch of lime juice brightens the flavors, making every bite taste fresh and lively.
What you'll achieve is a restaurant-quality seafood soup that's perfect for a light yet satisfying meal, whether served with warm tortillas or as a standalone dish. The combination of tender seafood, rich broth, and crispy celery creates a harmonious balance that's both comforting and exciting.
This is the kind of recipe that transforms an ordinary weeknight into a taste of Baja's coastal charm.
With its pescatarian focus and authentic Mexican flavors, this soup is ideal for seafood lovers looking for something special. The step-by-step process ensures you'll achieve professional results at home, making it a dish worth preparing for family gatherings or special occasions. Let's get started on creating this coastal masterpiece.
Ingredients for baja soup
Sixteen ingredients transform into Baja's signature seafood soup with vibrant coastal flavors.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Firm white fish like cod or halibut |
| Large Shrimp 🦐 | 1 ½ lb | Peeled, deveined, tails on |
| Yellow Onions 🧅 | 2 whole | Chopped, medium dice |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| Celery Stalks 🧅 | 4 whole | Thinly sliced for crowns |
| Roma Tomatoes 🍅 | 4 whole | Diced, San Marzano preferred |
| Fresh Cilantro 🌿 | ½ cup | Chopped, stems removed |
| Lime Juice 🍋 | ½ cup | Freshly squeezed |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For sautéing and finishing |
| Fish Stock 💧 | 4 cups | Homemade or high-quality |
| Tomato Paste 🍅 | ¼ cup | For broth depth |
| Ground Cumin 🌿 | 1 tbsp | Toasted for aroma |
| Dried Oregano 🍃 | 1 tsp | Mexican oregano preferred |
| Bay Leaves 🍃 | 2 whole | For broth complexity |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Cornstarch 🌾 | 1 tbsp | For thickening broth |
The fish and shrimp form the heart of this dish—look for sustainably sourced cod or halibut at your local seafood market or specialty grocer like Whole Foods. Wild-caught Alaskan salmon works beautifully too, but avoid farmed varieties for optimal texture. For shrimp, 16/20 count offers the perfect balance of size and flavor. The celery crowns require fresh, crisp stalks—avoid pre-cut celery, as it loses its crunch quickly. If you can't find San Marzano tomatoes, Roma tomatoes are the next best choice for their meaty texture and sweetness.
No fish stock? Vegetable stock with a splash of soy sauce mimics the umami depth, though true fish stock is ideal. Short on cilantro? Fresh parsley at half the amount works in a pinch, though it lacks the citrusy brightness. The lime juice should be freshly squeezed—bottled juice lacks the vibrant acidity. For the celery crowns, lightly coat slices in cornstarch before frying to ensure maximum crispiness. The tomato paste can be substituted with fire-roasted diced tomatoes if you prefer convenience, though it won't develop the same concentrated flavor.
Store fresh seafood in the coldest part of your fridge—use within 2 days for peak freshness. The broth can be made ahead and reheated gently, though the celery crowns are best prepared fresh. Portion the soup into containers with a layer of plastic wrap pressed directly on the surface to prevent a skin from forming. The finished soup keeps for 3 days refrigerated or 3 months frozen. For serving, garnish each bowl with extra cilantro and a sprinkle of toasted cumin seeds for authentic presentation.
Why You'll Love This Recipe
- I’ll be real: shrimp and fish aren’t cheap, but you can stretch this recipe by using cheaper cuts of fish or even swapping in extra shrimp for a lighter version. Still tastes like a splurge.
- One-Pot Magic: I swear by this recipe—just toss everything in one pot, and you’re done. No fancy gadgets, no extra bowls, and the shrimp and fish cook together like they’ve been friends forever.
- Garlic Bomb: Between us, that minced garlic and onions caramelizing at the bottom? It’s the secret weapon. The fish soaks up the flavor like a sponge, and the shrimp? They’re basically swimming in it.
- Lunch for Days: Honestly, this soup doubles as tomorrow’s lunch without effort. The flavors only get better after a night in the fridge—my husband’s favorite part is the crispy bits clinging to the fish.
Step-by-step instructions for Baja fish soup
Master this vibrant Baja-inspired seafood soup with crisp celery crowns and bright citrus notes.
🍳 Step 1: Build the Flavor Base with Sautéed Aromatics
Heat the 0.5 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 2 whole chopped yellow onions and cook for 5 minutes until translucent. Stir in the 4 whole thinly sliced celery stalks and cook for another 3 minutes until softened.
Add the 6 cloves minced garlic and cook for 30 seconds until fragrant—don't let it brown. Stir in the 0.25 cup tomato paste and cook for 1 minute to deepen the flavor. This aromatic base forms the foundation of your soup's rich, complex taste.
🍳 Step 2: Develop the Broth with Spices and Tomatoes
Pour in the 4 cups fish stock and bring to a gentle simmer. Add the 1 tbsp ground cumin, 1 tsp dried oregano, and 2 whole bay leaves. Stir in the 4 whole diced Roma tomatoes and simmer for 15 minutes until the tomatoes break down and the flavors meld.
Season with 1.5 tsp salt and 0.5 tsp freshly cracked black peppercorns. Taste the broth and adjust seasoning—this is where you establish the proper balance before adding the seafood. The broth should be well-seasoned but not overpowering.
🔥 Step 3: Cook the Seafood to Perfect Doneness
Add the 1.5 lb white fish fillets and 1.5 lb large shrimp to the simmering broth. Cook for 4-5 minutes until the shrimp turn pink and the fish becomes opaque. Remove the seafood with a slotted spoon and set aside—it's crucial to cook them just until done to prevent overcooking.
In a small bowl, whisk together the 1 tbsp cornstarch with 2 tablespoons cold water. Slowly stir this slurry into the broth while simmering for 2-3 minutes until slightly thickened. This creates the perfect velvety consistency without making the soup gluey.
🥘 Step 4: Finish with Fresh Herbs and Bright Citrus
Return the seafood to the pot and stir in the 0.5 cup chopped fresh cilantro and 0.5 cup freshly squeezed lime juice. The acidity of the lime brightens all the flavors while the cilantro adds freshness. Taste and adjust seasoning one final time—this is where the soup comes together.
Ladle the soup into bowls, garnishing each serving with additional cilantro and lime wedges. The celery crowns should provide satisfying crunch, while the lime adds that signature Baja zing. Serve immediately with warm crusty bread to soak up every delicious bite.
Pro Tips For Making Baja Soup
- Sear the Shrimp First: Toss the shrimp in the pot before the fish—just a 2-minute sear in hot oil until they turn pink. This locks in flavor while they cook, and you won’t end up with rubbery shrimp hiding at the bottom. (Yes, even if you’re impatient like me, wait for that color change.)
- Mince the Onions Fine: Skip the rough chop—finely mince the onions (and celery) so they dissolve into the broth instead of sitting as chunks. I used to leave them too big, and the soup always tasted uneven. A food processor does this in seconds, but a sharp knife works too.
- Don’t Overcook the Fish: Baja soup fish cooks in minutes—3 to 4 max, or it’ll turn to flakes. Use a thermometer if you’re nervous: 145°F is the sweet spot. I learned this the hard way when I walked away for "just a sec" and came back to sad, dry fish.
- Toast the Garlic Low: Add the garlic after the onions soften, then reduce heat to medium-low. Burnt garlic ruins everything, and this soup needs that mellow, sweet base. If it smells like a campfire, start over—no one’s impressed by smoke.
Make-ahead tips for baja soup
Broth Prep Ahead
Make the broth 1-2 days in advance—it tastes even better after flavors meld. Store in an airtight container in the fridge, covered with plastic wrap pressed directly on the surface to prevent a skin.
Reheat gently over low heat, stirring occasionally, until just simmering. Never boil—this can break down the delicate seafood flavors. 💧
Celery Crowns Strategy
Cook celery crowns fresh day-of—they lose crispness when reheated. But you can prep them ahead by slicing celery 1 inch thick and storing in a sealed container with a paper towel to absorb moisture.
When ready to cook, pan-fry in 0.25 inch thick slices in 0.25 cup olive oil over medium-high heat for 2-3 minutes per side until golden and caramelized. 🌟
Seafood Prep Timeline
Buy seafood same-day if possible, or store in the coldest fridge drawer with a damp paper towel for up to 24 hours. For make-ahead convenience, poach shrimp in simmering water with 1 tbsp lime juice for 1 minute, then shock in ice water.
Store in the fridge for 1 day—they’ll stay perfectly cooked and ready to add to the soup. 🦐
Complete Soup Assembly
Assemble the soup 30 minutes before serving—this lets flavors settle. Store the finished soup (without celery crowns) in airtight containers for 3 days refrigerated or 3 months frozen.
When reheating, add 2 tbsp water per quart to prevent thickening. The celery crowns can be made separately and added just before serving for maximum crunch. ✨
Freezer-Friendly Tips
If freezing, portion soup into single-serving containers with 1 inch headspace for expansion. Freeze celery crowns separately on a baking sheet before transferring to a bag—they’ll stay crisp when reheated in a 350°F oven for 5 minutes. Label containers with dates and reheat only once for best texture. 🧊
Serving Prep Shortcuts
Set out all garnishes—lime wedges, chopped cilantro, and toasted cumin seeds—before serving to streamline the process. Keep warm tortillas or crusty bread in a 200°F oven while you finish the soup.
For a restaurant-style presentation, arrange celery crowns on top of each bowl and serve with a small side of spicy mayo for dipping. 🍽️
Nutrition facts
Frequently asked questions
Can I make this Baja soup without seafood?
For a vegetarian version, substitute the fish and shrimp with 1.5 lbs firm tofu (pressed and cubed) or 1.5 lbs mushrooms (like portobello or shiitake). Add 1 tbsp soy sauce to the broth to enhance umami. The celery crowns and lime still provide that signature Baja crunch and brightness.
How do I get the celery crowns extra crispy?
Pat the celery slices completely dry with paper towels before cooking to remove all moisture. Use a mix of 0.25 cup olive oil and 1 tbsp vegetable oil for frying at 350°F until golden brown. For even more crunch, toss the fried slices in 1 tsp cornstarch while still hot.
What's the best way to reheat leftovers?
Reheat gently on the stovetop over low heat until just warm—never boil. For best texture, add 2 tbsp water per quart to prevent thickening. Keep celery crowns separate and reheat in a 350°F oven for 3-4 minutes to maintain crispness.
Can I use frozen shrimp in this recipe?
Yes, but thaw them first in the fridge overnight. For best results, pat dry thoroughly before adding to the broth. Frozen shrimp works fine, but fresh shrimp yields superior texture. If using frozen, add them 1 minute earlier than called for in the recipe.
What's the secret to the perfect Baja soup flavor?
The magic comes from balancing the broth's depth with bright citrus and fresh herbs. Start with quality fish stock, toast your cumin seeds before grinding, and always use freshly squeezed lime juice. The celery crowns provide the signature crunch that makes this soup truly special.
