Soups & Stews
This bacalao soup recipe brings the rich coastal traditions of Spain to your kitchen table, where salt-cured cod transforms into tender, flavorful bites in a velvety tomato broth.
The secret begins with soaking the bacalao for hours to remove excess salt, a critical step that ensures the perfect balance of savory and citrusy notes in every spoonful. This soup isn’t just comforting—it’s a celebration of Mediterranean flavors, where garlic, peppers, and potatoes meld together in a harmonious simmer.
The foundation of this dish lies in its simmering technique, where the bacalao slowly absorbs the aromatic broth until it’s fork-tender, never dry or rubbery.
Traditional recipes call for a long, patient cook, but this version streamlines the process without sacrificing depth—just 45 minutes of hands-off time yields a soup that’s hearty enough for a family dinner yet light enough for a weeknight meal.
The citrusy tomato velouté ties everything together, cutting through the richness of the cod with bright, tangy undertones.
What makes this bacalao soup truly special is its versatility—it’s as much a canvas for garnishes as it is a complete dish on its own.
A drizzle of high-quality olive oil, a sprinkle of fresh parsley, or even a squeeze of lemon at the table elevates the flavors to restaurant-quality.
Serve it with crusty bread to soak up every last drop of that fragrant broth, or pair it with a simple green salad for a balanced meal that feels both rustic and refined.
The result is a soup that’s rich in texture and tradition, where each ingredient plays its part—crisp edges on the potatoes, tender cod that flakes effortlessly, and a broth so flavorful it deserves a standing ovation.
Whether you’re recreating a family recipe or crafting a new tradition, this bacalao soup delivers comfort and complexity in every bowl. Let’s get cooking.
Ingredients for bacalao soup
Twelve ingredients transform salt-cured cod into a velvety tomato broth celebration of Mediterranean flavors.
| Ingredient | Amount | Notes |
|---|---|---|
| Salt-Cured Cod (Bacalao) 🐟 | 12 oz | Soaked 12+ hours to remove excess salt |
| Yellow Onion 🧅 | 1 whole | Medium size, diced |
| Red Bell Pepper 🌶️ | 1 whole | Medium size, diced |
| Garlic Cloves 🧄 | 4 cloves | Fresh, minced |
| Russet Potatoes 🥔 | 2 medium | Peeled, cubed |
| Canned Tomato Sauce 🍅 | 1 cup | San Marzano preferred |
| Canned Diced Tomatoes 🍅 | 1 cup | No salt added |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For richness |
| Bay Leaves 🌿 | 2 whole | Dried, removed before serving |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Crusty Bread 🍞 | 1 loaf | For serving (not cooked) |
The bacalao is non-negotiable—look for thick, firm pieces at Whole Foods or your local fishmonger. Spanish or Portuguese bacalao is ideal, but any salt-cured cod works. Soaking is critical: place the fish in a bowl, cover with cold water, and change the water every 30 minutes for 12+ hours. The potatoes should be waxy (like Yukon Gold) for that perfect creamy texture, but russets work too if that's what you've got. For the tomatoes, San Marzano cans from Italy deliver that signature sweetness—don't skimp here. Fresh parsley is a must for garnish, but dried will work in a pinch at one-third the amount.
No San Marzano tomatoes? High-quality crushed tomatoes in a can work, but you'll lose that depth of flavor. Substitute the red bell pepper with green bell pepper or zucchini if you prefer. For the olive oil, use something fruity and peppery—California extra-virgin brands like Corto or Colavita elevate the dish. The lemon juice can be swapped for white wine vinegar if you're avoiding citrus, but the bright acidity is what cuts through the richness. Bay leaves are traditional, but if you're out, a pinch of dried thyme adds a similar earthiness. The crusty bread should be something sturdy like a baguette or ciabatta—skip the soft sandwich bread.
This soup tastes even better the next day, so make a double batch if you can. Store in an airtight container in the fridge for up to 4 days, or freeze portions for 3 months. The broth thickens as it cools, so add a splash of water when reheating. For serving, keep the crusty bread at room temperature and toast it just before eating. The parsley and lemon should be added fresh at the table—don't mix them in during cooking or they'll lose their vibrant pop of color and freshness.
Why You'll Love This Recipe
- No-Soaking Needed: Soak the bacalao overnight? Nah. This recipe skips that step—just rinse the flakes until the water runs clear, then toss them straight in. Ten minutes later, you’ve got tender, melt-in-your-mouth fish without the fuss.
- Garlic-Pepper Punch: That red bell pepper and garlic combo? It’s the secret weapon. The pepper adds a subtle sweetness that balances the saltiness of the bacalao, while the garlic—sautéed until golden—gives it a depth that lingers. Honestly, it’s the kind of flavor that makes you go back for seconds without trying.
- Potato Powerhouse: The russet potatoes don’t just bulk it up—they soak up all the rich broth, turning into fluffy, hearty chunks. It’s the kind of soup that sticks to your ribs, perfect for chilly days or when you need something filling that doesn’t skimp on taste.
- Budget-Friendly Feast: A single block of bacalao stretches across multiple meals, and the rest of the ingredients? Pantry staples. Between us, this is the kind of recipe that makes grocery day feel like a win—especially when you’re feeding a crowd or prepping lunches for the week.
Step-by-step instructions for salt-cured cod in citrusy tomato velout
Here's the method for transforming salt-cured cod into a rich, citrus-infused tomato broth.
Prepare the Salt-Cured Cod
Rinse the 12 oz salt-cured cod (bacalao) under cold running water for 30 seconds to remove surface salt. Place it in a bowl and cover with 4 cups cold water. Let it soak for 12-24 hours, changing the water every 4 hours to fully remove excess salt. You'll know it's ready when the water tastes neutral and the cod smells fresh—no lingering saltiness.
After soaking, pat the cod dry with paper towels and cut it into 2-inch chunks. This size ensures even cooking and easy incorporation into the soup. Set aside—the cod will absorb flavors beautifully during the simmering process.
Sauté the Aromatics
Heat the 0.5 cup extra-virgin olive oil in a large pot over medium heat. Add the 1 whole yellow onion and 1 whole red bell pepper, both diced, along with the 4 cloves minced garlic. Cook for 5-6 minutes until the vegetables soften and the garlic becomes fragrant—you should smell a sweet, slightly charred aroma.
Here's where the foundation of flavor begins. The onions and peppers should release their moisture and caramelize slightly at the edges. If they stick before softening, reduce the heat briefly and stir. This step builds the base for the velouté's rich, aromatic profile.
Build the Tomato Base
Add the 1 cup canned tomato sauce and 1 cup canned diced tomatoes to the pot, stirring to combine with the sautéed vegetables. Bring the mixture to a gentle simmer over medium-low heat, then add the 2 whole bay leaves and 1.5 tsp salt. Let it cook uncovered for 10 minutes to allow the tomatoes to break down and deepen in flavor.
This reduction step is crucial—it concentrates the tomato flavors and removes excess acidity. You'll notice the mixture darken slightly and thicken as it simmers. The bay leaves will infuse subtle earthy notes that complement the citrusy finish.
Incorporate Potatoes and Cod
Add the 2 medium russet potatoes, peeled and cubed, along with the prepared cod chunks to the pot. Pour in 4 cups water (or enough to cover everything by 1 inch) and bring to a gentle boil. Once boiling, reduce heat to medium-low and let it simmer uncovered for 15-20 minutes, until the potatoes are fork-tender and the cod flakes easily with a fork.
The potatoes should be soft enough to mash slightly between your fingers, while the cod should separate into delicate flakes. If the soup reduces too quickly, add ¼ cup hot water at a time to maintain the proper consistency. This balance ensures a creamy yet light texture.
Finish with Citrus and Herbs
Remove the 2 whole bay leaves from the soup. Stir in the 2 tbsp lemon juice and 0.5 tsp freshly cracked black peppercorns, then adjust the seasoning with additional salt if needed. The lemon juice will brighten the flavors and cut through the richness of the olive oil and tomatoes.
Finally, stir in the 0.25 cup chopped fresh parsley just before serving. This adds a fresh herbal note that contrasts beautifully with the deep, savory flavors of the soup. Ladle into bowls and serve immediately with 1 loaf crusty bread on the side for dipping.
Pro Tips For Making Bacalao Soup
- SOAK THE BACALAO TWICE: I learned this the hard way—skipping the second soak is what makes your soup taste like saltwater. After the initial 24-hour soak in cold water (change it twice), give the cod a quick 30-minute soak in fresh water with a splash of vinegar or lemon juice. This cuts through the lingering saltiness without turning the fish to mush.
- PEEL POTATOES AFTER COOKING: I used to peel them first, and half the time they’d disintegrate into the broth. Instead, boil the potatoes whole in their skins until fork-tender (about 10 minutes), then drain and peel while still warm. The skins stay intact, and you avoid the sad, starchy sludge at the bottom of the pot.
- SAUTÉ ONIONS UNTIL CARAMELIZED: Low and slow is boring—crank the heat to medium-high and let those onions turn deep amber before adding the garlic. I was skeptical until I tried it: the soup gains a rich, almost sweet depth that cuts through the saltiness of the bacalao. Just watch them like a hawk; they’ll go from golden to burnt faster than you think.
- ADD BELL PEPPER LAST: Chop the red bell pepper into thick strips and toss them in the last 5 minutes of simmering. Thin slices turn to mush, and you’ll end up with a watery, sad soup. Thick strips stay crisp, adding texture and a bright pop of color—plus, they hold up better when you ladle the soup into bowls.
Perfect pairings for these flavors
Bread Pairings
Crusty bread is non-negotiable for this soup—it's the perfect vehicle for soaking up every last drop of that velvety tomato broth. I always reach for a baguette or ciabatta from my local bakery, like the ones at Panera or Whole Foods.
The crispy crust contrasts beautifully with the tender cod and creamy potatoes. For extra flair, lightly toast the bread with garlic-infused olive oil before serving. 🍞
Wine Complements
A crisp Spanish Albariño is my go-to pairing—its bright acidity and citrus notes mirror the lemon in the soup while cutting through the richness of the olive oil. If you prefer reds, a light Tempranillo from Rioja adds earthy depth without overpowering.
For something more casual, a chilled Sauvignon Blanc from New Zealand delivers zesty contrast. Avoid heavy, oaky wines that would muddle the delicate flavors. 🍷
Salad Contrasts
A simple arugula salad with a lemon vinaigrette provides the perfect fresh, peppery contrast to the hearty soup. Toss 4 cups baby arugula with 2 tbsp extra-virgin olive oil, 1 tbsp fresh lemon juice, and a pinch of flaky sea salt.
For a Mediterranean twist, add cherry tomatoes and kalamata olives—the briny notes complement the bacalao beautifully. 🥗
Citrus Garnishes
Finish each bowl with a squeeze of fresh lemon wedges—the acidity brightens the soup with every bite. I also love adding thinly sliced blood oranges for a sweeter citrus note.
For a smoky touch, sprinkle with smoked paprika or a pinch of chili flakes to add subtle heat. The contrast of textures and flavors makes this soup truly special. 🍋
Cheese Pairings
If you want to add a creamy element, serve this soup with manchego cheese on the side. Its nutty, slightly tangy flavor pairs perfectly with the citrusy broth. For a more decadent option, try aged pecorino—its sharpness cuts through the richness of the olive oil.
Just a small piece on the side lets everyone add their own touch. 🧀
Herb Finishes
Fresh herbs elevate this soup to restaurant quality. In addition to the parsley, I like adding a sprinkle of chopped cilantro for a fresh, almost Mediterranean vibe. For a more robust flavor, try thyme sprigs or rosemary—their earthy notes complement the tomato base beautifully.
Always add herbs at the table so they stay vibrant. 🌿
Nutrition facts
Frequently asked questions
How long should I soak bacalao before using it in soup?
Soak the bacalao for 12-24 hours, changing the water every 4 hours. This removes excess salt and ensures the fish absorbs the broth's flavors beautifully. You'll know it's ready when the water tastes neutral and the cod smells fresh.
Can I substitute fresh cod for salt-cured bacalao?
Fresh cod won't work—the salt-curing process is essential for the authentic flavor and texture. However, if you absolutely must substitute, use fresh firm white fish like halibut or sea bass, but reduce the soaking time to 30 minutes in cold water and increase the lemon juice to 3 tbsp for brightness.
Why does my bacalao soup taste too salty?
Over-soaking or not changing the water removes salt properly, leaving the fish too salty. Always taste the soaking water before cooking—it should be neutral. If it's still too salty, add more water to the soup and simmer for an extra 5-10 minutes to dilute the flavor.
Can I make this soup without tomatoes?
Tomatoes are traditional, but you can substitute with 2 cups fish stock and 1 tbsp tomato paste for depth. For extra richness, add ½ cup heavy cream at the end. The citrusy notes from the lemon will still shine through, but the flavor profile will be more broth-forward.
How do I know when the cod is fully cooked?
The cod is done when it flakes easily with a fork and reaches an internal temperature of 145°F. It should be tender but still hold its shape slightly—overcooking turns it rubbery. If the potatoes are tender but the cod isn't, simmer uncovered for another 5 minutes.
