Homemade fish stock (also called fish fumet) is one of the fastest “real” stocks you can make. It’s the secret weapon behind restaurant-level seafood soups, chowders, paella, risotto, and quick pan sauces. Done right, it tastes clean, light, and almost sweet, not fishy.
I make fish stock whenever I’ve got fish bones and heads from breaking down a whole fish, or when my fish market has a bag of “frames” for cheap. It’s a great way to cut food waste and turn scraps into liquid gold.

I first learned how to make a proper fish stock while working at The Ocean Room on Kiawah Island years back. This technique is simple, but yields stellar results and is versatile for most fish recipes.
Fish Stock vs Fish Broth
People use “fish broth” and “fish stock” interchangeably, but here’s the practical difference:
- Fish stock is made by simmering bones and heads (and sometimes a little clinging meat). That pulls out more gelatin, which gives stock better body and a lightly jello-like texture when chilled.
- Fish broth is typically made by simmering meat and bones with a heavier addition of seasonings. It’s basically a ready to go soup base.
- Takeaway: If you’re making something where the fish flavor needs to show up cleanly (bouillabaisse-style soups, seafood risottos, fish velouté), fish stock is the better option.
Key Tips for the Best Fish Stock
1) Use the right fish (avoid oily fish)
For classic fish fumet, stick to white-fleshed, lean fish: snapper, grouper, halibut, sea bass, sea bream, cod, and similar. Avoid oily fish like salmon, mackerel, bluefish, and tuna unless you specifically want a strong, oily stock for a dedicated dish.
2) Remove the gills (and rinse well)
If you’re using heads, cut out the gills. Gills carry blood that can make the stock taste “off” and turn it cloudy. Rinse the bones and heads under cold water to remove slime and any bloody bits.
Optional “extra clean” step: Soak bones in cold water for 30 minutes, drain, and repeat once more. This step is worth it if you want a stock with the cleanest flavors possible.
3) Keep the cook time short and the heat gentle
Fish stock is not like duck stock or venison stock. Long cooking turns it cloudy and bitter. You want a bare simmer: a few lazy bubbles, never a rolling boil.
4) Sweat the aromatics, don’t brown them
This stock should stay pale and clean. Sweat the fennel, onion, leek, carrot, and celery until softened, but don’t let them brown.
5) Strain gently for better clarity
A fine-mesh strainer is non-negotiable. If you want a clearer stock, strain through a paper towel-lined strainer. Do not mash the solids aggressively unless you truly do not care about clarity.
Fish Stock Ingredients
- Fish heads and bones from non-oily, white fish (ask the fish market for “frames”)
- Olive oil (for sweating the veg)
- Fennel bulb (adds a clean, coastal sweetness)
- Onion
- Leek (optional, but great for a classic fumet vibe)
- Carrot (optional if you want the stock lighter in color. But I like to use it)
- Celery
- Bay leaf
- Fresh Italian parsley (or other mild fresh herbs)
- White peppercorns (cleaner flavor than black pepper here)
- Dry white wine (adds brightness)
- Water (filtered water or spring water is the best option)
- Kombu (optional; adds subtle umami)
How to Make Fish Stock
Sweat the vegetables
In a large stockpot over medium heat, warm the olive oil. Add fennel, onion, leek (if using), carrot, celery, bay leaf, and parsley. Lower to medium-low heat and cook until the vegetables soften, about 5 to 8 minutes. No browning.
Cook the bones briefly
Add fish bones and heads and stir gently until the bones turn opaque and white, about 8 to 10 minutes.
Add wine and water, then Gently simmer
Pour in the white wine and let it steam for a minute. Add water. Bring to a bare simmer (not a boil) and cook gently for about 20 minutes. Skim foam as it rises.
Rest and strain
Turn off the heat and let the stock rest for 10 minutes. Strain through a fine-mesh strainer into a heatproof container.
Chill and store
Cool to room temperature, then refrigerate. Once chilled, you can skim any fat from the surface (there usually isn’t much with lean fish).
Recipes to use your fish stock
Below are a couple of recipes that you can make using your new fish stock. Or check out my complete fish recipes page for more dinner ideas.
If you make this fish stock recipe, drop a comment or leave a review. And if you have any fish stock cooking questions or want to share your latest creations, give me a shout on Instagram at @larry__white.
Fish Stock Recipe
Ingredients
- 4 pounds fish heads and bones, (non-oily fish)
- 3 tablespoon extra virgin olive oil
- 1/2 of a small fennel bulb, chopped
- 2 onions, chopped
- 2 leek, chopped
- 1 carrot, chopped
- 3 celery stalks, chopped
- 2 bay leaf
- 3 sprigs of fresh Italian parsley
- 1 piece kombu (optional)
- 15 white peppercorns
- 2 cups dry white wine
- 6 cups water
Instructions
- In a large pot, heat the oil over medium heat. Add the fennel, onion, leek, carrot, celery, bay leaf, and parsley. Lower the heat to medium-low and cook until the vegetables are soft (do not let brown). This should take around 5 to 8 minutes.
- Add the fish bones to the pot. Cook, stirring often, until the bones and any meat around them turn white. This should take around 10 minutes.
- Add the water and wine. If the mixture isn't fully covered by the liquid, add more water to cover.
- Adjust the heat to a slow simmer. Simmer for 20 minutes, then skim off the foam as it rises to the surface. Remove the pot from the heat and let the mixture rest for 10 minutes.
- Strain the fish stock through a fine strainer. If you don't care about clarity, press down on the solids while in the strainer to extract all the juices for maximum flavor.
- Let cool to room temperature. Cover and refrigerate until needed.
NOTES
- Remove gills: If using heads, pull the gills. It prevents bitterness and cloudy broth.
- Do not boil: A rolling boil makes fish stock taste harsh and look murky. Keep it at a bare simmer.
- Short cook time: About 20 minutes of gentle simmering is plenty for flavor and body.
- Strain for your goal: Pressing solids gives maximum flavor, but a clearer stock comes from gentle straining.
- Storage: Refrigerate tightly covered up to 3 days, or freeze up to 2 months.