Which foods lower cholesterol?
Oats and barley, nuts, soya, and sterol foods if your cholesterol is high. In trials, each cut bad cholesterol by about 3% to 12% at a set daily amount. Eaten together, about 17%.
On this page

Which foods lower cholesterol?
Four foods have been proven to lower cholesterol, says the charity HEART UK. They are oats and barley, nuts, soya, and foods with added plant sterols or stanols.
Sterols and stanols are found naturally in plants, in tiny amounts. They stop some cholesterol being absorbed from your gut.
They work on top of a diet low in saturated fat, not instead of one. And each one needs a set amount every day.
| Food | Daily amount | Fall in bad cholesterol (LDL) in trials |
|---|---|---|
| Oats and barley | 3 servings, giving 3 g of their fibre (beta-glucan) | 4.2% to 6% |
| Nuts, including peanuts | A handful (28 g), unsalted and unsweetened | 2.8% |
| Soya foods | 1 to 3 servings, giving 15 to 25 g of soya protein | 3.2% |
| Foods with added sterols or stanols | 1.5 to 3 g, often in 1 serving. Only for people with high cholesterol. | 7% to 12.5% |
Source: HEART UK
Each fall is small. On an LDL of 4.0, a 6% fall takes it to about 3.8.
Almonds or walnuts? HEART UK says the studies show no difference between types of nut. Eating a handful of nuts a day is not linked to putting on weight.
Pick the food you’d happily eat every day, and start there.
How much of each food do I need a day?
| Food | One serving | Gives you |
|---|---|---|
| Porridge oats | 30 g | About 1 g of beta-glucan |
| Oatcakes, reduced salt | 3 oatcakes | About 1 g of beta-glucan |
| Pearl barley | 75 g cooked | About 1 g of beta-glucan |
| Oat bran | 1 to 2 tablespoons | About 1 g of beta-glucan |
| Soya drink, unsweetened | A 250 ml glass | 7.5 to 8 g of soya protein |
| Edamame (young soya beans) | 80 g | 13 g of soya protein |
| Tofu | Half a block (90 g) | 11 g of soya protein |
| Soya mince | 100 g | 19 g of soya protein |
Sources: HEART UK: oats and barley; HEART UK: soya
For oats and barley, pick any three servings a day. Oat cereal flakes count only if they’re 100% oats.
New to soya? HEART UK suggests you start with 1 serving a day and build up to 2 or 3. Choose unsweetened soya drinks with added calcium.
Beans, peas and lentils are good sources of soluble fibre, the kind in oats and barley, the BHF says. Baked beans count too. Pick ones with less sugar and salt.
For more fibre ideas, see high-fibre foods and psyllium husk for cholesterol.
Do cholesterol-lowering foods work better together?
Yes. HEART UK says the more of these foods you eat, the greater the effect.
Together they’re called the Portfolio diet. Across 7 trial comparisons with 439 people with high cholesterol, it cut LDL by about 17%.
That was on top of a diet low in saturated fat, in trials of 3 weeks or more. It also lowered blood pressure.
One day with oats, nuts and soya
- 1
Breakfast
30 g of porridge oats made with a 250 ml glass of soya drink.
- 2
Snack
A handful (28 g) of unsalted, unsweetened nuts.
- 3
Lunch
80 g of edamame beans with 3 oatcakes.
- 4
Dinner
75 g of cooked pearl barley in a soup or stew.
Sources: HEART UK: oats and barley; HEART UK: soya; HEART UK: nuts
That day gives 3 g of beta-glucan, about 21 g of soya protein and your nuts. Results vary from person to person, the BHF says.
On a statin? These foods can be eaten alongside statins without interfering with them. The BHF says don’t give up on your diet, as it supports your treatment.
Never stop or change a prescribed medicine without your prescriber. See blood tests on statins.
Which foods lower cholesterol fastest?
Only one has a known time frame: foods with added plant sterols or stanols, such as spreads, yoghurts and yoghurt drinks. At 1.5 to 3 g a day, they can cut cholesterol within 2 to 3 weeks.
HEART UK says they’re only for people with high cholesterol. Its other rules:
- Have them with a main meal.
- Don’t go over 3 g a day.
- Don’t fry with sterol spreads.
- Not for children under 5, or if you’re pregnant or breastfeeding, unless under close medical care.
- The effect is lost once you stop.
One catch. NICE, which advises the NHS, doesn’t advise sterols or stanols to prevent heart disease or stroke.
Before you buy, read plant sterols and LDL.
What should I eat less of with high cholesterol?
Fatty food, especially food with saturated fat, the NHS says. Check food labels to see which fat is in it.
| Eat less | Eat more instead |
|---|---|
| Butter, lard and ghee | Olive or rapeseed oil, or spreads made from them |
| Meat pies, sausages and fatty meat | Oily fish, like mackerel and salmon |
| Cakes and biscuits | Nuts, seeds and fruit |
Source: NHS
Cut down on cream, cheese and food with coconut or palm oil too. Choose brown rice, wholegrain bread and wholewheat pasta.
Eggs? HEART UK says they should be fine for most people in a balanced diet. Their cholesterol doesn’t have a big effect on blood cholesterol, and saturated fat matters much more.
The exception is familial hypercholesterolaemia (FH), an inherited cause of high cholesterol. With FH, HEART UK says to keep food cholesterol to 300 mg a day, ideally nearer 200 mg.
Six food changes to start this week
- Eat 3 servings of oats or barley a day, such as 30 g of porridge oats or 3 oatcakes.
- Eat a handful (28 g) of unsalted, unsweetened nuts a day. Any type of nut counts.
- Add 1 serving of soya a day, like a 250 ml glass of soya drink, and build up to 2 or 3.
- Swap butter, lard and ghee for olive or rapeseed oil, or spreads made from them.
- Have oily fish in place of pies, sausages or fatty meat.
- Reach for nuts, seeds and fruit instead of cakes and biscuits.
For exercise, smoking and alcohol too, see how to lower cholesterol.
When to speak to a GP
High cholesterol does not usually cause symptoms. Only a blood test can show it. Speak to your GP if:
- You’re over 40, overweight, or high cholesterol or heart problems run in your family, and you’ve never had a test.
- Your total is above 7.5, or you or a parent, brother, sister or child had heart disease before 60. NICE says to check for FH.
- Your total is above 9, or your non-HDL (bad cholesterol) is above 7.5. NICE advises a specialist check.
- You’re pregnant or breastfeeding and want to try sterol foods. HEART UK says only under close medical care.
A healthy total for adults is below 5mmol/L. Every number on this page is in mmol/L. To read your own result, see cholesterol results explained.