Start with bones and heads from fish you've actually caught or bought whole
The difference between fish broth and fish-flavored water is the raw material. You need bones, heads, and collars — the parts most people throw away. A whole fish broken down at home gives you everything: the frame holds gelatin and minerals, the head contains the cheeks and collar (the most flavorful meat), and the gills add depth without bitterness if you rinse them first.
If you buy fillets, ask the fishmonger for bones and heads. Many will give them to you free or for a few dollars. Rinse everything under cold water and feel along the bones for any remaining guts or blood clots — these make broth cloudy and bitter. Pat dry before you start cooking.
The species matters less than the freshness. Flatfish (flounder, sole, halibut) make delicate broths. Darker fish (mackerel, bluefish) make stronger ones. Mix them if you want complexity. Avoid oily fish like salmon unless you want a rich, assertive broth — it will dominate everything you add later.
Key Takeaways
- Fish broth depends on bones and heads from fresh fish, rinsed of blood and guts before cooking.
- A slow simmer for 30 to 45 minutes extracts flavor without breaking down bones into bitter fragments.
- Skim the foam that rises in the first 10 minutes to keep the broth clear and clean-tasting.
- Strain through cheesecloth and cool quickly so the broth stays fresh and the fat separates cleanly on top.
- Frozen broth keeps for three months; refrigerated broth keeps for three to four days if you store it properly.
Build flavor with aromatics, not salt
Put your rinsed bones and heads in a heavy pot and cover with cold water — about 2 quarts for 2 pounds of bones. Bring to a bare simmer over medium heat. Within the first few minutes, gray foam will rise to the surface. Skim it off with a spoon or small strainer. This foam is coagulated protein and impurities; removing it keeps the broth clear and prevents a muddy taste.
Once the foam stops rising (usually after 10 minutes), add your aromatics: a halved onion (skin on, for color), a carrot cut into chunks, a celery stalk, a bay leaf, and a few black peppercorns. Do not add salt yet. Salt concentrates as the broth reduces, and you will oversalt if you add it now. You can always salt the finished broth or the dish you make with it.
Some cooks add a splash of white wine or a squeeze of lemon juice at this point. Both are optional but useful — wine adds roundness, lemon adds brightness. Neither is necessary for good broth.
Simmer low and long, but not too long
Reduce heat to the lowest setting. The broth should barely bubble — one or two small bubbles breaking the surface every few seconds. This is crucial. A rolling boil breaks down bones into fragments and emulsifies fat into the liquid, making the broth cloudy and greasy.
Cook for 30 to 45 minutes. Fish broth does not need hours like beef or chicken stock. The bones are thin and the collagen breaks down quickly. After 30 minutes, taste a spoonful. It should taste like the sea — clean, mineral, slightly sweet. If it tastes thin or watery, give it another 10 or 15 minutes. If it tastes bitter or harsh, stop immediately; you have cooked past the point where the broth is good.
Do not stir. Stirring breaks up the bones and clouds the liquid. Let it sit undisturbed.
Strain and cool the broth properly
Set a fine-mesh strainer over a clean bowl. Line it with cheesecloth if you want the broth crystal-clear (optional but worth it for a refined soup). Pour the broth slowly through the strainer. Do not press on the solids — let gravity do the work. Pressing squeezes out cloudy liquid and breaks down the bones.
Discard the solids. If you want to save the fish meat from the head and collar for another use (it is tender and sweet), pick it out before you strain, but do this quickly so the broth does not cool.
Let the broth cool to room temperature on the counter, then refrigerate uncovered for at least 2 hours. As it cools, the fat will rise and solidify on top. This fat layer protects the broth underneath and keeps it fresh longer. You can leave it there or skim it off, depending on how rich you want your finished soup or stew to be.
Store broth so it stays fresh and ready
Refrigerated broth keeps for 3 to 4 days in a covered container. The fat layer on top acts as a seal; if you remove it, use the broth within 2 days. Frozen broth keeps for up to 3 months. Pour it into ice cube trays for small portions, or freeze it flat in a bag so you can break off what you need.
If you notice any off smell, cloudiness that looks like mold, or a sour taste, discard it. Fresh broth should smell clean and slightly sweet, like the ocean.
Troubleshooting common problems
Cloudy broth: You either skipped skimming the foam, stirred during cooking, or pressed on the solids when straining. Next time, skim early and often, keep the heat low, and let the liquid drain on its own. If the broth is already made, you can clarify it by straining it again through cheesecloth, but this takes time and loses some flavor.
Greasy broth: The heat was too high and emulsified the fat into the liquid. Chill the broth and skim the fat layer off the top. If the fat is still suspended in the liquid, you can skim what you can and accept that this batch is richer than ideal. Next time, keep the simmer very gentle.
Bitter or harsh taste: You cooked too long or used bones that were not fresh. Fish broth turns bitter after 45 minutes or so. Use fresh bones and stop at 30 to 45 minutes. If you already made it, there is no fix — start over.
Weak or thin broth: You used too much water or too little bone. The ratio should be roughly 1 pound of bone to 1 quart of water. If the broth tastes thin, simmer it uncovered for another 15 minutes to concentrate the flavor, or use it as is and build flavor with other ingredients in your soup or stew.
Frequently Asked Questions
Can I make fish broth from frozen bones?
Yes, but thaw them first under cold running water or in the refrigerator overnight. Frozen bones take longer to release their flavor, and you may need to simmer for 45 to 50 minutes instead of 30 to 40. The broth will be good, but fresh bones are better.
Should I use the gills?
Rinse them well and yes, they add flavor. The gills contain blood and can make broth bitter if they are not clean, so spend a moment rinsing them under cold water. Remove any dark tissue or clots before cooking.
What if my broth gels when it cools?
That is a sign of good broth — it means you extracted plenty of gelatin from the bones. Gelling is not a problem. Warm the broth gently to liquefy it again, or use it as is in a stew where the gel will melt into the liquid.
Can I reuse the bones to make a second broth?
You can, but the second broth will be much weaker. If you want to try it, simmer the used bones for 45 to 60 minutes and use the result as a light broth or to thin a sauce. Most cooks skip this step and compost the bones instead.
How do I know when the broth is done?
Taste it. It should taste clean and mineral, with a hint of sweetness. If it tastes thin or watery, cook longer. If it tastes bitter or harsh, stop immediately. Most fish broth reaches its peak at 30 to 45 minutes.