Finding a reliable ceviche recipe that captures the true flavors of Mexico can feel like searching for a needle in a haystack. Between recipe websites claiming “quick” versions with pre-cooked seafood and others adding unnecessary ingredients, it’s easy to get lost in the mix of what’s authentic and what’s not.
That’s why I’m excited to share this traditional Mexican ceviche recipe that I learned from my friend’s abuela in Veracruz. It’s refreshingly simple, uses fresh ingredients you can find at most grocery stores, and shows you exactly how to properly “cook” the seafood in citrus juice – the way it’s been done for generations.

Why You’ll Love This Ceviche
- Quick preparation – This fresh ceviche comes together in just 20-30 minutes, making it perfect for last-minute entertaining or a quick lunch on hot days.
- Fresh and light – Made with fresh marlin, crisp vegetables, and zesty lime juice, this ceviche is a refreshing dish that won’t weigh you down.
- No cooking required – The lime juice does all the work of ‘cooking’ the fish, so you don’t need to turn on your stove or oven – perfect for warm weather!
- Customizable recipe – You can easily adjust the heat level with the chilies, add pineapple for sweetness, or switch up the fish based on what’s fresh at your local market.
What Kind of Fish Should I Use?
While this recipe calls for Marlin, you’ve got plenty of options when it comes to making ceviche. Any firm, white-fleshed fish will work great – think snapper, sea bass, halibut, or mahi-mahi. The key is picking a fish that’s fresh and high-quality since you’ll be “cooking” it in lime juice rather than with heat. When you’re at the fish counter, look for fish that smells clean like the ocean (not fishy), has clear eyes if whole, and firm flesh that springs back when pressed. If you’re not sure about serving raw fish at home, you can partially cook the fish first by briefly searing it, then finishing it in the lime juice – this gives you the same great taste with extra peace of mind.

Options for Substitutions
This ceviche recipe can be adapted with several substitutions while keeping its fresh, zesty character:
- Marlin: While marlin makes great ceviche, you can use other firm white fish like mahi-mahi, sea bass, halibut, or red snapper. Just make sure the fish is very fresh and suitable for raw preparation since it’s ‘cooked’ in citrus juice.
- English cucumber: Regular cucumbers work fine – just remove the seeds if they’re large. Persian cucumbers are another good option and don’t need deseeding.
- Lime juice: Fresh lime juice is key for properly ‘cooking’ the fish – bottled juice won’t work as well. In a pinch, you can use a mix of fresh lemon and lime juice, but avoid using only lemon juice as it changes the traditional flavor.
- Green chili peppers: Depending on your heat preference, you can use jalapeños, serrano peppers, or even mild poblanos. For less heat, remove the seeds and membranes.
- Red onion: White onion is a good substitute, though it’s slightly sharper. If you find raw onion too strong, soak your diced onion in cold water for 10 minutes before adding it to the mix.
- Cilantro: If you’re not a cilantro fan, you can use fresh parsley, though it will change the traditional flavor profile of the dish.
Watch Out for These Mistakes While Cooking
The biggest mistake when making ceviche is not using the freshest fish possible – always buy sushi-grade fish from a trusted source and keep it properly chilled until you’re ready to prepare the dish. The second common error is rushing the “cooking” process – the fish needs at least 2-3 hours to properly “cook” in the lime juice, and you’ll know it’s ready when the fish turns opaque and firm throughout. To ensure food safety, make sure to dice your fish into uniform, bite-sized pieces (about 1/2 inch cubes) so they “cook” evenly in the citrus juice, and always keep your ceviche refrigerated during the entire marinating process. For the best flavor balance, add the cucumber, tomatoes, and other vegetables just 30 minutes before serving – this keeps them crisp and prevents them from becoming too soggy from the lime juice.

What to Serve With Ceviche?
Mexican ceviche is super refreshing on its own, but serving it with the right sides makes it even better! Tortilla chips or tostadas are perfect for scooping up all that citrusy goodness – I always put out a big basket of them when serving ceviche. For a more filling meal, you can serve it alongside Mexican rice or some warm corn tortillas. I also like to put out some sliced avocado and extra lime wedges so people can customize their plates, and if you’re feeling fancy, a side of plantain chips adds a fun tropical twist.
Storage Instructions
{
“storage instructions”: [
{
“storage instruction”: “Keep Fresh”,
“description”: “Once your ceviche is ready, pop it in an airtight container and keep it in the fridge. It’s best enjoyed within 24 hours of making it, but you can keep it for up to 2 days. The lime juice will continue to “cook” the fish, so the texture might change a bit the longer it sits.”
},
{
“storage instruction”: “Make Ahead”,
“description”: “You can prep some ingredients ahead of time – dice your cucumber, tomatoes, onion, and pineapple and store them separately in the fridge. But don’t mix everything together until about 4 hours before serving. This gives the fish enough time to “cook” in the lime juice while keeping everything fresh and crisp.”
},
{
“storage instruction”: “Serve”,
“description”: “For the best flavor and texture, take your ceviche out of the fridge about 10 minutes before serving – this lets the flavors wake up a bit. Give it a gentle stir to redistribute the juices, and drain off any excess liquid that may have accumulated.”
}
]
}
| Preparation Time | 20-30 minutes |
| Cooking Time | 0-0 minutes |
| Total Time | 20-30 minutes |
| Level of Difficulty | Easy |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 600-700
- Protein: 120-130 g
- Fat: 10-15 g
- Carbohydrates: 30-40 g
Ingredients
- 1/2 large red onion, diced (finely diced for a milder flavor)
- black pepper, to taste (freshly ground preferred)
- sea salt, to taste
- 1/2 cup diced pineapple (optional, adds a touch of sweetness)
- 2 lb marlin (sushi-grade, cut into 1/2-inch cubes)
- 1 english cucumber, diced
- 1 small bunch cilantro, chopped
- 2 green chilis, diced (such as serrano or jalapeño, seeds removed for less heat)
- 1 cup lime juice (freshly squeezed for best flavor, about 8-10 limes)
- 1 lb tomatoes, diced (I use Roma tomatoes for less seeds)
Step 1: Prepare Ingredients
Start by dicing the fish into very small cubes, aiming for the same size as the cubes of cucumber, tomato, pineapple, and red onion.
This uniformity in size ensures even marination and a harmonious combination of flavors when you bite into the ceviche.
Step 2: Marinate the Fish
Place the diced fish in a shallow dish in a single layer.
Juice the limes thoroughly and pour the lime juice over the fish.
Sprinkle sea salt and black pepper over the top to taste.
Toss the fish to coat well with juice and seasonings, ensuring every piece is evenly covered.
Adjust seasonings as needed, adding more sea salt, black pepper, or lime juice until the flavor suits your taste preferences.
Step 3: Final Touches and Refrigerate
Once the seasoning is adjusted, stir in freshly chopped cilantro into the marinated fish.
If desired, refrigerate the dish for about an hour before serving to let the flavors meld together.
This will also allow the lime juice to “cook” the fish slightly, enhancing the ceviche’s refreshing texture and taste.