Salmon leads on omega-3s. Lean white fish lead on protein per calorie. Both are worth eating. The 10 healthiest fish ranked by omega-3s, the leanest picks for a calorie target and the seven to avoid for mercury.
Salmon is the healthiest fish to eat overall: up to about 1,800 mg of omega-3s and 19 to 22 grams of protein per 3-ounce cooked serving, and low in mercury. Herring, sardines, Atlantic mackerel and trout come close. For the most protein per calorie, pick cod, haddock or canned light tuna. Skip shark, swordfish, king mackerel, bigeye tuna, marlin, orange roughy and Gulf tilefish.
Ask ten people which fish is healthiest and you'll get ten different answers, mostly because everyone means something different by healthy. Some want omega-3s for their heart. Some want the most protein for the fewest calories. Most also want to know what's safe to eat often.
So we ranked the fish that show up in most grocery stores by the nutrient where your choice matters most, then added a lean list for calorie targets and the short list of fish to avoid. Every number is per 3-ounce cooked serving, from USDA data.
What makes a fish healthy
Omega-3s, protein & mercury
Three things separate one fish from another nutritionally.
Omega-3 content. This is the big one, and the gap between species is enormous. Cold-water fatty fish like salmon, herring and sardines carry many times the EPA and DHA of lean white fish. The FDA has authorized a qualified health claim saying that supportive, but not conclusive, research shows EPA and DHA may reduce the risk of high blood pressure and coronary heart disease.
Protein per calorie. Most popular fish deliver about 17 to 25 grams of protein per 3-ounce cooked serving. What changes is the calorie cost. Cod gives you 19 grams for about 90 calories. Atlantic mackerel gives you 20 grams for about 220. Neither is wrong. They're different tools.
Mercury. Larger, longer-lived predatory fish build up more methylmercury. The FDA and EPA sort 62 species into three groups: Best Choices, Good Choices and Choices to Avoid. Nearly every fish worth eating regularly is in the first group.
The ranking below leads with omega-3s, because that's the nutrient where your choice of fish really changes what you get. Every fish on the list is an FDA Best Choice.
The 10 healthiest fish per 3 oz cooked (USDA, NIH ODS, FDA)
#
Fish, 3 oz cooked
EPA + DHA
Calories
Protein
FDA group
1
Salmon, Atlantic, farmed / wild
1,830 / 1,570 mg
175 / 155
19g / 22g
Best Choice
2
Herring, Atlantic
1,710 mg
173
20g
Best Choice
3
Sardines, canned in tomato sauce
1,190 mg
157
18g
Best Choice
4
Mackerel, Atlantic
1,020 mg
223
20g
Best Choice
5
Salmon, pink, canned
910 mg
117
20g
Best Choice
6
Trout, rainbow
840 mg
128
19.5g
Best Choice
7
Shrimp
240 mg
101
19g
Best Choice
8
Tuna, light, canned in water
190 mg
73
16.5g
Best Choice
9
Cod, Atlantic
about 130 mg
89
19g
Best Choice
10
Tilapia
about 115 mg
109
22g
Best Choice
The 10 healthiest fish per 3 oz cooked (USDA, NIH ODS, FDA)
1
Salmon
Best all-around
1,570 to 1,830 mg omega-3s · 155 to 175 calories · 19 to 22g protein
Salmon wins on nearly every count at once: the highest omega-3 load of any common fish, solid protein, a good dose of vitamin D and mercury low enough to eat two or three times a week.
Farmed Atlantic salmon carries a little more omega-3 because it carries more fat, about 1,830 mg and 175 calories per serving. Wild Atlantic is leaner, about 1,570 mg and 155 calories with 22 grams of protein. If you're weighing salmon for a calorie-controlled diet, we go deeper in our guide to whether salmon is good for weight loss.
2
Herring
Most underrated
1,710 mg omega-3s · 173 calories · 20g protein
Herring is the most underrated fish at the grocery store. It nearly matches salmon on omega-3s, usually costs less and is often sold smoked, pickled or tinned, which means no cooking at all. Pickled and smoked versions can be salty, so check the label if you watch sodium.
3
Sardines
Calcium bonus
1,190 mg omega-3s · 157 calories · 18g protein
Sardines punch far above their size. Beyond the omega-3s, you're eating the soft, edible bones, which makes whole canned sardines a good source of calcium. Boneless fillets have far less.
Buy them packed in water or tomato sauce rather than oil if calories matter, and drain them either way.
4
Atlantic mackerel
Rich & cheap
1,020 mg omega-3s · 223 calories · 20g protein
One critical distinction: Atlantic and Pacific chub mackerel are FDA Best Choices, while king mackerel is on the avoid list. Atlantic mackerel is rich, oily and inexpensive, with over a gram of omega-3s per serving. It's also the highest-calorie fish on this list, because that fat is where the omega-3s live.
5
Canned pink salmon
Most practical
910 mg omega-3s · 117 calories · 20g protein
The most practical entry here. Canned pink salmon holds about half the omega-3s of a farmed fillet at a fraction of the price and none of the cooking, and it's lower in calories than fresh Atlantic salmon.
Canned pink salmon with the bones left in is also an easy way to add calcium, and the bones are so soft you won't notice them.
6
Rainbow trout
Mild flavor
840 mg omega-3s · 128 calories · 19.5g protein
Trout is the gateway oily fish. It has a mild, almost sweet flavor that's closer to a white fish than to mackerel, but it still brings 840 mg of omega-3s and nearly 20 grams of protein for about 130 calories.
7
Shrimp
Fastest to cook
240 mg omega-3s · 101 calories · 19g protein
Shrimp isn't an omega-3 play. What it offers is lean protein, about 19 grams for roughly 100 calories, and speed: it cooks in a few minutes, even from frozen.
8
Canned light tuna
Pantry staple
190 mg omega-3s · 73 calories · 16.5g protein
Canned light tuna, usually skipjack, is a Best Choice for mercury and one of the leanest proteins you can buy. Albacore, or white tuna, comes from a larger fish and sits in the Good Choices group, which means about one serving a week.
9
Cod
Lean & mild
About 130 mg omega-3s · 89 calories · 19g protein
Cod ranks ninth purely on omega-3s. It's still an excellent choice, especially if you're trying to lose weight. On protein per calorie it rivals anything above it: about 19 grams for 90 calories.
10
Tilapia
Everyday protein
About 115 mg omega-3s · 109 calories · 22g protein
Tilapia gets more criticism than it earns. Yes, it's low in omega-3s. It's also lean, high in protein, inexpensive, widely available and an FDA Best Choice for mercury. It's a perfectly good everyday protein.
Leanest fish for weight loss
When calories matter more than omega-3s
Ranking by omega-3s pushes the fatty fish to the top. If you're building meals around a calorie target, the ranking flips.
Under 100 calories per 3-ounce cooked serving: flounder and sole (about 73), canned light tuna (73), haddock (76), cod (89), Alaska pollock and halibut (about 94), with 13 to 20 grams of protein. Halibut is a Good Choice, so keep it to about once a week.
100 to 150 calories: shrimp, tilapia, canned pink salmon and rainbow trout, which throws in real omega-3s as a bonus.
150 to 225 calories: salmon, sardines, herring and Atlantic mackerel, where the extra calories are fat and that fat is the point.
Eating more protein while you cut calories helps you hold on to lean mass, and a 2020 review of the clinical trials found higher-protein diets cut fat mass while preserving fat-free mass. Fish delivers that protein at a lower calorie cost than most animal proteins. It's one of dozens of options broken down in our 100 Best Foods for Weight Loss guide.
Fish delivers that protein at a lower calorie cost than most animal proteins.
SaVanna Shoemaker, MS, RDN, LD
Fish to limit or avoid
Seven fish to skip for mercury
Seven fish are in the FDA and EPA's Choices to Avoid group: shark, swordfish, king mackerel, bigeye tuna, marlin, orange roughy and tilefish from the Gulf of Mexico. They're large, long-lived predators, and none of them is a weeknight staple.
A middle tier of Good Choices is fine at about one serving a week. Halibut, albacore or white tuna, mahi-mahi, snapper, grouper and Chilean sea bass are among them.
Most of the species FDA rates, including every fish in the ranking above, are Best Choices at two to three servings a week. If you're pregnant, breastfeeding or feeding young children, stick to the Best Choices list and vary the species. The EPA's version of the advice chart spells out portion sizes by age.
How to cook fish healthfully
Keep it simple, keep it baked
Frozen fish is often frozen soon after it's caught, so it can be every bit as good as the "fresh" fish that's been sitting in the display case. It's usually cheaper too. A bag of frozen cod or tilapia fillets can cook from frozen in about 20 minutes. Keep one in your freezer and you've always got a protein ready.
Canned fish is the other underrated shortcut. Sardines, pink salmon and light tuna need no cooking and keep in the pantry for months.
For weeknight cooking, simple wins. Season a fillet with salt, pepper and lemon, then bake at 400°F for 12 to 15 minutes, until it flakes with a fork. The FDA's seafood safety advice is to cook most fish to an internal temperature of 145°F.
What matters most is what you don't do to it. A lean cod fillet becomes something else entirely once it's battered and deep-fried. Baking, grilling, broiling, poaching and air-frying all leave the nutrition roughly intact. If you want to batch-cook fish for the week without it drying out, our Complete Meal Prep Guide covers the technique.
If raw preparations appeal, ceviche is one of the leanest ways to eat white fish. Lime juice changes the texture but doesn't make fish safe the way heat does, so buy very fresh fish from a source you trust, and skip it if you're pregnant or have a weakened immune system.
Healthiest fish bottom line
Salmon, sardines or trout twice a week
If you want one answer: eat salmon, sardines or trout twice a week and you're doing great.
If you want the fuller picture:
For omega-3s: salmon, herring, sardines or Atlantic mackerel.
For protein at the lowest calorie cost: cod, haddock, flounder, pollock or canned light tuna.
For cost and convenience: canned sardines, canned pink salmon or canned light tuna.
For the best all-around balance: rainbow trout, which is low in mercury, low in calories and still high in omega-3s.
If cooking fish sounds like more effort than you want most nights, that's a reasonable position. Our Weight Loss Meal Plan is portion-controlled, calorie-controlled and macro-balanced, so the portions and macros are handled for you. Or use Build A Meal Plan, filter by protein and pick the meals you'll actually eat.
The dietitian's take
Don't overthink it. Two fish meals a week from the Best Choices list covers most people. I keep a can of sardines or pink salmon in the pantry and a bag of frozen cod in the freezer, so one of those meals is always ten minutes away. Rotate species, and bake or grill instead of frying.
Salmon is the strongest all-around pick: about 1,570 to 1,830 mg of EPA and DHA per 3-ounce cooked serving, 19 to 22 grams of protein and an FDA Best Choice for mercury. Herring, sardines, Atlantic mackerel and rainbow trout are close behind and often cheaper. For protein per calorie, cod, haddock and canned light tuna lead.
What is the lowest calorie fish?
Flounder, sole and canned light tuna come in lowest, about 73 calories per 3-ounce cooked serving, with haddock close at 76. Cod is about 90 calories with 19 grams of protein, and pollock and halibut sit just under 100. Shrimp is about 100 calories for 19 grams of protein.
Which fish has the most omega-3?
Per USDA data compiled by the NIH Office of Dietary Supplements, farmed Atlantic salmon leads at about 1,830 mg of EPA and DHA per 3-ounce cooked serving, then Atlantic herring at 1,710 mg, wild Atlantic salmon at 1,570 mg, canned sardines at 1,190 mg and Atlantic mackerel at 1,020 mg. Cod and tilapia have under 150 mg.
Which fish has the most protein?
Most fish have about 17 to 25 grams of protein per 3-ounce cooked serving, so protein alone rarely separates them. Yellowfin tuna sits at the top at about 25 grams. The calorie cost varies more: cod gives you 19 grams for about 90 calories, Atlantic mackerel 20 grams for about 220.
Which fish should I avoid?
The FDA and EPA put seven fish in the Choices to Avoid group because of high mercury: shark, swordfish, king mackerel, bigeye tuna, marlin, orange roughy and tilefish from the Gulf of Mexico. King mackerel is the one to avoid. Atlantic and Pacific chub mackerel are Best Choices.
Is farmed or wild salmon healthier?
For omega-3s, farmed usually edges out wild: about 1,830 mg per 3-ounce cooked serving for farmed Atlantic salmon versus 1,570 mg for wild, because farmed fish carry more fat. Wild is leaner, about 155 calories versus 175. Both are FDA Best Choices for mercury, so either is a good pick.
Is tilapia bad for you?
No. Tilapia has a reputation it doesn't deserve. It's low in omega-3s, about 115 mg per serving, so it won't do much for your omega-3 intake. But it's lean, affordable, high in protein at about 22 grams per 3-ounce cooked serving and an FDA Best Choice for low mercury. It's a fine everyday protein.