Everyone knows chicken has more protein than bread, but the middle of the list is where people get it wrong. Is tofu closer to chicken or to rice? Does a spoon of peanut butter really count as protein? How far behind does milk sit? A ranking clears the fog, but only if it is honest about the two ways rankings mislead you: by comparing foods per 100 grams when you eat wildly different amounts of them, and by ignoring how many calories come along for the ride. This is the ranked list, plus the context that stops you drawing the wrong conclusions from it.
The short version
- Ranked by protein per 100 grams, the top of the list is lean cooked meat, fish, and seitan at roughly 25 to 31 grams, with tempeh and tofu the strongest whole-plant options.
- A ranking per 100 grams flatters foods you eat in small amounts. What matters for your day is protein **per realistic serving** and protein **per calorie**.
- By protein per calorie, the leanest foods win: white fish, chicken breast, prawns, egg whites, cottage cheese, and tofu all give a lot of protein for few calories.
- Nuts, cheese, and peanut butter look protein-rich per 100 grams but rank far lower per calorie because most of their energy is fat.
- Plant foods hold their own: soy foods are complete proteins, and combining a few plant sources across a day closes any gap in building blocks easily.
Ranked by protein per 100 grams
This is the classic ranking, and the most quoted, because it puts every food on the same footing: a fixed 100 grams. It is genuinely useful for seeing raw protein density. The figures below are typical values from food-composition data, for foods as you would normally eat them, cooked where cooking applies. Your specific product or cut will vary.
| Food | Protein per 100 g | Type |
|---|---|---|
| Chicken breast, cooked | about 31 g | Animal |
| Lean beef, cooked | about 27 to 30 g | Animal |
| Tuna, canned in water | about 25 to 29 g | Animal |
| Prawns, cooked | about 24 g | Animal |
| Seitan (wheat protein) | about 21 to 25 g | Plant |
| Salmon, cooked | about 22 to 25 g | Animal |
| Tempeh | about 19 to 20 g | Plant |
| Firm tofu | about 12 to 17 g | Plant |
| Eggs | about 13 g | Animal |
| Cottage cheese, low-fat | about 12 g | Animal |
| Edamame | about 11 g | Plant |
| Greek yoghurt, strained | about 10 g | Animal |
| Lentils, cooked | about 9 g | Plant |
| Chickpeas, cooked | about 8 to 9 g | Plant |
| Quinoa, cooked | about 4 g | Plant |
| Milk | about 3.4 g | Animal |
The pattern is clear: lean cooked meat and fish sit at the top, but seitan, tempeh, and tofu show that whole plants land firmly in the strong tier, not the bottom. Beans and lentils look modest here, which is where the per-100-grams view starts to mislead, as the next section explains.
Why per serving changes the order
You do not eat 100 grams of everything. You eat a small tin of tuna, a big bowl of lentils, a scrape of peanut butter, and a large glass of milk. Ranking by realistic serving size reshuffles the list and often matters more for your actual day.
| Food | Realistic serving | Protein |
|---|---|---|
| Chicken breast, cooked | 150 g fillet | about 46 g |
| Lentils, cooked | 1 large bowl (~250 g) | about 22 g |
| Tuna, canned | 1 small tin drained | about 20 to 25 g |
| Tofu, firm | 150 g | about 18 to 24 g |
| Greek yoghurt, strained | 170 g pot | about 17 g |
| Milk | 1 large glass (300 ml) | about 10 g |
| Eggs | 2 large | about 12 g |
| Peanut butter | 1 tablespoon (~16 g) | about 4 g |
Lentils climb the moment you use a real bowl instead of 100 grams, which is why they are a backbone of high-protein plant eating despite a modest per-100-grams figure. Peanut butter falls the other way: impressive per 100 grams, but you eat a tablespoon, so it delivers only about 4 grams. The lesson is to rank foods by the amount you genuinely put on your plate.
Before you call a food high-protein, picture your normal portion of it. A food is only as useful as the protein in the amount you actually eat, not the amount on the label's per-100-grams line.
The ranking that matters on a diet: protein per calorie
If you are watching your weight, the most useful ranking is protein per calorie, sometimes called protein density. Foods high on this measure let you hit your protein target while leaving room in your calorie budget, which keeps you full for less. Here the leanest foods dominate and the fatty ones drop, even ones that seemed protein-rich a moment ago.
- Highest protein per calorie: white fish, prawns, chicken breast, egg whites, low-fat cottage cheese, and tofu. Almost pure protein with little fat.
- Strong: strained Greek yoghurt, skyr, lean turkey, tempeh, lentils, and most beans.
- Middling: whole eggs, salmon, and regular dairy, where useful fats add calories.
- Low protein per calorie: cheese, nuts, and peanut butter, where most of the energy is fat, so they are foods to enjoy rather than lean on for protein.
This is why a cutting diet leans on chicken, fish, tofu, egg whites, and cottage cheese. It is not that cheese and nuts are bad, they are genuinely good food, but you cannot get 40 grams of protein from them without a flood of calories. Match the ranking to your goal: per-calorie density for fat loss, absolute grams per serving when you simply need to hit a number.
Reading the ranking as a plant-based eater
Plant foods appear across the whole ranking, not just the bottom, so a plant-based diet reaches any protein target with a little planning. Two points make it straightforward.
- Lead with the dense plants. Seitan, tempeh, tofu, edamame, and beans are the plant equivalents of the top and middle tiers. Build meals around them the way an omnivore builds around meat.
- Mix your sources over the day. Some plant proteins are lower in one or two essential building blocks. Eating a variety, such as beans with grains across a day, covers all of them. Soy foods are already complete and need no combining.
- Eat a little more overall. Plant proteins are slightly less concentrated and a touch less efficiently used, so aiming about 10 to 20 percent higher on total protein closes the gap comfortably.
A day built on tofu, tempeh, lentils, and beans hits the same protein numbers as one built on chicken and fish. The ranking rewards knowing which plants are dense, then using real servings of them, exactly as it does for animal foods.
How to actually use this list
The point of ranking foods is not to eat only the top of the list. A diet of nothing but chicken breast is joyless and unnecessary. The point is to know which foods carry real protein so you can anchor each meal with one of them and stop relying on foods that only look protein-rich.
Work out your daily protein target first, a common figure for active people being around 1.6 grams per kilogram of body weight, then use the rankings to build meals that reach it. Per-serving grams tell you how to hit the number, per-calorie density tells you how to do it while managing weight, and the plant tiers tell you how to do all of it without animal products. That is the whole job of a good protein ranking.
Questions people ask
What food has the most protein per 100 grams?
Is peanut butter a good source of protein?
How can plant foods rank so high if they are incomplete proteins?
Which ranking should I actually follow?
References
- U.S. Department of Agriculture, Agricultural Research Service. FoodData Central. 2024. fdc.nal.usda.gov
- Morton RW, et al. British Journal of Sports Medicine. A systematic review, meta-analysis and meta-regression of the effect of protein supplementation on resistance training-induced gains in muscle mass and strength in healthy adults. 2018. doi.org/10.1136/bjsports-2017-097608
- Jager R, et al. Journal of the International Society of Sports Nutrition. International Society of Sports Nutrition Position Stand: Protein and Exercise. 2017. doi.org/10.1186/s12970-017-0177-8
Last reviewed 18 July 2026. We check health-condition articles against current guidelines and update the date above when we do.
KF.Social Editorial