← Iron Tracker blog

Heme iron vs non-heme iron: what your body actually absorbs

Heme iron comes only from animal flesh — meat, poultry, fish, shellfish — and the body absorbs roughly 15–35% of it. Non-heme iron, from plants, eggs, and fortified grains, lands nearer 2–20% and swings hard with whatever else is on the plate. Same milligrams on the label, different iron delivered.

What is heme iron, and how non-heme iron differs

Heme iron sits locked inside a porphyrin ring: the same heme group that carries oxygen in hemoglobin and myoglobin. That ring survives digestion largely intact, and the intestine takes up the whole complex through its own route rather than handling the bare iron atom. Sheltered inside the ring, the iron never meets most of the meal chemistry that traps loose iron.

Non-heme iron is the loose kind — iron salts and iron bound to plant compounds, mostly in the ferric (Fe³⁺) form. It has to be reduced to ferrous (Fe²⁺) at the gut wall before the DMT1 transporter can move it across, and anything in the meal that grabs it first wins. That one mechanical difference explains nearly everything below.

Two things get misread here. Animal food is not the same as heme food: the iron in eggs and dairy is non-heme, because neither contains muscle or blood. And meat is not pure heme. Muscle carries both forms, with the heme share commonly estimated near 40% of a cut's total iron — higher in dark red muscle like beef and liver, lower in chicken breast and white fish.

Heme vs non-heme iron: how much actually gets absorbed

Heme iron Non-heme iron
Where it comes from Animal muscle and blood: red meat, poultry, fish, shellfish, liver, blood sausage Plants, legumes, nuts, fortified grains, eggs, dairy — plus most of the iron in meat
Typical absorption ~15–35% ~2–20%
Sensitive to the rest of the meal Barely Strongly
Share of total intake, mixed diet Roughly 10–15% Roughly 85–90%
Main enhancers None needed Vitamin C; meat, fish, poultry
Main inhibitors Calcium, modestly Phytate, polyphenols, calcium, oxalate

Zoom out to whole diets and the gap holds. The NIH Office of Dietary Supplements puts absorption from a mixed Western diet at roughly 14–18%, and from a vegetarian diet at roughly 5–12% — which is why the published RDA for vegetarians is set 1.8 times the standard figure. Those standard figures, for reference, are 8 mg a day for adult men, 18 mg for women aged 19–50, and 27 mg during pregnancy, with postmenopausal women back at 8 mg.

Both ranges are ranges for a reason. When iron stores run low, the hormone hepcidin falls and the gut opens up; non-heme absorption in particular can climb several-fold. The same person with full stores takes up far less from the same plate — bioavailability belongs to the eater and the meal together, not to the food alone.

Heme iron foods and non-heme iron foods, side by side

Milligrams below are total iron per serving, heme and non-heme combined — the animal foods carry some non-heme iron too.

Heme iron sources

  • Oysters, cooked: about 8 mg per 3 oz
  • Beef liver: about 5 mg per 3 oz
  • Beef, braised chuck: about 2 mg per 3 oz
  • Sardines, canned with bones: about 2 mg per 3 oz
  • Ground beef: about 2 mg per 3 oz
  • Dark-meat chicken or turkey: about 1 mg per 3 oz
  • Canned light tuna: about 1 mg per 3 oz

Non-heme iron foods

  • Fortified breakfast cereal: up to 18 mg per serving, though brands vary enormously
  • White beans, canned: about 8 mg per cup
  • Lentils, boiled: about 3 mg per half cup
  • Firm tofu: about 3 mg per half cup
  • Spinach, boiled: about 3 mg per half cup
  • Dark chocolate, 45–69% cacao: about 3 mg per ounce
  • Kidney beans or chickpeas: about 2 mg per half cup
  • Baked potato with skin: about 2 mg, medium
  • Cashews: about 2 mg per ounce

The plant column wins on paper and loses on delivery. A cup of white beans lists four times the iron of a 3 oz steak; after absorption that gap narrows sharply, and with strong tea alongside it can invert. For a fuller inventory sorted by milligrams, see the iron-rich foods list.

The meat factor: heme foods lift the non-heme iron beside them

Eat a plant meal on its own and its non-heme iron performs about as expected. Add a modest portion of meat, fish, or poultry and absorption of that same plant iron rises — the commonly reported magnitude is roughly a doubling, varying with the meal. This is the meat factor, sometimes written MFP factor after meat, fish, and poultry.

The mechanism is the muscle protein rather than the heme itself. Peptides released as muscle tissue digests keep non-heme iron soluble and reduced long enough to reach the transporter. That's why the effect belongs to flesh specifically: milk protein doesn't produce it, and egg runs the other way, since phosvitin in the yolk binds iron and pulls absorption down.

It's also strictly a per-meal effect. Beef at dinner does nothing for the lentils eaten at lunch — the pairing has to share a plate.

What else moves non-heme iron absorption

Vitamin C is the strongest known enhancer. Ascorbate reduces ferric iron to ferrous and holds it in a soluble complex through the small intestine, its effect scaling with dose, and enough of it will offset a fair amount of phytate in the same meal. The meat factor is the second lever.

On the other side, phytate — concentrated in whole grains, legumes, nuts, and seeds — is the heavyweight, and it works dose-dependently, so even small amounts bite. Polyphenols in tea, coffee, cocoa, and red wine bind iron in the gut; black tea with a meal is the textbook case, with reported reductions running from about a third to well over half depending on strength. Oxalate in spinach, rhubarb, and beet greens does the same locally, which is exactly why spinach's headline milligrams overpromise. Calcium is the outlier of the group: it's the one common dietary inhibitor that appears to blunt heme absorption as well as non-heme.

One more mechanical note: prolonged high-heat cooking degrades some heme to non-heme iron, so a long-braised cut delivers a slightly different mix than a quick sear.

Why two foods with the same milligrams aren't equal

Run the arithmetic. Three ounces of braised beef list about 2 mg of iron, and with its heme fraction absorbed efficiently, call it something in the neighborhood of 0.4 mg delivered. Half a cup of boiled spinach lists about 3 mg, all of it non-heme and all of it sitting in oxalate; a few percent absorbed puts it near 0.1 mg. The food with 50% more iron on the label hands over a fraction as much.

That's the argument for writing down what you ate — heme or non-heme — rather than reconstructing the day from memory. Iron Tracker is an iron intake tracking app for iPhone, and that's one way to keep the record.

Iron Tracker: Ferritin Counter screenshot

Get Iron Tracker

None of this shifts the published targets. The NIH numbers are stated as total dietary iron, not absorbed iron, and the vegetarian multiplier is how the guidelines already account for the gap. For the figures by age and sex, see how much iron per day the guidelines list.

FAQ

Is heme iron only in red meat?

No. Any animal muscle carries it — chicken, turkey, pork, fish, and shellfish all supply heme iron, as do organ meats and blood-based foods like blood sausage. Red meat is simply denser in it, because darker muscle holds more myoglobin. Chicken breast and white fish sit at the low end of the range.

Do eggs and milk contain heme iron?

No. Eggs and dairy are animal foods, but neither contains muscle or blood, so the iron they hold is non-heme. Egg yolk also carries phosvitin, a protein that binds iron and lowers how much of it gets through. Milk is a negligible iron source either way.

Is heme iron better than non-heme iron?

Heme iron is absorbed more efficiently and is far less disturbed by the rest of the meal — that's the measurable difference. Non-heme iron still makes up the bulk of the iron in nearly every diet, and its absorption moves a lot with what it's eaten alongside. Guidelines handle the gap by setting the vegetarian RDA 1.8 times higher, not by ranking the two forms.

Can iron needs be met without heme iron foods?

The published RDAs treat it as achievable: NIH lists a vegetarian target of 1.8 times the standard RDA precisely because plant iron absorbs less efficiently. Pairing non-heme iron foods with a vitamin C source, and moving tea and coffee away from the meal, are the levers usually described for narrowing that gap.

Does a cast-iron pan add heme iron?

No — iron leaching from the pan is non-heme. Acidic, wet, long-simmered dishes pick up the most, and the amount varies widely with the pan's age, seasoning, and how long the food sits in it.

Get Iron Tracker