San Francisco Seafood Cioppino with Crusty Sourdough
The moment the wine hits the warm pot, it loosens the browned bits and the kitchen starts smelling like the beginning of a good seafood stew. I make San Francisco…
Tip: save now, cook later.The moment the wine hits the warm pot, it loosens the browned bits and the kitchen starts smelling like the beginning of a good seafood stew. I make San Francisco seafood cioppino with crusty sourdough when I want a tomato-rich broth that feels generous without being complicated: first build the base, then let the seafood cook briefly in the simmering liquid.
Fennel gives the broth its gentle anise note, while clam juice and seafood stock make it taste briny and full without hiding the sweetness of the shrimp and mussels. I add the seafood in stages because each piece needs a different amount of time. The cod stays in tender chunks, the shrimp turn opaque, and the opened mussels make every bowl feel like a little feast, with warm sourdough ready for the last swipe of broth.

Kitchen Note
Cut the cod into even 1-inch chunks before it goes into the pot. Pieces close in size cook at the same pace, so you’re less likely to have small bits flaking apart while larger ones finish.
Save this San Francisco seafood cioppino for a cozy bowl of briny tomato broth, tender seafood, and crusty sourdough for dipping.
Why the Wine Goes In Before the Tomatoes
Wine does more here than add acidity. Once the onion and fennel have softened, the garlic, pepper flakes, and tomato paste get a brief turn in the pot; then the wine goes in while the pot is still hot. Scrape the bottom as it simmers, and those browned bits loosen into the broth instead of staying stuck to the Dutch oven.
Adding the tomatoes after that short wine simmer gives the base a chance to cook off some of the wine’s sharp edge before the liquid simmers uncovered. That matters in a seafood stew, where a heavy or harsh tomato taste can crowd out the seafood. Keep the later simmer gentle and uncovered, rather than rushing it at a boil. The stock, clam juice, and tomato then have time to come together before the delicate seafood goes in.
This order also makes the timing easier to manage. The broth has its own simmering time, and the seafood is added only once that base is ready, so it doesn’t sit in the pot cooking while the flavors develop.
How Fennel, Clam Juice, and Tomato Build Cioppino’s Broth

- Fennel and onion — Fennel brings a subtle anise flavor that belongs in this style of stew, while onion rounds out the base. Choose a firm fennel bulb; slice it thinly so it softens alongside the onion rather than staying crunchy.
- Tomato paste and crushed tomatoes — The paste gives the broth a concentrated tomato backbone, and canned crushed tomatoes supply body. An ordinary can of crushed tomatoes works well here; there’s no need to use premium whole tomatoes and crush them yourself.
- Dry white wine — A dry wine adds brightness without making the broth sweet. Use one you’d be comfortable drinking, but an expensive bottle won’t improve a pot that also has tomatoes and seafood stock.
- Seafood stock and clam juice — Together, they give the broth its ocean-savory depth. If seafood stock isn’t available, use an equal amount of clam juice in its place for a brinier, more pronounced clam flavor.
- Mussels, cod, and shrimp — The mix gives the stew several textures: mussels in their shells, flaky white fish, and springy shrimp. Buy fresh seafood from a source you trust, and keep the cod cut into even chunks so it cooks consistently.
- Parsley and lemon juice — These go in at the end, where their fresh, bright notes lift the tomato broth. Fresh lemon juice tastes cleaner here than bottled juice.
- Crusty sourdough — Its tang and sturdy crust make it a natural match for the broth. A crusty loaf from the bakery works; the point is a firm bread that can be dipped without immediately falling apart.
Build the Broth First, Then Cook the Seafood in Stages
Soften the onion and fennel
Warm the olive oil in a 6-quart Dutch oven over medium heat, then add the chopped onion and thinly sliced fennel. Stir occasionally as they cook for about 6 minutes. Look for softened vegetables, not browned edges; if the pot starts sizzling hard, lower the heat so the base softens evenly.
Cook the tomato paste and loosen the pot
Stir in the garlic, red pepper flakes, and tomato paste, and cook for 1 minute. Pour in the wine and let it simmer for 2 minutes, scraping up the browned bits from the bottom as you go. Keep scraping while the liquid bubbles gently, so those flavorful bits become part of the broth.
Let the tomato broth simmer
Add the crushed tomatoes, seafood stock, clam juice, bay leaf, oregano, salt, and black pepper. Bring the mixture to a simmer, then cook it uncovered over low heat for 15 minutes. You’re looking for small, steady bubbles rather than a rolling boil; aggressive boiling can reduce the liquid faster than intended.
Warm the sourdough while the broth cooks
While the broth simmers gently, heat the oven to 350°F. Set the sourdough loaf on a rimmed baking sheet and warm it for 10 minutes. The loaf should be warm through with a crust that feels crisp again, not dried out; serve it alongside the stew for dipping.
Add the seafood in two rounds
Add the mussels and cod to the simmering broth, cover, and cook for 4 minutes. Add the shrimp, cover again, and simmer for 3 to 5 minutes, until the shrimp are opaque, the cod reaches 145°F, and the mussels have opened. Discard any mussels that remain closed. Remove the bay leaf, stir in the parsley and lemon juice, and serve the cioppino hot.
Three Smart Changes for Different Tables
Make the serving bread gluten-free
Use a gluten-free crusty loaf instead of the sourdough. It keeps the same dunkable role, though the crumb may be more delicate; warm it according to its package directions so it doesn’t dry out.
Trade cod for halibut
Use firm halibut cut into 1-inch chunks in place of the cod. It has a slightly meatier texture and tends to cost more, but its firm flakes work well in the tomato broth; cook until the center reaches 145°F.
Turn up the pepper
For a livelier, spicier broth, use more red pepper flakes when you cook them with the garlic and tomato paste. The heat will come through more clearly against the tomatoes, so increase it in small steps rather than letting it overwhelm the seafood.
Storage and Reheating
- Refrigerator: Store leftover cioppino in a covered container for up to 2 days. The seafood will soften a little as it sits in the broth.
- Freezer: Freeze in an airtight container for up to 2 months. The broth holds up well, though the seafood and mussels may lose some tenderness after thawing.
- Reheating: Warm gently in a covered saucepan until the leftovers reach 165°F. Avoid a hard boil, which can toughen the shrimp and fish.
Questions That Come Up When Making Cioppino

San Francisco Seafood Cioppino with Crusty Sourdough
Ingredients
Equipment
Method
- Heat the olive oil in a 6-quart Dutch oven over medium heat, then add the onion and fennel and cook, stirring occasionally, until softened, about 6 minutes.
- Stir in the garlic, red pepper flakes, and tomato paste and cook for 1 minute.
- Pour in the wine and simmer for 2 minutes, scraping up any browned bits from the pot.
- Add the crushed tomatoes, seafood stock, clam juice, bay leaf, oregano, salt, and pepper, then bring to a simmer and cook uncovered over low heat for 15 minutes.
- While the broth simmers gently, heat the oven to 350°F, place the loaf on a rimmed baking sheet, and warm it for 10 minutes.
- Add the mussels and cod to the simmering broth, cover, and cook for 4 minutes.
- Add the shrimp, cover, and simmer for 3 to 5 minutes, until the shrimp are opaque, the cod reaches 145°F, and the mussels have opened; discard any mussels that remain closed.
- Remove the bay leaf, stir in the parsley and lemon juice, and serve hot with the warmed sourdough.