The secret to this classic Mexican grilled fish is a rich, deeply savory marinade made from toasted guajillo chiles, soy sauce, and fresh lime juice. Cooking the whole catch directly on the grates creates beautifully charred, crisp skin while keeping the flesh tender and flaky inside. It's an impressive centerpiece for your next weekend cookout that looks far more complicated than it actually is.
Prep
55 min
Cook
10 min
Total
1 hr 0 min
Servings
4
Cuisine
Mexican
Ingredients
1 (3–4 lb [1.4–1.8 kg]) whole fish (I recommend branzino or red snapper)
8 dried guajillo chile peppers, stemmed and seeded
½ cup (118 ml) soy sauce
¼ cup (59 ml) lime juice
2 serrano chile peppers
1 tbsp (1.6 g) dried oregano, preferably Mexican
2 garlic cloves
1 tsp ground black pepper
1 tsp salt
8 Roma tomatoes
4 garlic cloves
2 serrano chile peppers
Salt
Instructions
1Preheat a grill or grill pan to medium heat. If using a charcoal grill, light the fire and wait until the coals are covered with gray ash. Scrub the grates clean and brush them lightly with olive oil so the fish doesn't stick.
2Clean and scale the whole fish. Use a sharp knife to score the sides, making deep angled cuts down to the bone about every 1.5 inches. Scoring helps the marinade penetrate the thickest parts of the flesh.
3Heat a medium cast-iron skillet or heavy-bottomed pan over medium-high heat. Toast the guajillo chiles for about 30 seconds on each side until fragrant. Watch them closely so they don't turn black and bitter, then transfer to a bowl.
4Pour hot water over the chiles to submerge them completely. Let them sit for 15 minutes to soften.
5Use a slotted spoon to transfer the softened chiles to a blender, discarding the soaking liquid. Add the soy sauce, lime juice, serrano chiles, oregano, garlic, and black pepper. Blend into a smooth paste.
6Rub salt all over the fish and inside the cavity. Lay the fish in a shallow dish, pour the blended marinade over the top, and let it rest for 30 minutes.
7Remove the fish from the marinade and place it directly on the grill over low heat. Leave it in place without moving it so the skin doesn't tear.
8Cook for 3 to 4 minutes until the skin releases easily from the grates. Slide an oiled spatula under the fish, flip it carefully, and cook for another 3 to 4 minutes until the skin is crispy and the meat is flaky. Transfer to a platter and serve with warm tortillas and lime wedges.
Notes
Serving: Garnish the finished fish with fresh cilantro sprigs and serve alongside your favorite tomato salsa.
Swap: You can easily substitute thick fish fillets like halibut or snapper if you prefer not to cook a whole fish. Adjust the grilling time accordingly.
Tip: Make sure your grill grates are very clean and well-oiled before adding the fish to ensure the skin releases cleanly.