This post may contain affiliate links. Please read our disclosure policy.
White fish ceviche is my answer to “I want something fresh and delicious, but not a lot of work.” No stove, no oven, just fresh fish, a serious pile of limes, and an hour while the citrus does the cooking for you. Fresh, a little spicy, and ready to scoop. SO easy!
At a Glance
A no-cook white fish ceviche you can pull together in about an hour, most of it hands-off.
What It Is. Mexican-style white fish ceviche. Works as an appetizer or a light main. No cooking needed!
Tastes Like. Tangy, with fresh lime up front and a mild serrano heat on the end.
Time to Table. About 20 minutes hands-on, 1 hour total (most of it hands-off marinating).
Feeds. 4.
Made For. Hot days when you do not want to cook, easy entertaining, and make-ahead grazing.
The Twist. Built on Florida catch (grouper or snapper) with sourcing for both coastal and inland cooks.
Heat Level. Mild by default. Leave the serrano seeds in for a real kick.
Good to Know. Do not marinate past about 45 minutes, or the fish turns chalky.
I Make This One on Repeat

My husband swears the best ceviche of his life came from a little beach club called Unico, a couple of doors down from where he lived in Puerto Morelos. He ate it almost every day for years, and he has chased that same bowl ever since. This started as my version of his obsession, and somewhere along the way it became mine too.
Now I make it constantly. We spent a couple of years inland in Tennessee, where I got good at hunting down quality fish far from any coast so we could keep on making it. Now that we are back home in St. Augustine it is in heavy rotation again. It is what I reach for the minute friends text that they are on their way, or the minute it gets too hot to turn on the stove. Grab tortilla chips, pour a Modelo, and you have dinner. Hope this becomes your new favorite!
Why This One’s a Keeper
- It’s Ridiculously Fresh! Lime, a touch of orange, sweet red pepper, crunchy cucumber, and herby cilantro. No heavy sauces, no cream, no shortcuts. Just coastal flavor.
- The Fish Cooks Itself! The acid in fresh lime juice firms the fish and turns it opaque without any heat. It is a quiet little kitchen miracle, and once you taste that first bite you are hooked.
- It’s Light But Satisfying! Lean protein, crisp veggies, and no added sugar or heavy sauces. You feel good after a bowl.
- It’s Ready In Under An Hour! Most of the time is hands-off marinating. Active prep is just chopping while the fish does its thing.
- It’s Endlessly Versatile! Pile it on tostadas, scoop it with chips, build a bowl over rice, or set it out in small bowls for guests. Fold in avocado, mango, or pineapple. It plays nicely with everything.
- It’s Made For Entertaining! Make it ahead, keep it cold over a bowl of ice, and watch it disappear. People always ask for the recipe.
The Lime Is So Important!
Why the Lime Matters So Much Here? Quick science moment! The lime is not a garnish in this dish, it is the whole cooking method. The acid in fresh lime juice denatures the proteins in the fish, unwinding and re-linking them the same way heat would, which is why raw fish turns firm and opaque in the bowl. That is also why fresh-squeezed juice is non-negotiable (bottled is flat and treated), why you salt heavier than you think (the acid eats it up), and why you do not over-marinate (too long and those proteins tighten past tender into chalky). Get the lime right and the rest of the recipe basically works itself out.

What Goes In the Bowl
See the full ingredient list and exact amounts in the recipe card below.
- White Fish. Grouper and snapper are my favorites. Both are firm, mild, and lean, and they hold up in the citrus without falling apart or turning chalky. Fresh-caught is the dream, but flash-frozen is a fantastic option (more on that below).
- Citrus. Twelve Pesrian limes and a navel orange, fresh-squeezed only. The limes do the heavy lifting, so squeeze your own (bottled juice gives you flat ceviche). The orange is just a splash, softening the sharp edge of the lime and adding a subtle sweetness that pulls everything into balance.
- Fresh Veggies. Red onion for bite and color, red pepper for sweetness and crunch, seedless English cucumber so it will not go watery, and a little clove of garlic for savory depth. Half a serrano brings the heat (deseed it for mild, leave the seeds in for a real kick). Chop them all to a similar size so every bite has a little of everything.
- Cilantro. So essential! If you are a cilantro hater, sub fresh flat-leaf parsley or chives.
How to Make White Fish Ceviche, Step by Step
Here is how to make white fish ceviche, step by step. The photos walk you through each stage, and the exact amounts live in the recipe card below.

No. 1 — Juice the citrus. Roll the limes firmly on the counter, then juice all twelve along with the orange (room-temperature Persian limes give up the most juice). You are after about 1 1/2 cups of fresh lime juice, plus the orange.

No. 2 — Dice the Fish. Cut the fish into even 1/2″ cubes. Small, uniform pieces let the lime penetrate evenly, so every piece “cooks” at the same rate.
No. 3 — Add the Fish and Citrus, Then Marinate. Add the cubes to a glass or ceramic bowl (never metal, the acid reacts), pour all of the fresh lime and orange juice over the top, and chill for 30 to 45 minutes, until the fish turns opaque.

No. 4 — Cut the Veggies. While the fish marinates, dice the red onion, red pepper, and cucumber to match the fish, and finely chop the cilantro, garlic, and serrano.
No. 5 — Fold Everything Together. Add the veggies right into the bowl with the fish and its citrus and gently fold to combine.

No. 6 — Let the Veggies Marinate Too. Cover and chill for another 10 to 15 minutes so the veggies soak up the citrus.
No. 7 — Salt, Top, and Serve. Add salt and a pinch of red pepper flakes, taste and adjust (you will want more than you think), then pour off the excess juice (set it aside as leche de tigre, if you’d like). Fold in diced avocado and serve cold with tortilla chips or tostadas.
The Best White Fish for Ceviche
You want a fish that is firm, mild, lean, and either fresh-caught or flash-frozen. Skip oily fish like salmon or mackerel for this traditional preparation.
Grouper. Firm and sweet. My personal favorite, especially here in St. Augustine.
Snapper (red or yellowtail). Slightly sweet, holds up beautifully, widely available.
Mahi Mahi. Lean, mild, easy to find frozen at most grocery stores.
Sea Bass. The traditional Peruvian choice. Buttery and substantial.
Halibut. Pricier but excellent if you can find it.
Hogfish. A Florida Keys specialty and absolutely worth it if you can get it.
Where We Shop for Fish, Coastal AND Inland
This is the part most recipes leave out, and it is the whole reason you can make great ceviche from anywhere. Here is the honest order I shop in.
Local and fresh-caught first. Now that we are back on the coast in St. Augustine, my go-to is Kyle’s, with Fisherman’s Dock a close second, for whatever came in that day. When we get down to the Keys, I hit Keys Fresh Seafood Market (hands-down favorite, the freshness and the team are unmatched) and Fishbusterz (a Key West classic I have trusted for years). Tell them you are making ceviche and they will point you to the best catch of the day.
The alternatives I still use, even on the coast. Here is the thing: we spent a couple of years inland in Chattanooga, and it taught me how to get great fish nowhere near the water. I still make these runs, because the frozen options are that good.
- Costco. Love their frozen mahi mahi, wild-caught snapper, or ahi tuna. Vacuum-sealed and flash-frozen at sea. Check the bag for “frozen at sea” or “previously frozen.”
- Aldi. The Specially Selected line of frozen wild-caught fish (especially mahi mahi and cod) is a hidden gem. Check the back of the bag and avoid anything labeled “farmed” for ceviche.
- Whole Foods, Publix, or Kroger. On the coast, ask the seafood counter for sashimi-grade and tell them you are eating it raw. Farther inland, skip the fresh counter and head straight to the frozen fillets.
- Online, for anyone nowhere near either: Catalina Offshore Products, Sea to Table, and Riviera Seafood Club ship sashimi-grade fish to your door.
Pin this now to find it later
Pin ItWhat “Flash-Frozen” Actually Means (And Why It Matters for Ceviche)
Flash-frozen and regular frozen are not the same thing, and the difference matters a lot when you are eating fish raw. Flash-frozen (sometimes “frozen at sea,” “FAS,” or IQF for individually quick frozen) means the fish was frozen fast at very low temperatures, usually right on the boat within hours of the catch. Because it freezes so quickly, the ice crystals stay tiny and the cell walls do not get shredded, so the texture stays beautiful when it thaws. That deep freeze is also cold enough to kill parasites, which is exactly what makes it safe to eat raw. Your home freezer does the opposite: it freezes slowly, forms big crystals that puncture the fish, and thaws out mushy, which is why you should never home-freeze fresh fish and then eat it raw. Bottom line, flash-frozen from a reputable source is just as safe as fresh sashimi-grade, sometimes safer. Look for vacuum-sealed bags labeled “flash frozen,” “frozen at sea,” “FAS,” or “IQF,” and skip anything just labeled “frozen” with no detail.
Working with Flash-Frozen Fish (My Hard-Earned Trick)
If you are using flash-frozen fish (most of us, most of the time), the prep is everything.
- Thaw slowly in the fridge overnight. Never on the counter, never in the microwave. That is how you get mushy fish.
- Drain off the thaw liquid. Once thawed, the fish will have let go of a fair amount of water.
- Pat dry twice. Spread the pieces out on paper towels (not touching), let them sit a few minutes, then move them to fresh towels and pat dry again.
Watery fish dilutes the lime and wrecks the texture, so this little ritual is worth the few extra minutes. Using fresh-caught? Rinse it well under cold water and pat completely dry before cubing. Even with fresh fish that rinse matters, because a rinsed, dry surface is what keeps the flavor and texture right.
Tips for Good Ceviche
Use The Freshest Fish You Can Find. Non-negotiable. Look for “sushi-grade” or “sashimi-grade,” ask what came in that morning, or use flash-frozen from a trusted source.
Cut Everything Small And Uniform. A tidy 1/2″ dice on the fish lets the lime penetrate evenly. Chop the veggies to the same size so every bite has a little of everything.
Don’t Over-Marinate. For 1/2″ cubes, 30 to 45 minutes is the sweet spot. Pull it at 30 for a more tender center, closer to 45 for firmer all the way through. Past two hours the fish turns dry and chalky, and there is no undoing it, so set a timer.
Always Use Fresh Citrus. Roll the limes firmly on the counter first, then use a handheld juicer with the cut side facing the spout so each lime presses fully inside out. Every last drop.
Use A Non-Reactive Bowl. Glass or ceramic only, never metal. Acid plus metal equals off flavors and possible discoloration.
Add Salt And Avocado After The Lime “Cook.” Salt too early draws water out of the fish, so it goes in at the end. Avocado gets bashed up if you stir it in early, so fold it in just before serving.
Serve It Cold, Always. For a party, nest the serving bowl over a larger bowl of ice. The fish is technically still raw, so keep it chilled the whole time it is out.
What to Serve With This Dish, and What to Pour
Ceviche wants a cold drink and something to scoop with. There are no rules, but here is where I start.
To scoop and pile:
- Tortilla chips, the classic salty sturdy move.
- Tostadas piled high with a drizzle of hot sauce.
- Plantain chips for a Caribbean, slightly sweet crunch.
- Crackers, especially Firehook, my favorite for scooping.
- Spooned over rice for a bowl. Our Cilantro Lime Rice is the move here, or cauliflower rice for a lighter bowl.
- A spoonful of Quick Pickled Onions on top for extra tang and crunch.
To drink, ceviche calls for a cold, crisp Modelo, our house pairing whenever this is on the table. A few other favorites:
- Another cold Mexican lager (Pacifico or Corona).
- A classic margarita or paloma.
- Crisp white wine (Sauvignon Blanc, Albariño, Verdejo).
- A pisco sour if you are going full Peruvian.
- Sparkling water with lime.

White Fish Ceviche
Equipment
- Sharp knife
- Cutting board
- Citrus Juicer
- Serving Bowl (glass or ceramic)
Ingredients
SEAFOOD
- 1 lb. White Fish grouper or snapper, fresh caught or flash frozen, cut into 1/2″ cubes
CITRUS
- 12 Limes halved and freshly squeezed
- 1 Navel Orange juiced
MIX-INS
- ⅓ c. Red Onion diced 1/2″ to match the fish
- ⅓ c. Red Pepper diced 1/2″
- ⅓ c. English Cucumber diced 1/2″
- ¼ c. Cilantro finely chopped
- 1 clove Garlic finely chopped
- ½ Serrano Pepper deseeded and finely chopped
- 1 Avocado diced (fold in just before serving)
TO SEASON
- Salt to taste
- Red Pepper Flakes to taste
Save this recipe!
Instructions
Juice the Citrus
- Roll the limes firmly on the counter to loosen the juice, then squeeze all twelve (room-temperature Persian limes are the juiciest) along with the orange. You want about 1 1/2 c. of fresh lime juice, plus the orange.
Cut The Fish
- Cut the fish into even 1/2" cubes. Keeping the pieces small and uniform lets the citrus firm every one at the same rate.
Marinate The Fish
- Add the cubes to a glass or ceramic bowl (never metal, the acid reacts), pour all of the lime and orange juice over the top, and refrigerate 30 to 45 minutes, until the fish turns opaque.
Prep The Veggies
- While the fish marinates, dice the red onion, red pepper, and cucumber to match the fish, then finely chop the cilantro, garlic, and serrano.
Fold It Together
- Add the veggies straight into the bowl with the fish and its citrus and gently fold to combine.
Marinate Once More
- Cover and chill another 10 to 15 minutes so the veggies drink up the citrus too.
Season, Top, And Serve
- Salt generously with a pinch of red pepper flakes, then taste and adjust (you will want more than you think). Pour off the excess juice and save it as leche de tigre, fold in the diced avocado, add a dot of hot sauce, and serve cold with tortilla chips or tostadas.
Notes
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.
FAQ’s
These two are close cousins, and people mix them up all the time. Ceviche is fish (or shellfish) diced and marinated in citrus for 20 minutes to an hour, then tossed with chopped veggies and herbs. Most of the citrus gets drained before serving, so the fish is the star. Think of it as a citrus-cured salad. Aguachile is usually shrimp, barely marinated for just a few minutes, and served swimming in a brighter, spicier blended “broth” of lime, fresh chiles, and cilantro. It is wetter, spicier, and eaten almost right away. If you want the full shrimp version, here is our Camarones en Aguachile, and if you want the diced bowl-style hybrid we developed in St. Augustine, here is our Aguachile Ceviche with Shrimp and Scallops.
It is my homage to the coastal Mexican style I fell for in Puerto Morelos, built around Florida catch. Ceviche is believed to have originated on the coast of Peru more than 2,000 years ago and spread up the Pacific coast, picking up local ingredients along the way. This is a Mexican-Caribbean take with a Florida accent, which is exactly how we eat it.
For 1/2″ cubes, 30 to 45 minutes is the sweet spot. Thirty minutes gives you a slightly tender center, 45 to 60 gives you firmer all the way through. Past two hours the texture turns chalky and dry, and you cannot walk it back, so smaller cubes and a timer are your friends.
It is not heat doing the work, it is acid. The lime juice denatures the proteins in the raw fish, the same structural change heat would cause, so the flesh firms up and turns opaque as it marinates. Because it is a chemical change and not a thermal one, the fish is technically still raw, which is why good sourcing and keeping it cold still matter (see the safety notes below). It also means you can over-“cook” it: leave the fish in the lime too long and those proteins tighten past tender into chalky, so pull it at 30 to 45 minutes.
Yes, when you source it well, keep it cold, and eat it within about 24 hours. Use fish labeled “sushi-grade” or “sashimi-grade,” or fish that has been properly flash-frozen (freezing at the right temperature is what kills parasites, since the lime’s acid does not). The FDA has a plain-English rundown of buying, storing, and serving seafood safely: Selecting and Serving Fresh and Frozen Seafood Safely.
Most healthcare providers recommend that pregnant folks avoid raw or undercooked seafood, ceviche included, because the acid does not eliminate bacteria or parasites the way heat does. If you want the flavor without the raw fish, poach the diced fish for 1 to 2 minutes, shock it in ice water, then marinate. When in doubt, ask your doctor, and see the FDA/EPA Advice about Eating Fish and the FDA’s food safety guidance for moms-to-be.
Absolutely, and it is often safer than “fresh.” Flash-frozen fish from a reputable source has been held cold enough to eliminate parasites. Thaw it slowly in the fridge overnight, drain, and pat dry twice before using (full method above).
Trust your nose. Fresh fish smells briny and fresh, never fishy or sour. The flesh should be firm and spring back when pressed, moist but not slimy, with vibrant color (grouper and snapper run pinkish-white, never dull, gray, or yellowing). If anything seems off, cook it through instead of using it raw. Check out my notes on sourcing quality fish above!
Yes. Any firm, lean white fish works (snapper, mahi mahi, halibut, or sea bass). Not a cilantro fan? Use flat-leaf parsley, chives, or fresh mint for a mojito spin. Want it saucier? Add a splash of Clamato for a Sinaloa style, or swap the red pepper for tomatillos to go verde.
My go-to limes are Persian limes, they always give up more juice than a standard lime, so start there if you can. Beyond that, three quick fixes. Bring them to room temperature (cold limes give up about half as much). Roll them firmly under your palm for 10 to 15 seconds before cutting. And use a handheld juicer with the cut side facing the spout so each lime presses fully inside out. Done right you get 2 to 3 tbsp. per lime, about 1 1/2 c. from twelve.
You can still make beautiful ceviche. Reach for flash-frozen fillets (Costco, Aldi’s Specially Selected line, the frozen aisle at Whole Foods or Kroger) or order sashimi-grade online from Catalina Offshore Products, Sea to Table, or Riviera Seafood Club. Then use the thaw-and-pat-dry method above and you are set.
That is a judgment call. Because the fish is essentially raw, many pediatricians suggest kids under five skip it, the same as raw sushi. For older kids it is a personal call, and poaching the fish for 1 to 2 minutes first is an easy way to serve it with no raw-fish worry.
Literally “tiger’s milk,” it is the citrusy, salty, slightly spicy liquid left at the bottom of the bowl after the fish has done its thing. In Peru it gets served in a small glass alongside the ceviche, sipped solo as a famous hangover cure, or spooned over the next thing on the plate. Do not pour all of it out. Strain off a few tablespoons, offer it as a little side shot, and people will think you are fancy.
Make Ahead
Ceviche is fantastic for entertaining, but combine it at the right moment so nothing goes soft.
Up to a day ahead. Chop all the veggies and store them covered in the fridge, separate from the fish.
About 1 to 2 hours before serving. Marinate the fish. Do not start it earlier, or the texture tightens up too much.
Right before guests arrive. Drain the fish and set that juice aside, fold everything together, let the veggies sit in the citrus for 10 to 15 minutes, then salt and set the bowl over ice.
Once combined, it is at its best within the first couple of hours.
How to Store
Keep leftovers tightly covered in a glass or ceramic container in the fridge for up to 24 hours, 48 at the very most. Before you store it, drain off the juice so the fish does not keep “cooking” and firm up as it sits. Even drained, the texture will shift a little the longer it waits. Give it a quick smell before eating. It should still smell briny and fresh, never sour or off. Do not freeze finished ceviche. The fish texture takes a serious hit and the veggies turn watery once thawed. This one is meant for the fresh life.

