Soups & Stews
This bacalao soup recipe transforms humble salt-cured cod into a fragrant, lemon-kissed masterpiece that warms the soul. The secret lies in proper soaking and slow simmering, where bacalao's delicate texture melts into a broth rich with garlic, tomatoes, and herbs.
I've perfected this Spanish-inspired version after years of testing—each spoonful delivers that perfect balance of briny depth and citrus brightness.
The process begins with soaking the bacalao overnight to remove excess salt, then poaching it gently in a tomato-herb broth until tender. Potatoes and onions thicken the soup naturally, while a splash of lemon at the end brightens every bite.
What makes this recipe special is how it transforms simple ingredients into something restaurant-worthy, with layers of flavor that develop as it simmers.
By the time you're done, you'll have a velvety soup with flaky bacalao pieces floating in a golden broth, garnished with fresh parsley. The aroma alone makes this dish feel like a homecoming—comforting yet sophisticated enough for dinner guests.
Serve with crusty bread to soak up every last drop of that lemon-infused goodness.
This recipe works equally well as a light lunch or hearty starter, and leftovers taste even better the next day. The key is patience—letting flavors meld slowly creates depth you can't rush. Let's make this bacalao soup that'll become a family favorite.
Ingredients for bacalao soup
Simple ingredients that transform into a briny, lemon-kissed bacalao soup masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Bacalao (Salt-Cured Cod) 🐟 | 12 oz | Soaked overnight, excess salt removed |
| Russet Potatoes 🥔 | 1 ½ lb | Medium size, peeled and cubed |
| Yellow Onions 🧅 | 2 whole | Medium size, thinly sliced |
| Garlic Cloves 🧄 | 6 cloves | Fresh, minced |
| Canned San Marzano Tomatoes 🍅 | 1 can | 28 oz, crushed by hand |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Fresh Dill 🌿 | 2 tbsp | Chopped, for brightness |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For sautéing |
| Lemon Juice 🍋 | ¼ cup | Freshly squeezed |
| Bay Leaves 🍃 | 2 whole | For simmering |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Crusty Bread 🍞 | 8 slices | For serving, optional |
The bacalao is the star—look for thick, salt-cured fillets at specialty seafood markets or well-stocked grocery stores. Trader Joe's and Whole Foods usually carry it, but if you can't find it, ask the fish counter to order it. Soaking is non-negotiable: place the cod in cold water for 12-24 hours, changing the water every 4 hours. The potatoes? Russets are ideal—they hold up to simmering without turning mushy. I always buy a couple extra slices of crusty bread to go with it, but honestly, this soup is delicious on its own.
No fresh dill? Substitute with 1 tbsp dried dill, but fresh is worth the effort. Short on San Marzano tomatoes? Any high-quality canned tomatoes work, just remove the skins first. The lemon juice can be swapped for white wine vinegar in a pinch, but fresh lemon adds that bright finish. For extra richness, stir in 2 tbsp of heavy cream at the end—optional but divine. If you're feeling fancy, add a pinch of saffron threads while simmering for a luxurious touch.
This soup tastes even better the next day—reheat gently on low heat with a splash of water if it's too thick. Store leftovers in the fridge for 3-4 days or freeze for up to 3 months. I always make a double batch because it disappears fast. The crusty bread? Toast it first—garlic butter on the toast takes this soup to another level.
Why You'll Love This Recipe
- Foolproof Soak: I’ll admit, the first time I made this, I panicked about soaking the bacalao—until I realized you can just simmer it in fresh water for 20 minutes. That’s it. No fancy prep, no stress.
- Tomato-Garlic Magic: The San Marzano tomatoes and garlic cloves melt into a sauce so rich, it’s like a hug in a bowl. The bacalao adds that briny depth, but the potatoes soak it all up into pure comfort.
- Leftovers That Shine: Honestly? This soup only gets better the next day. The flavors meld, the potatoes soften just right, and I’ve reheated it for lunch three times without a single complaint.
- Budget Meal for Crowds: Between us, this recipe feeds six for under $15. The bacalao stretches far, the potatoes fill everyone up, and I’ve served it at potlucks where people asked for the recipe before dessert.
Step-by-step instructions for bacalao soup
This one-pot wonder brings together salty bacalao, creamy potatoes, and bright lemon in under an hour.
Prepare the Bacalao and Build the Base
Start by flaking the 12 oz bacalao into bite-sized pieces, removing any skin or bones. Place the flakes in a large pot and cover with 4 cups cold water. Bring to a gentle simmer over medium heat for 10 minutes, then drain and rinse thoroughly under cold water to remove any lingering saltiness. This step is crucial—salty bacalao ruins the dish.
In the same pot, heat 0.5 cup extra-virgin olive oil over medium heat. Add the 2 whole yellow onions, sliced into thin half-moons, and cook for 5 minutes until soft and translucent. Stir in the 6 cloves minced garlic and cook for another 30 seconds until fragrant. Here's where the flavor foundation happens—don't rush this step or you'll miss the sweetness of the onions.
Add Potatoes and Tomatoes
Toss in the 1.5 lb cubed russet potatoes, ensuring they're evenly coated in the onion-garlic mixture. Pour in the 1 can crushed San Marzano tomatoes and add the 2 whole bay leaves. Stir everything together, then pour in 6 cups water (or enough to cover the ingredients by about 1 inch). Bring to a boil, then reduce heat to medium-low and let it simmer for 15 minutes until the potatoes are tender when pierced with a fork.
This is the moment to taste and adjust seasoning. Add 1 tsp salt and 0.5 tsp black pepper now—you'll likely need more later as the flavors meld. The soup should be seasoned but not overwhelmingly salty. If the potatoes aren't quite soft enough, cover and simmer for another 5 minutes. Overcooking turns them mushy, so keep an eye on them.
Incorporate the Bacalao and Brighten with Lemon
Once the potatoes are tender, add the drained bacalao flakes and stir gently to combine. The fish will absorb the flavors quickly, so don't let it sit too long before adding the next ingredients. Pour in the 0.25 cup freshly squeezed lemon juice and the 2 tbsp chopped fresh dill. The lemon cuts through the richness of the bacalao and potatoes, balancing the dish perfectly.
Simmer everything together for 5-7 minutes until the bacalao is heated through and the flavors have melded. The soup should have a thick, creamy consistency from the potatoes, but if it's too thick, stir in ½ cup hot water to reach your desired texture. Here's where the magic happens—the lemon and dill transform this from a simple fish soup to something truly special.
Finish and Serve
Remove the pot from heat and stir in the 0.25 cup chopped fresh parsley. The parsley adds a fresh finish that brightens the entire dish. Let the soup rest for 5 minutes off the heat—this allows the flavors to settle and the bacalao to absorb all the goodness from the broth.
Ladle the soup into bowls and serve immediately with 8 slices crusty bread on the side. The bread soaks up the delicious broth, and each bite delivers the perfect balance of salty bacalao, creamy potatoes, and bright lemon. If you have any leftovers, store them in an airtight container in the refrigerator for up to 3 days, but honestly, this soup tastes even better the next day as the flavors deepen.
Pro Tips For Making Bacalao Soup
- SOAK BACALAO OVERNIGHT: That salty cod won’t soften in 30 minutes—it needs 12-24 hours in cold water, changed every 4-6 hours. I learned this the hard way when my first attempt tasted like a salt lick. Use a bowl big enough to fully submerge it, and save the soaking water for broth (strain well).
- PEEL POTATOES AFTER COOKING: Russets hold their shape better if you peel them after simmering 10 minutes in the soup. The skins soften enough to slide off cleanly, and you avoid the gummy texture of pre-peeled spuds. Just don’t skip this—your soup’s texture depends on it.
- CRUSH TOMATOES BY HAND: Skip the blender—mash San Marzano tomatoes with a wooden spoon until you’ve got a mix of chunky and saucy. This keeps the soup’s body without turning it into glue. (Yes, it’s more work, but the flavor stays bright.)
- ADD GARLIC AT THE END: Sauté garlic with onions until soft, but toss in the raw minced cloves with the bacalao in the last 5 minutes. This prevents burning and lets the garlic’s aroma bloom without bitterness—trust me, your soup will taste fresher.
Storing and reheating your leftovers
Refrigerator Storage
Store your bacalao soup in an airtight glass container—I prefer Pyrex with snap-on lids—letting it cool completely first. The flavors actually deepen overnight, so I always make a double batch.
Keep it refrigerated for up to 4 days, but taste it within 2 days for peak freshness. The lemon and dill maintain their brightness better when stored properly. ❄️
Freezer-Friendly Tips
For longer storage, freeze the soup in quart-sized freezer bags with 1-inch headspace to prevent ice crystals. I like using Hefty brand bags—they're durable and stack neatly. Label with the date and freeze for up to 3 months.
When ready to eat, thaw overnight in the fridge before reheating. Never microwave directly from frozen—it breaks down the bacalao texture. 🧊
Stovetop Reheating
My preferred method is gentle stovetop reheating to preserve the bacalao's delicate flakes. Transfer soup to a pot and heat over low-medium heat, stirring occasionally. Add 2-3 tbsp water if it thickens too much.
Bring to a simmer for 10 minutes, then taste—you may need a pinch more salt or a squeeze of lemon juice to refresh the flavors. Never boil vigorously or the bacalao will turn rubbery. 🔥
Microwave Shortcuts
For quick reheating, use 50% power in 2-minute intervals, stirring between each. Cover with a damp paper towel to prevent skin formation. Start with 3 minutes total, then taste—add a splash of water or lemon juice if needed.
The microwave works in a pinch, but I find stovetop reheating gives better texture. This method is best for single servings when you're short on time. ⏱️
Leftover Enhancements
Reheated soup deserves a little extra love. Stir in 1 tbsp fresh parsley and a lemon zest strip for brightness. For richness, add 1 tbsp heavy cream or a dollop of sour cream.
I also like toasting crusty bread with garlic butter to serve alongside—it's the perfect way to enjoy leftovers without sacrificing quality. 💛
Thawing Frozen Soup
Never thaw at room temperature—always use the fridge overnight for best results. If you're in a hurry, place the sealed bag in cold water and change the water every 30 minutes until thawed.
This prevents bacterial growth while keeping the bacalao tender. Once thawed, reheat using the stovetop method for consistent results. Proper thawing maintains the soup's creamy texture and vibrant flavors. ❄️➡️🔥
Nutrition facts
Frequently asked questions
How long should I soak bacalao before using it?
Soak the bacalao in cold water for 12-24 hours, changing the water every 4 hours to remove excess salt. This step is crucial—never skip it or your soup will taste overly salty. The longer you soak, the milder the flavor becomes, but 12 hours is usually enough for most recipes.
Can I substitute fresh cod for bacalao?
While you can use fresh cod, it won't have the same rich, salty depth that bacalao provides. If substituting, use 14 oz fresh cod and soak it in milk or lemon water for 1 hour to remove any bloodline. However, the texture and flavor will differ significantly from traditional bacalao soup.
Why does my bacalao soup taste too salty?
Over-soaking isn't the issue—it's usually not rinsing the bacalao thoroughly after soaking. Always drain and rinse the fish under cold running water for 2-3 minutes after soaking. If it's still too salty, add 1 extra potato or a splash of lemon juice to balance the flavors. Taste as you go!
What's the best way to reheat bacalao soup?
Gently reheat on the stovetop over low-medium heat for 10 minutes, stirring occasionally. Avoid microwaving or boiling, as this can make the bacalao rubbery. If it thickens too much, add 2-3 tbsp water or lemon juice to restore brightness. The stovetop method preserves the delicate fish texture best.
Can I make this soup without tomatoes?
Yes, but the flavor will be less rich. Replace the tomatoes with 1 cup white wine or 2 tbsp tomato paste for depth. For a tomato-free version, use extra garlic and herbs (like thyme or bay leaves) to build flavor. The potatoes will still create creaminess, but tomatoes add that classic umami backbone.
