Start with the right fish and the right heat

Grilling fish perfectly comes down to two things: choosing fish that can handle direct heat, and keeping that heat moderate enough that the outside doesn't char before the inside cooks through. Firm, oily fish — salmon, mackerel, bluefish, striped bass, halibut — forgive mistakes and stay moist. Delicate white fish like flounder or sole can work, but they need gentler handling and closer attention.

Set your grill to medium heat, around 400°F if you have a thermometer. This is cooler than you might think. A grill hot enough to sear a steak will turn fish skin to ash and leave the flesh raw. Medium heat gives you time to develop a crust without cooking the outside to leather while the inside stays cold.

Oil the grates themselves, not the fish. Brush your grill grates with a high-heat oil — vegetable, canola, or grapeseed — right before you put the fish on. This is your insurance against sticking. Wipe the oiled grates with a folded paper towel held in tongs to spread the oil evenly.

Key Takeaways

  • Firm, oily fish like salmon and mackerel grill better than delicate white fish because they stay moist over direct heat.
  • Oil the grates, not the fish, and do it right before grilling so the oil doesn't burn off.
  • Medium heat (around 400°F) gives you time to build a crust without charring the outside or leaving the inside raw.
  • A whole fish or thick fillet cooks skin-side down first and rarely needs flipping, which keeps it from falling apart.
  • Fish is done when the flesh is opaque all the way through and flakes easily at the thickest point, not when it looks dry.

Prepare the fish so it doesn't stick or fall apart

Pat your fish completely dry with paper towels before it touches the grill. Moisture is the enemy of browning and the reason fish sticks. A wet surface steams instead of searing, and steam prevents the crust that keeps fish from adhering to the grates.

Season the fish generously on both sides at least 10 minutes before grilling — salt draws out moisture, and those 10 minutes let that moisture evaporate so the surface stays dry. Use kosher salt or sea salt, not fine table salt, which dissolves too fast and tastes sharp. Pepper, lemon zest, or fresh herbs go on now too. Oil the fish lightly after seasoning, just enough to coat. This oil protects the flesh and helps browning.

For whole fish or thick fillets (1 inch or thicker), leave the skin on. Skin acts as armor, holding the delicate flesh together and preventing it from drying out. For thinner fillets, skin is still your friend — it's the part that browns and tastes best. If you're grilling a whole fish, score the thickest part of the body with a sharp knife, cutting just through the skin. This helps heat penetrate evenly and prevents the outside from cooking too fast.

The grilling technique that keeps fish intact

Place the fish skin-side down on the oiled grates and leave it alone. This is the hardest part: do not move it, do not poke it, do not flip it early. The skin will stick at first — this is normal. As the flesh cooks and firms up, it releases from the grates naturally. This takes 4 to 6 minutes for a 1-inch fillet, longer for a whole fish.

You'll know it's ready to move when you can slide a thin metal spatula under the fish without resistance. If you try to move it and it sticks, wait another minute. Forcing it breaks the skin and tears the flesh.

For most grilled fish, you don't need to flip it at all. The heat from below cooks the bottom and the ambient heat of the grill cooks the top. A whole fish or thick fillet will cook through skin-side down in 8 to 12 minutes depending on size. Thin fillets (under ¾ inch) may need a quick flip halfway through, but even then, keep it brief — 2 to 3 minutes per side.

If you're grilling fish in a basket or on a plank, the same rule applies: skin-side down first, minimal movement, and patience. A fish basket lets you grill delicate fillets without them falling through the grates, but it still needs to sit undisturbed for the first half of cooking.

Knowing when the fish is actually done

Fish cooks fast, and overcooked fish is dry fish. The target is opaque flesh that flakes easily but still looks moist at the thickest point. Use the flake test: at what you think is the end of cooking, insert a fork into the thickest part of the fish and twist gently. The flesh should separate into flakes and look opaque all the way through, with no translucent or gray-blue center.

If you have an instant-read thermometer, fish is done at 145°F in the thickest part. But the flake test is more reliable because it accounts for carryover cooking — the fish continues to cook for a minute or two after you pull it off the heat. Pull it off when it's just barely opaque, and it will be perfect by the time it reaches the plate.

The skin should be crispy and browned, not charred black. If the skin is blackening but the flesh is still translucent, your heat is too high. Move the fish to a cooler part of the grill or lower the temperature and cover the grill to trap heat.

Finishing touches that matter

The moment the fish comes off the grill, finish it simply. A squeeze of fresh lemon or lime brightens the fish and cuts through the richness of the skin. A pinch of fleur de sel or finishing salt adds texture and draws out the flavor of the fish itself. Fresh herbs — dill, parsley, cilantro, or tarragon — go on while the fish is still warm so they wilt slightly and their oils release.

Let the fish rest for 2 to 3 minutes before serving. This lets the juices redistribute through the flesh instead of running out onto the plate. For a whole fish, this rest also makes it easier to separate the flesh from the bones.

If you're serving the fish with a sauce or butter, make it ahead. A compound butter — softened butter mixed with herbs, garlic, or lemon zest — melts into the warm fish and adds richness without overwhelming it. A light vinaigrette or salsa verde complements grilled fish better than heavy cream sauces.

Troubleshooting common grilling mistakes

If your fish is sticking badly, your grates weren't oiled enough or the fish wasn't dry enough. Next time, oil the grates twice — once before heating and again right before the fish goes on. Pat the fish dry a second time just before grilling, even if you did it earlier.

If the outside is charred but the inside is still raw, your heat is too high or you're cooking too fast. Lower the temperature to 375°F and give the fish more time. A thicker fillet needs more time at lower heat than a thin one. If you're grilling a whole fish, cover the grill after the first few minutes to trap heat and cook the inside through without charring the outside.

If the fish is dry, you cooked it too long. Fish continues cooking after it leaves the grill, so pull it off when it still looks slightly underdone at the center. The carryover cooking will finish it perfectly. Also check that you're using fish thick enough to handle grilling — anything under ½ inch is too thin and dries out instantly.

If the skin is soggy instead of crispy, the grill wasn't hot enough or you covered it too early. Skin needs direct, uncovered heat to crisp. If you need to cover the grill to cook the inside through, do it only in the last few minutes, and uncover it at the end to re-crisp the skin.

Grilling different cuts and sizes

A whole fish (1½ to 2 pounds) takes 10 to 15 minutes skin-side down, depending on the thickness of the body. Score the thickest part and season inside and out. You can stuff it with lemon slices and herbs before grilling. A whole fish is done when the eye is opaque and the flesh at the backbone flakes easily.

A thick fillet (1 to 1½ inches, like salmon or halibut) takes 6 to 8 minutes skin-side down, no flip needed. The skin should be crispy and the flesh should flake at the thickest point.

A thin fillet (½ to ¾ inch, like flounder or sea bass) takes 3 to 4 minutes per side if you flip it, or 5 to 6 minutes skin-side down without flipping. Watch it closely — thin fish cooks fast and dries out quickly.

Steaks cut perpendicular to the spine (like tuna or swordfish) are thicker and meatier than fillets. They can handle a harder sear and benefit from a quick flip. Grill 4 to 5 minutes per side for a 1-inch steak, depending on how rare you like it. Tuna is often served medium-rare, with a warm red center.

Frequently Asked Questions

Can I grill fish without skin?

You can, but skin protects the flesh and tastes good when it's crispy. If you must remove it, use a fish basket or grill mat so the fillet doesn't fall through the grates. Skinless fish dries out faster, so watch it closely and don't let it cook past opaque.

What's the best way to grill fish in a basket?

Oil the basket well and preheat it on the grill. Place the fish skin-side down in the basket and let it sit for 4 to 5 minutes before moving it. The basket lets you flip the fish easily without it falling apart, but the same rule applies: don't move it until the skin releases naturally.

Should I marinate fish before grilling?

A short marinate (15 to 30 minutes) adds flavor without making the fish mushy. Avoid acidic marinades longer than 30 minutes — the acid starts to denature the protein and turns the flesh mushy. Oil-based marinades with herbs and garlic work best.

Why does my grilled fish taste fishy?

Old fish tastes fishy, and grilling concentrates that flavor. Buy fish the day you plan to grill it, and ask the fishmonger to smell it — it should smell like the ocean, not like a fish market. Lemon juice and fresh herbs mask fishiness if it's mild, but the best fix is fresher fish.

Can I grill frozen fish?

Thaw it completely first. Frozen fish releases water as it thaws, and that water prevents browning and makes the fish stick. Thaw in the refrigerator overnight, then pat it dry before grilling. Grilling frozen fish directly leads to a cold center and a burnt outside.