How to make simple ceviche at home

Making great ceviche at home is easier than most people think. My restaurant specializes in this dish of raw fish ‘cooked’ in fresh citrus juice. I’m drawing on my decades of experience to show you how to choose the right fish, prepare it properly and avoid common mistakes that can make or break this summer dish.
My earliest memories of ceviche are in Peru. Before my family moved to Atlanta, I remember gathering around the table as fresh fish came home from the market and everyone had a role in preparing the meal. Ceviche wasn’t reserved for a celebration. It was simply part of life.
Those memories have stayed with me. In many Peruvian families, recipes aren’t written down. They’re passed from one generation to the next through cooking together. That’s a form of wealth I’ve been fortunate to inherit, and it’s something I think about every time I make ceviche.
National Ceviche Day is June 28, and I hope this helps you bring a little of that tradition into your own kitchen. Once you understand the fundamentals, making great ceviche is less about following a recipe and more about trusting your ingredients.

What is ceviche?
At its simplest, ceviche is fresh fish cured in citrus, most often lime. The acid changes the texture of the fish without any heat, creating something bright, refreshing and full of flavor. People often talk about Peruvian ceviche as if there’s only one version, but that’s not how we think about it in Peru. Every region has its own traditions, ingredients and way of making leche de tigre, the citrus-based marinade often called “tiger’s milk.”
Some of my earliest food memories are from the Peruvian cities of Lima and Piura, and the ceviche from each place is very different. In Piura, leche de tigre is beautifully simple: lime juice, onion, aji, salt and the juices from the fish. In Lima, where culinary traditions from across Peru come together, you’ll often find more layered versions with additional ingredients and different techniques. The leche de tigre I make is closer to the style you’d find in the capital.
You’ll also find incredible versions of ceviche throughout Latin America and in other coastal cultures around the world. In Mexico, it’s often cured longer and served with tomato, cucumber, avocado and tostadas. In the Philippines, kinilaw relies on vinegar and sometimes coconut milk. Every version reflects the place it comes from.
One last thing: In Peru, we eat ceviche with a spoon so you get a little fish, a little leche de tigre and a little garnish in every bite.
How to choose the best fish for ceviche
The most important thing I tell people at my monthly Ceviche Sessions, where I walk you through breaking down a fresh catch, mixing leche de tigre and seasoning your own ceviche, is this: Your ceviche will only ever be as good as the fish you start with. No amount of lime juice or seasoning can rescue fish that isn’t fresh.
The first thing I do is smell it. Fresh fish should remind you of the ocean. It should smell clean, briny and almost sweet. If it has a strong fishy smell, walk away. That’s a sign it’s past its prime.
Next, look at the texture. The flesh should be firm and spring back when you press it gently. That’s important because great ceviche starts with fish that has a clean, firm bite before the citrus works its magic. If the fish is already soft or falling apart, it’ll become mushy once it’s marinated.
If you’re buying a whole fish, look for bright, vibrant skin, clear eyes and gills that are still attached and deep red or pink. If the eyes are cloudy or the gills are gray, the fish is already losing its freshness.
Finally, get to know your fishmonger. Ask when the fish came in and what’s looking best that day. Those conversations will teach you as much as any recipe, and, over time, they’ll know exactly what to recommend for ceviche.

Best fish for ceviche
These are the fish I recommend most for home cooks, in order of my preference:
Snapper: My first choice. It’s firm, mild, easy to find in Atlanta and holds its texture beautifully in ceviche.
Flounder: Delicate and slightly sweet. It’s one of the fish most commonly used in cevicherías in Lima because it absorbs the citrus while staying tender.
Golden tilefish: Sweet, tender and one of my personal favorites. Its texture works especially well in ceviche, and it takes on the flavors of the leche de tigre beautifully.
Sea bass: Richer and more buttery than snapper or flounder. A great choice if you’re looking for a fuller flavor.
Grouper: Firm, clean-tasting and a dependable option when you can’t find the others.
You’ll also see ceviche made with salmon, mackerel and bonito. Many recipes tell you to avoid oily fish, but I don’t completely agree. Bonito, which is part of the tuna family, makes an excellent ceviche when it’s fresh and handled properly.
Should you use frozen fish?
Whenever possible, I prefer fresh fish from a seafood market I trust. That’s always my first choice. That said, high-quality frozen fish can absolutely work for ceviche, especially if it’s been handled properly from the start. If fresh isn’t available, don’t let that stop you from making ceviche at home.
How to cut fish for ceviche
How you cut the fish matters as much as the fish you choose. If the pieces aren’t consistent, they won’t cure evenly. The citrus will overcook some bites while others will still be raw in the center.
Start with a sharp chef’s knife. A dull knife tears the fish instead of slicing it cleanly, which affects both the texture and the finished dish. Make smooth, confident cuts instead of sawing back and forth.
I like to cut the fish into half-inch cubes. That gives the citrus enough surface area to cure the fish quickly and evenly while still leaving the center with some texture. Cut the pieces too small and the fish can become chalky. Too large, and they won’t cure evenly. Consistency is everything here. Peruvian ceviche is traditionally made with diced fish, while tiradito, one of its closest cousins, is made with thin slices, more like sashimi.

How long should ceviche marinate?
This is probably the biggest misconception about ceviche. People think longer is better, but the opposite is true. Once you add the leche de tigre, the clock starts. I like my ceviche after just a few minutes and rarely let it go longer than five. The fish should be opaque on the outside while remaining tender in the center. That’s the texture you’re looking for.
The biggest ceviche mistakes to avoid
Using bottled lime juice. Freshly squeezed lime juice has a brightness and aroma that bottled juice simply can’t match. If you can, use Persian limes. They’re the closest you’ll find here to the lime we use in Peru.
Forgetting the salt. Salt doesn’t just season the dish. It helps bring all of the flavors together.
Cutting the onion too thickly. Slice red onion as thinly as possible, then soak it in cold water for about 10 minutes to mellow its sharpness. In my kitchen, we always say to “shave” the onion.
Not tasting the leche de tigre first. Before the fish goes in, your marinade should taste bright, balanced and properly seasoned. Once you add the fish there is no going back.
Final thoughts
One of the things I love most about ceviche is that it teaches you to trust your senses. Look at the fish. Smell it. Taste as you go. Pay attention to texture. The more you make it, the more confident you’ll become. Simple ingredients, treated with care, have always made the best ceviche. I hope this guide gives you the confidence to make it at home.
Red Snapper Ceviche with Aji Limo Leche de Tigre
This version features Gulf snapper in a bright, citrusy leche de tigre made with aji limo chiles. Plate it with traditional Peruvian garnishes like boiled sweet potato, cooked cancha corn and, in a nod to my hometown of Piura, sea island red peas. You can substitute the cancha corn with corn nuts and the sea island red peas with rice peas.
Leche de tigre base
Ingredients
- ¼ cup celery
- aji limo chiles, thinly sliced, to taste (substitute with jalapeño or serrano if unavailable)
- ⅔ cup fish trimmings (snapper preferred)
- ½ teaspoon cilantro stems, minced
- ⅓ cup red onion, large dice
- 5 garlic cloves
- ¼ teaspoon ginger, peeled and minced
- 1 tablespoon kosher salt, plus more to taste
- 2½ cups lime juice
- 4 cups fish stock
- 1-2 ice cubes
Makes about 5 cups
Directions for leche de tigre
1. In a large bowl, combine the celery, aji limo chiles to taste, fish trimmings, cilantro stems, red onion, garlic, ginger and salt with the lime juice.
2. In batches, blend this mixture with the fish stock on high speed until smooth. Make sure each batch has enough liquid to stay fluid — this should be a pourable marinade, not a paste.
3. Add 1 to 2 ice cubes while blending to help prevent overheating the sauce.
4. Taste and adjust seasoning with more salt if needed.
Ceviche
Ingredients
- 1 cup diced snapper (fresh)
- ¼ cup thinly shaved red onions
- 1 tablespoon minced, fresh cilantro
- 1½ cups leche de tigre (prepared above)
Directions for the ceviche
1. In a mixing bowl, season diced snapper with salt, shaved red onions and cilantro. Toss well.
2. Add the leche de tigre to generously coat the fish and onions. Mix thoroughly and let marinate for two to five minutes.
3. Spoon into a large bowl — something large enough to hold the marinade — and enjoy as is or with garnishes like boiled sweet potato, cooked cancha corn and sea island peas.
Makes 1 cup.