Soups & Stews
San Francisco-style cioppino soup transforms humble seafood into a rich, aromatic stew that tastes like a taste of the bay city's legendary waterfront restaurants.
This recipe captures the essence of the original—layered with tomatoes, garlic, white wine, and a mix of fresh shellfish and fish—simmered until the flavors meld into something deeply satisfying.
I first fell in love with cioppino during a chilly San Francisco evening, and recreating it at home became an obsession once I understood its secrets.
The key to perfect cioppino lies in the technique: browning the seafood in batches to develop deep, caramelized flavors before building the tomato base. Using a mix of clams, mussels, shrimp, and firm white fish creates the classic texture contrast—tender meat, briny shellfish, and flaky fish all in one pot.
The dish simmers for 45 minutes, allowing the broth to reduce to a velvety consistency while infusing every ingredient with its rich, savory depth.
What you'll end up with is a steaming bowl of cioppino that's hearty enough for a cold evening but light enough to enjoy year-round. The aroma alone—garlic, tomatoes, and seafood—will have everyone gathering around the table.
Each bite delivers layers of flavor: briny shellfish, tender fish, and a broth so rich it feels like a hug in a bowl. This is comfort food at its finest, with the added satisfaction of knowing you've recreated a San Francisco classic.
Serve with crusty bread for soaking up every last drop of that flavorful broth, or pair it with a simple green salad to balance the richness. The recipe scales beautifully, so whether you're feeding a family or hosting a dinner party, this cioppino will be the star of the meal.
Let's get cooking—your taste buds will thank you.
Ingredients for cioppino soup
Six fresh seafoods, bold flavors, and a simmer that transforms everything into San Francisco magic.
| Ingredient | Amount | Notes |
|---|---|---|
| Fresh Clams 🦪 | 1 ½ lb | Steamer clams, cleaned and debearded |
| Fresh Mussels 🦪 | 1 ½ lb | Bearded variety, scrubbed clean |
| Large Shrimp 🦐 | 1 lb | Peeled, deveined, tails off |
| Firm White Fish 🐟 | 1 ½ lb | Cod or halibut, cut into chunks |
| Garlic Cloves 🧄 | 6 cloves | Fresh, thinly sliced (not minced) |
| Yellow Onion 🧅 | 1 whole | Medium, diced (about 1.5 cups) |
| Celery Stalks 🥬 | 3 whole | Diced (about 1 cup total) |
| Canned San Marzano Tomatoes 🍅 | 28 oz | Crushed by hand, no salt added |
| Dry White Wine 🍷 | 1 cup | Sauvignon Blanc or Pinot Grigio |
| Fish Stock 💧 | 4 cups | Homemade or high-quality store-bought |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For browning seafood |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish (optional) |
| Fresh Bay Leaves 🌿 | 2 whole | Removed before serving |
| Dried Oregano 🍃 | 1 tsp | Mediterranean blend preferred |
| Red Pepper Flakes 🌶️ | ½ tsp | Adjust for heat preference |
| Salt 🧂 | 2 tsp | Kosher or sea salt (adjust to taste) |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
The seafood is non-negotiable—local fish markets or the seafood counter at Whole Foods are your best bets. Look for clams and mussels that are tightly closed (discard any open ones). The fish should smell clean and fresh, not fishy. For the wine, Sauvignon Blanc or Pinot Grigio from California works perfectly—it’s what you’d find in the original San Francisco spots. If you can’t get San Marzano tomatoes, plum tomatoes with no added salt are the next best thing. The fish stock? Homemade if you’ve got it, but Pacific Foods brand is a solid store-bought option that won’t disappoint.
No clams or mussels? Scallops or octopus add great texture, though the briny flavor won’t be identical. Shrimp too expensive? Squid or squid rings work well. For the wine, dry vermouth or even extra fish stock can stand in if you’re out. The tomatoes can be fresh if you prefer—just roast them first for depth. Want more heat? Add a splash of hot sauce or extra red pepper flakes. The oregano is key—Mediterranean blend has the right earthy notes, but regular dried will work in a pinch. Just don’t skip it.
This soup tastes even better the next day—make a double batch if you can. Store in the fridge for up to 3 days, or freeze for 2 months (the broth gets richer over time). The seafood reheats best gently—just warm through on the stove. Serve with crusty bread to soak up every last drop of that golden broth. Leftovers? Even better for lunch the next day—trust me on this.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—no chopping mountains of veggies, no fussy prep. Just toss in the clams, mussels, and shrimp (still in their shells, even), dump in the fish chunks, and let the garlic and tomatoes do the heavy lifting. The shells steam clean, the broth simmers itself, and I’m left with zero dishes beyond a spoon.
- Garlic Bomb: Between us, that first bite of shrimp—still juicy, kissed by the garlic—is what makes me reach for this recipe again. The clams plump up in the tomato broth, the fish stays tender but flaky, and the garlic? It’s everywhere in the best way. Honestly, if you’re not crying a little over the aroma, you’re not doing it right.
- Leftovers That Don’t Suck: Most seafood soups turn sad the next day. Not this. The broth gets better—deeper, richer—if anything, and the fish reheats like it’s fresh. I’ve had this for lunch the day after, packed for work, even frozen for emergencies. (Yes, even on a Tuesday night.) The secret? The tomatoes and wine in the broth act like a flavor time machine.
Step-by-step instructions for San Francisco-style seafood stew
Here's how to build a rich, aromatic cioppino that captures the heart of San Francisco's waterfront tradition.
Prepare the Seafood and Aromatics
Start by cleaning the seafood thoroughly. Scrub the clams and mussels under cold water with a stiff brush to remove any debris, then debeard them by pulling out the small hair-like threads. For the shrimp, make sure they're peeled and deveined—run your fingernail along the back to check for any remaining vein. Cut the firm white fish into 1-inch chunks and set aside.
Next, dice the yellow onion into ¼-inch pieces (about 1.5 cups) and the celery stalks into ¼-inch dice (about 1 cup total). Thinly slice the garlic cloves rather than mincing them—this keeps their flavor more intact. The aromatics will form the flavor base of your soup, so take your time with this prep work. You'll notice the onions will soften slightly as they sit, which helps them caramelize beautifully during cooking.
Build the Flavor Base in the Pot
Heat the 0.5 cup extra-virgin olive oil in a large, heavy pot over medium heat. Add the diced onion, celery, and sliced garlic, stirring frequently for 8-10 minutes until the vegetables soften and the onions turn golden. This process, called sweating, develops deep flavor without burning the aromatics.
Once the vegetables are tender, add the 1 teaspoon dried oregano, 0.5 teaspoon red pepper flakes, 2 teaspoons salt, and 0.5 teaspoon black pepper. Stir for 30 seconds to toast the spices and let their aromas bloom. Here's the thing—don't rush this step. The spices need time to infuse the oil and vegetables, creating that complex flavor foundation that makes cioppino so special.
Develop the Tomato-Wine Sauce
Pour in the 1 cup dry white wine and scrape up any browned bits from the bottom of the pot with a wooden spoon. These bits, called fond, are packed with flavor. Let the wine simmer for 3-4 minutes until it reduces by about half and the alcohol cooks off.
Add the 28 ounces crushed San Marzano tomatoes and bring everything to a gentle simmer. Stir occasionally for 10 minutes to let the tomatoes break down and thicken slightly. You'll see the mixture darken and develop a rich, rustic texture. This is where the soup starts to come together—don't walk away. The tomatoes need constant attention to prevent burning, especially at the bottom of the pot.
Simmer the Seafood to Perfection
Add the 4 cups fish stock and the 2 whole fresh bay leaves to the pot. Bring the mixture to a gentle boil, then reduce the heat to medium-low and add the shrimp. Cook for 2-3 minutes until they turn pink and opaque. Remove the shrimp with a slotted spoon and set aside—they'll finish cooking in the residual heat.
Add the fish chunks to the pot and simmer for 4-5 minutes until they're just cooked through but still tender. This is crucial—the fish should flake easily when tested with a fork but not fall apart. Here's where it gets fun: add the clams and mussels, cover the pot, and cook for 5-6 minutes until they open. Discard any shells that don't open—they're safe to eat but indicate the seafood wasn't fresh to begin with.
Finish and Serve with Confidence
Remove the bay leaves from the soup and discard them. Taste the broth and adjust the seasoning if needed—you might need a bit more salt or pepper to balance the flavors. The soup should be rich and briny, with a deep tomato-wine base that carries all the seafood flavors.
Return all the seafood to the pot and gently stir to combine. Ladle the cioppino into bowls, garnishing each serving with ¼ cup chopped fresh parsley. Serve immediately with crusty bread to soak up every last drop of that delicious broth. The seafood should be hot, the broth vibrant, and each spoonful should deliver a perfect balance of flavors that make this classic San Francisco dish so beloved.
Pro Tips For Making Cioppino Soup
- Sear the Fish First: Take that firm white fish out of the broth early—after 3-4 minutes—and sear it skin-side down in a hot pan with a little olive oil. The crust locks in flavor and keeps it from turning mushy later. (Yes, even if it’s not fully cooked yet—that’s the point.)
- Shuck Clams Cold: Run fresh clams under cold water for 10 seconds first, then shuck them on a cutting board with a knife. Warm clams stick to the blade like glue, and you’ll end up with more broken shells than you bargained for.
- Don’t Overcrowd the Pot: Add shrimp and mussels in batches, no more than half the pot’s capacity at once. If you dump them all in, the broth will cool too fast, and those mussels won’t steam open properly. Patience here saves cleanup later.
- Toast the Garlic Low: After sautéing the garlic in oil, turn the heat down to medium-low and let it bubble gently for 2-3 minutes—just until it’s golden, not brown. Burnt garlic tastes bitter, and no one wants that in their cioppino. (I learned this after one very memorable disaster.)
Make-ahead tips for this cioppino soup
Prep Ahead Strategy
Start by prepping all your seafood and aromatics the night before. Clean and debeard the clams and mussels, then store them in a bowl of ice water in the fridge. This keeps them fresh and prevents drying out.
Dice the onion, celery, and slice the garlic, storing them in an airtight container in the fridge. This saves you 20-30 minutes of prep time on cooking day. 🌶️
Broth Prep Shortcut
Make your fish stock in advance and store it in freezer-safe bags or containers. Use 4 cups for this recipe, but you can make a big batch—it freezes well for up to 3 months.
I like to make a double batch of stock so I always have it on hand for seafood dishes. Thaw overnight in the fridge before using.
Seafood Browning Hack
Browning seafood in batches is key, but it can be messy. Do this step ahead of time if you're really organized: Pat the shrimp and fish dry, then toss them in 1 tablespoon flour per pound.
Store in an airtight container in the fridge until ready to brown. This keeps them from sticking and makes cleanup easier. Just brown them straight from the fridge—no thawing needed! ⚡
Tomato Sauce Prep
Crush your tomatoes and mix them with the wine, oregano, and red pepper flakes the day before. Store this mixture in an airtight container in the fridge. When you're ready to cook, simply heat it in your pot with the aromatics.
This lets the flavors meld overnight, creating a deeper, more complex base for your cioppino.
Freezer-Friendly Assembly
For a true make-ahead meal, you can assemble the cioppino (without the seafood) and freeze it. Combine all ingredients except the seafood, parsley, and bay leaves in a large freezer-safe bag. Seal tightly, leaving 1 inch of headspace for expansion.
When ready to serve, thaw overnight in the fridge, add the seafood, and simmer for 10-15 minutes until everything is heated through. This method works best if you use pre-cooked seafood.
Reheating Leftovers
Cioppino tastes even better the next day! Reheat gently on the stovetop over medium-low heat for 10-15 minutes, stirring occasionally. Add ¼ cup water or fish stock if the broth seems too thick.
Avoid microwaving—it can make the seafood rubbery. Garnish with fresh parsley before serving to brighten up the flavors. 💫
Nutrition facts
Frequently asked questions
Can I make cioppino without wine?
The white wine adds depth and helps deglaze the pot, but you can substitute with 1 cup extra fish stock or dry vermouth. Just reduce it by half first to concentrate the flavors. The key is creating that rich, tomato-wine base—without it, the broth will taste more one-dimensional but still delicious.
What's the best way to test if clams and mussels are fresh?
Always discard any shells that are open or broken before cooking. For fresh ones, they should be tightly closed. Give them a quick tap—if they're fresh, they'll close immediately. Store them in the fridge in a bowl of ice water until ready to use (up to 2 days). Never use seafood that smells fishy or has a strong ammonia odor.
How do I adjust this recipe for a larger crowd?
Double all ingredients and use a 6-8 quart pot to maintain proper proportions. The key is keeping the seafood-to-broth ratio at about 1:1.5 (1 pound seafood to 1.5 cups broth). For example, 3 pounds seafood would need 4.5 cups fish stock. Cook in batches if needed to avoid overcrowding the pot.
Why did my cioppino turn out too acidic?
This usually happens when the tomatoes or wine weren't reduced enough, or if you used too much lemon juice. Balance the acidity by adding ½ cup heavy cream or coconut milk at the end, or stir in 1 tablespoon sugar to offset the tang. Taste as you go—you can always adjust, but you can't take acidity out once it's there.
Can I use frozen seafood in cioppino?
Yes, but thaw it completely first in the fridge (never at room temperature). Frozen shrimp and fish work well, but frozen clams/mussels often contain ice crystals that can dilute the broth. If using frozen shellfish, soak them in cold water for 10 minutes before adding to the pot to help remove any excess ice.
