This Easy Fish Head Soup, also called Ukha, is a light, nourishing fish soup from Russian and Ukrainian cuisines made with fish, potatoes, carrots, and fresh herbs. The clear, flavorful broth with tender flakes of fish is both refreshing and satisfying.

Ukha traditionally features a clear, aromatic broth brightened with dill and often finished with a squeeze of lemon. It’s a simple, versatile soup that can be made from whole fish parts for a richer stock or from fillets for a quicker version.
The recipe below is easy to follow, nutrient-dense, and ready in under an hour—perfect for a weeknight meal or a comforting weekend dinner.
Recipe Overview
- Prep and Cook Time: 10 minutes prep, about 20–25 minutes cooking
- Cooking Method: Stove-top
- Dietary Info: Can be adapted for Whole30, Paleo, Keto, GAPS, WAPF, and other ancestral-style diets
- Tools Needed: Large stockpot
- Skill Level: Easy
Reasons to Love this Fish Soup
This soup wastes nothing when made with heads and tails, producing a rich, nourishing broth. It’s quick to prepare, easy to adapt (swap potatoes for cauliflower if you prefer low-carb), and works with many types of fish.
For rich flavor: use salmon heads and tails. For a milder taste: use white-fleshed fish or salmon fillets. If you want to maximize nutrients, make a concentrated fish fumet or stock first and use it as the soup base.
Fish head soup is a practical, flavorful, and economical way to enjoy seafood while getting the most from every part of the fish.

Ingredients for Fish Head Soup

- Fish: 2 pounds fish heads and tails or skin-on salmon fillets (or 2–3 fillets ~6 oz each). Heads and tails give a deeper broth; fillets make a quicker soup.
- Water: about 4 quarts filtered water
- Vegetables: 1 large yellow onion (peeled and halved), 5–6 Yukon Gold potatoes (diced), 3 medium carrots (peeled and sliced)
- Aromatics: bay leaves, whole black peppercorns, and sea salt to taste
- Finish: 1 lemon, fresh dill or scallions for garnish
Substitutions and Variations
- Fish choices: cod, halibut, trout, sea bass, or salmon all work well.
- Parts: use bones or fillets if heads aren’t available.
- Make it heartier: add rice noodles or ramen.
- Extra vegetables: add spinach, bok choy, bell pepper, or spring onions for color and nutrition.

How to Make Fish Soup
The printable recipe follows below. Use these step-by-step instructions for the best results.

Step 1 — Fill: In a large stockpot, place well-washed fish heads, tails, or fillets with bay leaves, peppercorns, and the halved onion. Season with salt and add enough water to just cover the ingredients.

Step 2 — Simmer: Bring to a gentle simmer over medium heat, then reduce the heat so the liquid barely bubbles. Simmer until the fish is cooked—about 10 minutes for fillets and up to 20 minutes for heads and tails.

Step 3 — Strain: Remove solids from the pot. Strain the broth through a fine mesh sieve into another pot. If you used fillets, peel skin and flake the fish. If you used heads, pick the flesh from the bones and discard the carcasses, skin, onion, and bay leaves.

Step 4 — Cook vegetables: Return the strained stock to the pot and add the diced potatoes and sliced carrots. Bring to a boil, then reduce to a simmer and cook until the potatoes are tender (about 6–8 minutes).

Step 5 — Add fish: Add the flaked cooked fish to the pot and simmer 2–3 minutes just to warm through.

Step 6 — Finish: Remove the soup from heat, squeeze in lemon juice, and garnish with chopped fresh dill and extra lemon slices.
Helpful Tips
- Using fish heads: Use 3–4 pounds of heads and tails for a robust stock if you prefer a deeper flavor.
- Quick option: Use fillets if short on time. Simmer fillets ~10 minutes, remove and flake, then cook the potatoes and carrots in the remaining broth and add the fish back at the end.
- Strain the broth: Straining is recommended when using heads to remove any undesirable bits.
- Add fish last: Return the cooked fish at the end to prevent rubbery texture from overcooking.
Troubleshooting
- Fish flavor too strong? Reduce intensity by adding neutral vegetables (zucchini) or a splash of lemon or vinegar to balance the taste.

Serving Suggestions
Serve ukha with a wedge of lemon and a generous sprinkle of chopped dill and green onions. Season with freshly cracked black pepper. This soup pairs nicely with crusty bread or rye for a complete meal.

Frequently Asked Questions
Store leftovers in an airtight container in the refrigerator for 3–4 days. Reheat gently on the stovetop over medium heat, stirring occasionally and avoiding vigorous boiling.
Freezing is not recommended because potatoes often become grainy when thawed. The soup is quick to make fresh, so it’s best prepared as needed.
After cooking, let the heads cool slightly, then pick the cooked flesh from the bones with a fork or tongs. Discard bones and add the picked meat back to the soup.
Stovetop is preferred. Pressure cooking can intensify fish flavors and risks overcooking; stovetop simmering gives better control and a clearer broth.
Looking for more traditional recipes? Try dishes that use whole-animal or whole-fish cooking for maximum flavor and nourishment.
-
How to Cook Beef Tongue
-
How to Make Beef Tallow from Bone Broth
-
Lacto-Fermented Jalapeños
-
Easy Beef Liver Pâté
Did you make this Fish Soup? Please leave a recipe rating and a short review—thank you!
Printable Recipe

Fish Soup – Simple Ukha Recipe
Ingredients
Stock Base for Fish Soup
- 2 pounds fish heads, tails, or fillets (see notes)
- 4 quarts filtered water
- 1 large yellow onion, peeled and halved
- 4 bay leaves
- 1 tablespoon sea salt
Fish Soup
- 5–6 large Yukon Gold potatoes, diced
- 3 medium carrots, peeled and sliced
- 1 lemon
- Fresh dill or scallions for garnish
Instructions
Base for Fish Head Soup
- Place washed fish heads, tails, or fillets in a large stockpot with bay leaves, peppercorns, and onion. Add salt and enough water to barely cover ingredients.
- Bring to a gentle simmer over medium heat, then reduce to a bare simmer and cook: about 20 minutes for heads/tails, about 10 minutes for fillets.
- Strain the broth through a fine mesh sieve into a clean pot. Pick any edible fish flesh from bones and discard carcass, skin, onion, and bay leaves.
Fish Soup
- Add diced potatoes and sliced carrots to the strained stock and bring to a boil, then simmer until tender (about 6–8 minutes).
- Stir in the flaked cooked fish and simmer 2–3 minutes to warm through.
- Remove from heat, squeeze in lemon juice, garnish with chopped dill and lemon slices, and serve.
Notes
Storage: Refrigerate in an airtight container for 3–4 days and reheat gently on the stove. Avoid vigorous boiling.
Tips: Use heads and tails for a deeper stock, or fillets for a quick soup. Strain broth when using heads. Add cooked fish at the end to prevent overcooking.