Homemade Fish Stock

Inside: Everything you need to know about making homemade fish stock: what fish to use, how long to simmer, and why you should never let those bones go to waste.

The next time you bring home a whole fish, don’t let those scraps go to waste. Fish stock is the fastest, most rewarding stock you’ll ever make, and it turns something most people throw in the trash into the foundation of your best seafood dishes.

4 containers of fish stock.

Unlike beef stock, which takes the better part of a day, fish stock is done in under an hour. The flavor is clean, delicate, and deeply savory — nothing like the watery, salt-forward stuff in a carton. And once you have a stash in your freezer, dishes like chowder, seafood gumbo, paella, and risotto become noticeably better.

If you’re working with shrimp shells or a leftover lobster carcass, I’ve got you covered there, too — check out my shrimp stock and homemade lobster stock recipes. And if you’ve ever made my rotisserie chicken stock, this follows the same waste-not logic — just dramatically faster.

Fish stock, fish broth and fish fumet–What’s the difference?

These terms get used interchangeably, and honestly, at the home-cook level that’s fine. But here’s what they technically mean:

  • Fish stock is made with bones and heads, which release collagen and gelatin as they simmer. The result is a rich, full-bodied liquid used as a cooking ingredient — the base for soups, sauces, and braises.
  • Fish broth is made with fish meat rather than bones, which produces a lighter, cleaner liquid. It’s closer to something you’d drink on its own. Because it lacks the collagen from bones, it has less body than stock.
  • Fish fumet is the French term for a concentrated fish stock, typically made with white wine and flatfish bones (sole, flounder) and simmered for 20–30 minutes to preserve delicate flavor. In restaurant kitchens, fumet is the refined version. At home, the line between stock and fumet blurs — and this recipe lands somewhere in between.

Best choices for making stock:

A collage of different fish perfect for stock.

The ideal fish for stock is lean, white, and saltwater. You want bones and heads from fish like:

  • Snapper
  • Sea bass or striped bass
  • Grouper
  • Halibut or flounder
  • Sole
  • Cod or haddock
  • Mahi mahi
  • Tilefish or porgy

The bones from these fish are mild enough to make a neutral, versatile stock without overpowering whatever you’re cooking.

Fish heads are particularly valuable — they’re loaded with collagen, which gives your stock body and a silky texture. If you fillet your own fish, save the carcass. If you don’t, ask your fishmonger. Heads and frames are often available for free or very little — they’re usually destined for the trash otherwise.

What to avoid:

Skip oily, strongly flavored fish — salmon, mackerel, bluefish, and tuna will make a stock that’s overpowering and one-dimensional. It won’t work as a neutral base and will dominate whatever dish you add it to. (The exception: if you’re making salmon chowder specifically, salmon bones can work — but that’s a targeted use, not a general-purpose stock.)

The Freezer Bag Method

You don’t need to make stock every time you cook fish. I keep a zip-top bag in the freezer and add bones, heads, and shells as I accumulate them. Once the bag is full and I’m ready, I make stock. Frozen bones work just as well as fresh — just rinse them well before using.

Ingredients:

Ingredients for fish stock.
  • Fish heads or bones–The foundation. Fresh is great, but frozen works well too. Rinse thoroughly under cold water to remove blood and goo before adding to the pot; it can cloud the stock.
  • Fennel bulb–Adds a subtle anise note that complements seafood without competing with it. Though optional, don’t skip it if you have it — it’s one of those background ingredients that makes a difference.
  • Onion–Foundational aromatic. Sliced thin so it gives up its flavor quickly in the short simmer time.
  • Garlic–Smashed, not minced. You want flavor, not texture — it all gets strained out anyway.
  • Lemon–To brighten the stock and keep it from tasting flat. The acidity also helps extract flavor from the bones.
  • Whole peppercorns–More nuanced than ground pepper. They add a gentle heat without muddying the stock’s flavor or clarity.
  • Parsley stems–The stems (not the leaves) have more concentrated flavor than the leafy parts. Save the leaves for garnish elsewhere.
  • Fresh thyme–Adds an herbal backbone. A few sprigs are all you need; don’t worry about pulling them off the stem.
  • Kosher salt–Season lightly in the beginning; you can always adjust at the end after straining.
  • Dry white wine–or dry vermouth; optional but worth it. Wine adds depth and a subtle acidity. Dry vermouth gives a slightly more complex, almost briny note that works beautifully in seafood stock. If you prefer a purer fish flavor or are cooking for someone who avoids alcohol, skip it entirely and add a splash more water.
  • Cold water–Always start with cold water. Starting cold draws flavor out of the bones gradually and produces a cleaner, clearer stock than starting hot.

Step-by-step instructions:

Rinsing fish heads.
  1. Rinse fish heads and bones under cold running water to remove any blood, detritus or debris. Use your fingers, if necessary to remove any stuck bits of blood or fish matter.
Fish heads in a pot.

2. Transfer the fish heads and bones to a large stock pot.

Add the aromatics.

3. Add the aromatics (onion, fennel, parsley stems, thyme, lemon slices and peppercorns) to the stock pot.

Adding water and wine.

4. Add wine and fresh cool water to the pot (enough to cover the bones and vegetables).

Bring the liquid to a simmer.

5. Bring the liquid just to a boil and reduce the heat to a low simmer. Put the lid on the pot, askew to let steam escape. Simmer the fish stock for 30 minutes.

Strain the stock.

6. Remove the large bones and vegetables with a pair of tongs and transfer them to a bowl to cool. (If you’re using fish heads, pick through the remnants, you can get quite a bit of very tender meat from the heads and collar.

Strain the stock through a mesh strainer and into a large bowl. Further strain the stock through a fine-mesh strainer to remove the smaller bits.

Divide the stock between storage containers and refrigerate or freeze.

7. Divide the stock between storage containers and refrigerate or freeze until you’re ready to use.

Pro-Tips:

  • Start with cold water. Always. Cold water draws flavor out of the bones gradually and produces a clearer stock. Hot water seizes the proteins immediately and clouds the liquid.
  • Don’t skip the rinse. Run your fish bones and heads under cold water before they go in the pot. It removes blood and surface impurities that would cloud the stock and give it an off flavor.
  • Remove the gills if using heads. Snip them out with kitchen scissors — they’re the dark, feathery structures inside the gill plate. Blood in the gills clouds the stock quickly and adds a metallic note. This takes 30 seconds and matters.
  • Keep it at a bare simmer, never a boil. A rolling boil can cloud the stock. You want lazy bubbles breaking the surface.
  • Simmer for only 30-45 minutes. The hardest thing about fish stock is stopping on time. It smells incredible and your instinct will be to let it go longer. Don’t. The window between perfectly flavored and bitter is narrow.
  • Double strain for clarity. The large mesh sieve catches bones and vegetables; the fine mesh sieve catches the finer bits. If you want a crystal-clear stock for an elegant sauce, line the fine sieve with a piece of cheesecloth.
  • Taste and adjust after straining, not before. Salt concentration changes as the stock is reduced and strained. Season at the end.
  • Ask your fishmonger for frames and heads; many will set them aside for you at little or no cost.
An overhead of the fish stock.

Mistakes To Avoid:

  • Simmering too long. The single most common fish stock mistake. Beyond 30–45 minutes, fish bones release bitter compounds that can’t be fixed.
  • Using oily fish. Salmon, mackerel, bluefish — any strongly flavored oily fish will produce a stock that’s overpowering. Stick to more neutral white fish.
  • Skipping the gill removal. If you’re using whole heads, this step makes a difference.
  • Boiling instead of simmering. A hard boil makes cloudy, greasy stock. Medium-low heat, lid slightly askew, lazy bubbles only.
  • Not labeling freezer containers. Frozen fish stock can resemble chicken stock, so if you’ve got some of that on hand, it’s best to be sure what you’re grabbing. Label everything with contents and date before it goes in the freezer.
A closeup of the stock.

Swaps and Variations:

  • No fresh fish bones? Frozen works perfectly well — just rinse thoroughly before using. Ask your fishmonger for his discards.
  • Out of fennel? Skip it or substitute a small piece of leek (the green top portion you’d normally discard) for a similar mild, aromatic note.
  • No white wine or vermouth? Leave it out entirely and add an extra splash of water. The stock will be slightly less complex but still excellent.
  • You can also add shrimp, crab, or lobster shells alongside the fish bones to create a more complex seafood stock. Even a small handful adds sweetness and depth.
  • Want a more intense fish stock? After straining, return the stock to the pot and simmer uncovered for 10–15 minutes to reduce and concentrate. This is essentially a light fumet and works beautifully as a sauce base.
  • No fish stock on hand? Bottled clam juice is your best substitute, used 1:1. It’s saltier, so hold back on added salt. Shrimp stock or lobster stock also works in most seafood applications, though it has a reddish-orange hue rather than a golden one.
4 containers of fish stock.

Fish Stock FAQs

How long should you simmer fish stock?

30–45 minutes. Beyond that, it turns bitter. Fish stock is the fastest stock you’ll make.

Can you use salmon bones to make fish stock?

Technically yes, but only for salmon-specific dishes (salmon chowder, salmon bisque). The distinctive flavor doesn’t work as a neutral base.

What’s the difference between fish stock and fish broth?

Stock uses bones and is richer, used as a cooking ingredient. Broth uses meat and is lighter, often consumed alone. In practice, home cooks (and even the internet) use them interchangeably — don’t overthink it.

Can I use clam juice instead of fish stock?

Yes — it’s the closest commercial substitute. Use in a 1:1 ratio. It’s saltier, so adjust seasoning accordingly.

Why is my fish stock cloudy?

Three causes: boiling instead of simmering, skipping the gill removal, or pressing the solids too aggressively when straining.

Can you make fish stock in an Instant Pot?

Yes — 15 minutes on high pressure, quick release, then strain. The flavor is comparable, and the aromas will be contained.

Chilled fish stock that's gelatinous.

Storage:

  • Store homemade fish stock in a sealed container or jar for 3-5 days.

Reheating:

  • Heat over medium heat on the stovetop.
  • Use the stock to make soups, chowders or delicate seafood sauces.

Freezing:

  • The fish stock lasts in the freezer for up to 3 months.
  • I recommend using plastic quart-sized containers with lids for freezing, or for smaller uses, freeze the stock in ice cube trays and then transfer to a zip top freezer bag (labeled, of course).

More fish recipes:

3 quarts of fish stock with lemon and garlic.
Print Pin
No ratings yet

Homemade Fish Stock

Rich, golden, and deeply flavored, this homemade fish stock transforms fish heads and bones into the base that makes chowders, risottos, and pan sauces taste like a pro made them. Ask your fishmonger for heads and frames — most will save them for you for free or next to nothing.
Author: Lisa Lotts
Servings 8

SPECIAL EQUIPMENT:

INGREDIENTS:

  • 3 pounds fish heads or bones very fresh or frozen
  • ½ fennel bulb sliced
  • ½ onion peeled and sliced thin
  • 3 cloves garlic smashed
  • ½ lemon sliced
  • 1 teaspoon whole peppercorns
  • 1 bunch parsley stems not the leaves)
  • 4 sprigs thyme
  • 2 teaspoons kosher salt (plus more to taste)
  • ½ cup dry white wine or ⅓ cup of dry vermouth (optional)
  • 4 quarts fresh water

DIRECTIONS:

  • Combine 3 pounds fish heads or bones, ½ fennel bulb, ½ onion, 3 cloves garlic, ½ lemon, 1 teaspoon whole peppercorns, 1 bunch parsley stems , 4 sprigs thyme, 2 teaspoons kosher salt, ½ cup dry white wine, 4 quarts fresh water (or enough to cover all the ingredients) in a large stock pot.
  • Bring the pot to a low boil over medium-high heat. Once the stock begins to boil, reduce the heat to medium-low, place the lid on the pot so it's slightly askew, and simmer for 30 minutes, up to 45 minutes.
  • Remove the pot from the heat and use a pair of tongs to fish out the big chunks of bone and vegetables. Transfer them to a rimmed baking sheet (the rim will catch any excess drips and juices. Set aside to cool.
  • Place a large mesh sieve over a large bowl and pour the fish stock through the sieve.
  • Then put the fine sieve over one of the quart-sized containers and pour the stock through to remove the finer bits of detritus and denataured proteins released from the fish. Taste for seasonings and add additional salt if desired, to taste.
  • Fill each of the quart sized containers (Mine yielded about 3½ quarts). Set the stock aside to cool to room temperature before refrigerating or freezing.

RECIPE VIDEO:

NOTES:

If you used fish heads for your stock, the heads usually have quite a bit of meat in them.
While the stock cools, pick through the pile of bones and vegetables and pull away any chunks of whole fish you can find.
You can use them for soups and chowders, in fish tacos, for fish dip, or for salads (lettuce, pasta, rice, or a sandwich base with whole chunks of white fish, celery, onion, and mayo).
Storage and Freezing:
  • Store homemade fish stock in a sealed container or jar for 3-5 days.
  • Heat over medium heat on the stovetop.
  • Use the stock to make soups, chowders or delicate seafood sauces.
  • The fish stock lasts in the freezer for up to 3 months.
  • I recommend using plastic quart-sized containers with lids for freezing, or for smaller uses, freeze the stock in ice cube trays and then transfer to a zip top freezer bag (labeled, of course).
 

NUTRITION:

Calories: 87.67kcal | Carbohydrates: 4.03g | Protein: 11.96g | Fat: 1.64g | Saturated Fat: 0.04g | Polyunsaturated Fat: 0.05g | Monounsaturated Fat: 0.04g | Sodium: 618.13mg | Potassium: 145.01mg | Fiber: 1.23g | Sugar: 1.25g | Vitamin A: 648.3IU | Vitamin C: 16.47mg | Calcium: 42.74mg | Iron: 0.81mg

Pin it for later!

A Pinterest pin to save.

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating




This site uses Akismet to reduce spam. Learn how your comment data is processed.