Iron-Rich Foods: Best Sources and How to Absorb More

The best food sources of iron are red meat, liver, sardines and other fish, beans, lentils, chickpeas, tofu, pumpkin seeds, dark leafy greens, dried apricots and iron-fortified cereals. Iron from meat and fish (heme iron) is absorbed more easily than iron from plants (non-heme iron). Eating vitamin C-rich foods with plant iron helps, while tea and coffee with meals reduce absorption. Most adult men need about 8 mg a day and women aged 19 to 50 about 18 mg, according to the NIH Office of Dietary Supplements.

Raw steaks with bananas, peppers, tomatoes and vegetables

How much iron do you need?

GroupUS recommended amountUK reference amount
Men 19 and over8 mg a day8.7 mg a day
Women 19 to 5018 mg a day14.8 mg a day
Women 51 and over8 mg a day8.7 mg a day
Girls 14 to 1815 mg a day
Boys 14 to 1811 mg a day
Pregnancy27 mg a day

US figures from the NIH Office of Dietary Supplements. UK figures from the NHS, which notes that women still having periods after 50 may need the same as younger women.

Women of childbearing age need more because of blood lost in periods. The ODS also notes that vegetarians may need about 1.8 times more iron than people who eat meat, because plant iron is absorbed less well.

Iron-rich foods compared

Per 100 g, from USDA FoodData Central:

Food (100 g)IronType
Pumpkin seeds8.8 mgPlant
Chicken liver, raw9.0 mgHeme and non-heme
Spinach, boiled3.6 mgPlant
Lentils, cooked3.3 mgPlant
Kidney beans, cooked2.9 mgPlant
Sardines, canned in oil2.9 mgHeme and non-heme
Tofu, firm, calcium-set2.7 mgPlant
Dried apricots2.7 mgPlant
Ground beef, cooked2.6 mgHeme and non-heme
Chickpeas, canned1.1 mgPlant
Chicken breast, roasted1.0 mgHeme and non-heme

Plant foods can contain plenty of iron, but less of it is absorbed. Portion size matters too: you might eat 150 g of lentils in a meal, but only 30 g of pumpkin seeds.

Liver and pregnancy: the NHS advises avoiding liver during pregnancy, because it’s very high in vitamin A, which can harm an unborn baby in large amounts.

Heme vs non-heme iron

  • Heme iron is found only in meat, poultry and fish. It’s absorbed more easily.
  • Non-heme iron is found in plant foods, eggs, dairy and fortified foods, and also makes up part of the iron in meat. Its absorption depends more on what else you eat with it.

How to absorb more iron from plant foods

  1. Add vitamin C at the same meal. The NHS recommends eating foods rich in vitamin C with plant sources of iron: peppers in a bean chili, lemon juice on lentils, tomatoes with chickpeas, or a piece of fruit after a meal.
  2. Keep tea and coffee away from main meals. The NHS advises avoiding tea or coffee during or after main meals.
  3. Combine plant and animal sources if you eat meat or fish. A little meat in a bean dish helps.
  4. Choose iron-fortified breakfast cereals, and eat them with a glass of orange juice or a piece of fruit.

Signs you may be low in iron

Iron deficiency anemia can cause tiredness, lack of energy, shortness of breath, a pale complexion, heart palpitations and headaches, according to the NHS. These symptoms have many possible causes, so don’t guess. See your doctor, who can do a simple blood test. Our guide to starting a vegan diet explains how to plan for iron without meat.

Iron supplements: be careful

Don’t take iron supplements unless a doctor has advised them. The NHS says taking 17 mg or less a day of iron supplements is unlikely to cause harm, but high doses (over 20 mg) can cause constipation, nausea, vomiting and stomach pain. If your doctor prescribes a higher dose, follow their advice.

Keep iron supplements away from children. The NHS warns that very high doses of iron can be fatal, particularly for children. Store them out of reach, and seek urgent medical help if a child swallows them.

Some people, such as those with haemochromatosis (an inherited condition that causes iron to build up in the body), need to avoid extra iron.

A day of iron-rich meals

  • Breakfast: iron-fortified cereal or porridge with dried apricots and a glass of orange juice.
  • Lunch: lentil soup with whole grain bread and a salad with peppers.
  • Snack: a small handful of pumpkin seeds.
  • Dinner: beef and bean chili with tomatoes, or tofu stir-fry with broccoli and red pepper.

Our chickpea curry with spinach and lemon pairs plant iron with vitamin C.

Iron for vegetarians and vegans

Plant foods can provide plenty of iron, but because it’s absorbed less well, people who don’t eat meat may need more. The NIH Office of Dietary Supplements notes that vegetarians may need about 1.8 times as much iron as meat eaters. Practical ways to cover this:

  • Eat beans, lentils, chickpeas or tofu every day.
  • Add a vitamin C food to those meals, such as peppers, tomatoes, broccoli or citrus.
  • Choose iron-fortified breakfast cereals and breads.
  • Snack on pumpkin seeds, dried apricots and nuts.
  • Have tea and coffee between meals rather than with them.

Iron in pregnancy

Iron needs rise sharply in pregnancy, to 27 mg a day in the US recommendation. Many pregnant people are offered blood tests to check for anemia, and some need a supplement. Take only what your midwife or doctor recommends, and avoid liver, which the NHS advises against in pregnancy.

Common questions

Does spinach have a lot of iron?

Spinach contains iron, about 3.6 mg per 100 g when boiled, according to USDA FoodData Central, but it’s non-heme iron, which is absorbed less well. It’s a useful part of an iron-rich diet, not the iron powerhouse its reputation suggests.

This article is general information, not medical advice. Talk to your doctor or a registered dietitian before making big changes to how you eat, especially if you have a health condition, take regular medication, or are pregnant or breastfeeding.