Several everyday foods can measurably lower your cholesterol, with the biggest effects coming from oats, barley, beans, nuts, and soy. A combination of these foods, paired with cutting back on saturated fat, can reduce LDL (“bad”) cholesterol by up to 10% within 8 to 12 weeks.
The foods that work best share a common mechanism: they contain soluble fiber, plant sterols, or unsaturated fats that interfere with how your body absorbs and recycles cholesterol. Here’s what the evidence says about each one and how much you actually need to eat.
Oats and Barley
Oats and barley are the most studied cholesterol-lowering foods, and the active ingredient is a type of soluble fiber called beta-glucan. When you eat oatmeal or barley, this fiber forms a thick gel in your gut that traps bile acids, which are made from cholesterol in your liver. Normally, your body reabsorbs most of those bile acids and recycles them. But when fiber carries them out of your body instead, your liver has to pull more cholesterol from your bloodstream to make a fresh batch. The net result is lower LDL cholesterol.
The threshold that matters is 3 grams of beta-glucan per day. A meta-analysis of 126 studies found that this amount reduces LDL cholesterol by about 0.25 mmol/L (roughly 10 mg/dL). Eating more than 3 grams doesn’t produce additional benefit, so you don’t need to overdo it. A bowl and a half of oatmeal gets you there, or you can split it between a morning bowl of oats and some barley added to soup or a grain bowl at dinner. Barley beta-glucan produces nearly identical reductions.
Beans, Lentils, and Chickpeas
Legumes are packed with soluble fiber and work through the same bile acid mechanism as oats. A meta-analysis of randomized controlled trials found that eating one daily serving of non-soy legumes (beans, lentils, peas, or chickpeas) lowered LDL cholesterol by about 8 mg/dL on average, with some studies showing reductions as high as 19 mg/dL. That’s a meaningful drop from a single food swap, like replacing a side of white rice with black beans or adding lentils to a stew.
Legumes also happen to be high in protein and low in saturated fat, which means they can do double duty if you use them to replace some red meat in your weekly meals.
Nuts, Especially Walnuts
A daily handful of nuts lowers both total and LDL cholesterol. The strongest data comes from a two-year trial that gave healthy older adults 30 to 60 grams of walnuts per day (roughly a quarter to a half cup). Total cholesterol dropped by 4.4% and LDL fell by 3.6%, with men seeing a larger LDL reduction (7.9%) than women (2.6%). The number of small, dense LDL particles, the type most strongly linked to artery damage, dropped by 6.1%.
Almonds, pistachios, and other tree nuts show similar, slightly smaller benefits. The key is portion control: nuts are calorie-dense, so a small daily serving (about 1.5 ounces) is the sweet spot where you get the cholesterol benefit without excess calories.
Soy Foods
Tofu, edamame, soy milk, and tempeh all contain soy protein, which has a modest but consistent effect on cholesterol. A meta-analysis of 46 clinical trials found that 25 grams of soy protein per day lowered LDL by about 5 mg/dL and total cholesterol by about 6 mg/dL over six weeks. That’s roughly three servings of soy foods: a cup of soy milk at breakfast, some edamame as a snack, and a serving of tofu at dinner.
The effect is smaller than what you get from oats or beans, but soy adds up when combined with other cholesterol-lowering foods. It also replaces animal protein in meals, which indirectly cuts saturated fat intake.
Plant Sterol-Enriched Foods
Plant sterols and stanols are naturally occurring compounds found in small amounts in vegetables, fruits, and grains. At normal dietary levels, you don’t get enough to affect cholesterol. But fortified foods (certain margarines, orange juices, and yogurts) deliver concentrated doses that block cholesterol absorption in your gut.
Consuming 1.5 to 3 grams of plant sterols per day lowers LDL cholesterol by 7.5% to 12%. That’s one of the largest effects of any single food-based intervention. The practical challenge is that you have to specifically seek out fortified products and eat them consistently. Check labels for “added plant sterols” or “plant stanols.”
Fatty Fish
Salmon, mackerel, sardines, and herring are rich in omega-3 fatty acids, which primarily lower triglycerides rather than LDL cholesterol. If your blood work shows elevated triglycerides alongside high cholesterol, eating fatty fish two or more times per week is one of the most effective dietary changes you can make. The American Heart Association recommends fish as a core part of heart-healthy eating patterns like the Mediterranean and DASH diets.
Fish also replaces higher-saturated-fat proteins like beef or processed meat, which contributes to the overall cholesterol-lowering effect of a diet shift.
Cutting Saturated Fat Matters as Much as Adding Foods
Cholesterol-lowering foods work best when you’re also reducing the foods that raise LDL in the first place. There is a direct, graded relationship between saturated fat intake and LDL cholesterol levels. The most impactful sources are red meat, butter, full-fat dairy, and tropical oils like coconut and palm oil.
Replacing saturated fats with unsaturated fats is strongly associated with lower LDL. Some practical swaps:
- Cooking fat: Use olive, canola, or avocado oil instead of butter
- Dairy: Switch to low-fat versions of milk, yogurt, and cheese
- Meat: Choose lean cuts labeled “choice” or “select” and avoid marbled or “prime” cuts
- Cooking method: Bake, roast, broil, or stir-fry instead of frying
- Cream-based recipes: Substitute evaporated skim milk for heavy cream
These aren’t minor tweaks. The 2026 ACC/AHA guidelines emphasize that predominantly plant-based dietary patterns, including Mediterranean, DASH, and vegetarian diets, consistently improve cardiovascular outcomes. The common thread in all of them is high intake of fruits, vegetables, nuts, legumes, whole grains, and unsaturated fats.
How Long Until You See Results
Most people can expect a measurable change in cholesterol levels within 8 to 12 weeks of sustained dietary changes, according to the British Heart Foundation. A combination of eating more fiber, reducing saturated fat, and following a balanced eating pattern can reduce cholesterol by up to 10% in that window.
That timeline assumes you’re making consistent daily changes, not occasional swaps. Adding a bowl of oatmeal once a week won’t move the needle. But eating oats daily, having beans several times a week, snacking on nuts instead of chips, cooking with olive oil instead of butter, and choosing plant sterol-fortified foods creates a cumulative effect that shows up clearly on your next lipid panel. The foods that lower cholesterol work best as a pattern, not individual additions.