Fish soup has been a traditional part of the Czech Christmas Eve meal for centuries, even though fried carp and even Schnitzels tend to prevail on Christmas tables today. After many requests, I decided to cook the fish soup, write down the recipe, and share it with you. I believe you will enjoy this Czech Christmas classic!

➜ The tradition of fish soup in the Czech Republic
Few Christmas dishes have such a long and deeply rooted tradition as fish soup. Fish farming has been part of Czech history since the Middle Ages. Southern Bohemia, especially the Třeboň region, is famous for its extensive system of ponds, where freshwater fish are still farmed today.
Carp has become one of the most popular and affordable fish here in the Czech Republic. Every year before Christmas, vendors with large tubs of live carp appear in front of shopping centers. Customers can buy fresh fish, and the vendor will clean and prepare it on the spot, ready to be taken home and cooked.
This year, I visited a local fish farm in the small town of Lvová, about a 15-minute drive from our house. I purchased a ready-to-cook package specifically intended for fish soup, which included a carp head and milt (mlíčí). The entire package cost 60 CZK (about $3, December 2025).
Looking for more Czech Christmas classics? Try Kuba, the traditional mushroom and barley bake, or browse the category with Czech Christmas recipes.
➜ Pronunciation
The name of this recipe in Czech is Rybí polévka (fish soup). I recorded the pronunciation in Czech so you can hear how it is said and try it yourself.
➜ What is Czech Christmas fish soup made from?
For traditional fish soup, Czechs have always made good use of the whole fish. The soup is usually cooked from carp heads, fins, bones, and other trimmings left after cutting the fish. From the innards, milt is used most often, and sometimes roe as well. Liver and kidneys may also be added, but other innards are not suitable for soup.
The carp head needs to be carefully cleaned, with the eyes and gills removed. The gills, in particular, can make the soup taste bitter if they are left in. If possible, it is best to buy a fish head that has already been properly cleaned by the fishmonger.
I prepare the broth slowly from the carp head and trimmings, giving it time to develop a gentle, full flavor. Once the broth is strained, I add the milt and any other offal. They are very delicate and only need a few minutes of gentle cooking.
➜ Ingredients note
✅ See the recipe below with step-by-step photos and many helpful tips. Scroll down for the full printable recipe in both US cups and metric measurements.

- Carp head - cleaned, with eyes and gills removed
- Carp milt - in the Czech Republic, milt is one of the common ingredients for the soup
- Spices: allspice, bay leaves, freshly ground pepper
- Root vegetables: carrot, parsley root, celeriac (parsley root and celeriac can be replaced with parsnip)
- Onion and garlic cloves
- Nutmeg - a favorite spice of Czech grandmas. I use whole nutmeg and grate it fresh for the best aroma, but ground nutmeg works as well.
- All-purpose flour - a small amount to thicken the soup
- Unsalted butter
- Salt to taste
To serve: bread croutons and fresh green parsley
➜ Kitchen equipment
You will need a soup pot that holds at least 1 gallon (4 liters) of water, another slightly smaller pot, and a strainer for the broth. Standard kitchen tools such as a vegetable peeler, knife, and cutting board are also needed. In addition, you will need a frying pan and a wooden spoon for sautéing the vegetables, as well as a hand whisk for mixing in the roux.
➜ How to make Czech fish soup
STEP 1: Start with preparing the vegetables. Peel the carrots, parsley root, and celeriac, and cut them into evenly sized medium cubes. Peel the onion, cut it in half lengthwise, and then each half into 3-4 wedges. Peel the garlic and cut the cloves in half. If using whole nutmeg, grate it on a hand grater with small holes. Cut the carp milt into equal pieces about 1 inch (2.5 cm) in size - in the photo below.

STEP 2: Place the carp head into a pot, cover with 1 gallon of cold water, and add 1 teaspoon of salt. Add the onion and garlic. Bring the soup to a gentle boil.
TIP: I keep the soup gently simmering uncovered at about 185-203 °F (85-95 °C) throughout the cooking time, checking the temperature with a kitchen thermometer.
A white foam will form on the surface. Skim it off carefully. Once most of the foam has been removed and only a little new foam forms, add the allspice and bay leaves. Simmer gently below the boiling point for 40 minutes. Do not cover with a lid.

STEP 3: Set a fine sieve over a clean pot and carefully pour the broth through it, so the liquid is collected in the pot below. Set the fish meat aside to cool. Discard the vegetables and spices. Pour off about 1.½ cups of the broth and let it cool slightly. Return the remaining broth to the stove and keep it simmering gently.

STEP 4: Heat the butter in a large skillet over medium-high heat. Add the diced vegetables, season lightly with salt, and sauté for about 15 minutes, stirring frequently. Lower the heat slightly, add the flour, and sauté for 1 minute, stirring constantly. That way, you are creating a kind of roux (Czech jíška) - important for thickening the soup.

TIP: Salting the vegetables helps bring out their natural flavor.
STEP 5: Dilute the roux: Reduce the heat under the pan to low. Gradually add the reserved broth to the vegetables, stirring gently after each addition. At first, the mixture will become quite thick, then slowly loosen as more liquid is added. Taking your time with this step helps prevent lumps from forming.


STEP 6: Slowly pour the roux-vegetable mixture into the pot with the broth, whisking vigorously as you do so.
STEP 7: Add the pieces of carp milt. Season with nutmeg, salt, and pepper. Cook uncovered for 15 minutes.
STEP 8: Remove the meat from the cooked carp head, cut it into equal pieces, and add it to the soup. Taste and adjust seasoning if needed.

➜ Serving
Czechs usually serve carp soup as the first course on Christmas Eve. For a nicer presentation and an extra touch of flavor, many add a handful of bread croutons and some freshly chopped parsley to each bowl.
TIP: The soup tastes even better the next day, once the flavors have had time to develop. I like to prepare mine a day ahead, which also saves time and work on Christmas Eve.

➜ Quick video showing how to serve the fish soup
I recorded a short video showing how to serve fish soup. Watch on YouTube HERE.

➜ How to store
Let the soup cool as quickly as possible, then place it in the refrigerator. Stored this way, it will keep well for at least three days.
Fish soup also freezes very nicely, especially when portioned out in advance. Freeze individual servings in suitable containers, leaving out the bread croutons. Stored in the freezer, it is best used within up to three months.
➜ My tips for success
- The real flavor of this soup comes from a good broth made from the fish head and trimmings. The innards on their own cook very quickly and simply do not have enough time to give the soup the depth it needs.
- Let the broth simmer slowly and gently, around 85-95 °C (185-203 °F). Skim off any foam that appears on the surface, just as our grandmas always did, to keep the soup clear and clean in taste.
- If you are using frozen fish heads, let them thaw completely first. Rinse them well and gently remove the slimy surface before cooking. This little bit of care makes a lovely difference in the final flavor.
➜ Frequently asked questions
Christmas Eve was once considered part of the Lenten period, when people avoided eating meat. Fish, however, was permitted, which is why it became part of the Christmas Eve table. In rural areas of the Czech lands, many families didn't have much money, and meat was not as affordable as it is today. Fish was often the most accessible option, so families learned to make the most of it, including preparing fish soup.
Yes, it can. If carp is not available where you live, simply ask your local fishmonger for advice. They will be able to recommend a suitable freshwater fish that works just as well in this soup.
Very little, especially if you follow the recipe carefully. The soup can sometimes turn bitter if the gills are left on the fish head, so be sure they are removed. With that taken care of, you can expect a delicious and comforting soup.
Tried this recipe?
Leave a review down in the comments! ⭐⭐⭐⭐⭐
Other readers and I love hearing what you think. Stay in touch by following me on Facebook and Pinterest. For more Czech stuff, subscribe to my newsletter!
📖 Recipe

Fish Soup (Czech Rybí polévka)
Tap or hover to scale
Ingredients
- 2 pounds carp head cleaned
- 1 gallon water
- 10 ounces milt carp milt (mlíčí)
- 2 pieces onions medium
- 2 cloves garlic fresh
- 5 pieces allspice
- 2 pieces bay leaves
- ½ teaspoon black pepper ground, more to taste
- 2 pieces carrots medium
- 1 piece parsley root medium
- 5 ounces celeriac
- ¼ teaspoon nutmeg ground
- 2 Tablespoons unsalted butter
- 2 Tablespoons all-purpose flour
- salt to taste
Instructions
- Prepare the ingredients: Peel 2 pieces carrots, 1 piece parsley root, and 5 ounces celeriac and cut them into evenly sized cubes. Peel 2 pieces onions, cut them in half lengthwise, then into 3-4 wedges. Peel 2 cloves garlic and cut the cloves in half. Grate ¼ teaspoon nutmeg finely. Cut 10 ounces milt into 1-inch (2.5 cm) pieces.
- Cook the broth: Place 2 pounds carp head in a large pot, cover with about 1 gallon (4 liters) of cold water, and add 1 teaspoon of salt. Add the onion and garlic. Bring to a gentle boil. Skim off the white foam that forms on the surface. Once most of the foam is gone, add 5 pieces allspice and 2 pieces bay leaves. Simmer gently, uncovered, below boiling point for 40 minutes.
- Strain the broth: Set a fine sieve over a clean pot and carefully strain the broth into it. Set the fish meat aside to cool. Discard the vegetables and spices. Remove about 1½ cups of the broth and set it aside. Keep the remaining broth gently simmering.
- Make the roux (jíška): Heat 2 Tablespoons unsalted butter in a skillet over medium-high heat. Add the diced vegetables, season lightly with salt, and sauté for about 15 minutes. Lower the heat, add 2 Tablespoons all-purpose flour, and cook for 1 minute, stirring constantly.
- Dilute the roux: Reduce the heat to low. Gradually add the reserved broth to the vegetables, stirring gently after each addition, until smooth.
- Combine: Slowly pour the roux-vegetable mixture into the simmering broth, whisking continuously.
- Finish the soup: Add the carp milt. Season with nutmeg, salt, and ½ teaspoon black pepper. Cook uncovered for 15 minutes.
- Add the fish meat: Remove the meat from the cooked carp head, cut it into bite-sized pieces, and add it to the soup. Taste and adjust seasoning.
Notes
- Makes 6-8 portions.
- SERVING: Czechs usually serve carp soup as the first course on Christmas Eve. For a nicer presentation and an extra touch of flavor, many add a handful of bread croutons and some freshly chopped parsley to each bowl.
- I simmer my soups at about 185-203 °F (85-95 °C), while monitoring the temperature with a kitchen thermometer. Never vigorous boil!
- STORAGE: Let the soup cool as quickly as possible, then place it in the refrigerator. Stored this way, it will keep well for at least three days.
Fish soup also freezes very nicely, especially when portioned out in advance. Freeze individual servings in suitable containers, leaving out the bread croutons. Stored in the freezer, it is best used within up to three months.






Comments
No Comments