What to Eat When You Have High Cholesterol

If your cholesterol is high, the most effective dietary changes involve eating more soluble fiber, replacing saturated fats with unsaturated ones, and adding specific foods that actively pull cholesterol out of your body. Eating 5 to 10 grams of soluble fiber a day can lower LDL cholesterol by 5 to 11 points on its own, and combining several dietary strategies amplifies the effect. Here’s what to put on your plate and what to cut back on.

Soluble Fiber: The Most Reliable Dietary Tool

Soluble fiber works because it isn’t absorbed in your intestine. Instead, it binds to cholesterol there and carries it out of your body before it reaches your bloodstream. The target is at least 5 to 10 grams of soluble fiber per day, which is more specific than just “eat more fiber.” Insoluble fiber (the kind in wheat bran and many vegetables) is good for digestion but doesn’t have the same cholesterol-lowering effect.

Oats and barley are the richest practical sources. Both contain a type of soluble fiber called beta-glucan, and 3 grams per day of beta-glucan from either grain produces a meaningful drop in LDL. A cup of cooked oatmeal gets you about a third of the way there. Beans, lentils, apples, pears, citrus fruits, flaxseed, and carrots round out the list. A realistic day might look like this: oatmeal with berries and ground flax at breakfast (about 3 grams), a bean-based lunch with a pear (about 4 grams), carrots and hummus as a snack (about 2 grams), and steamed broccoli or green beans at dinner (about 2 grams). That hits roughly 10 grams without dramatically changing how you eat.

Swap Your Fats Instead of Just Cutting Them

Saturated fat raises LDL cholesterol more than any other nutrient except trans fat. Current dietary guidelines recommend keeping saturated fat below 10% of your daily calories, which works out to about 22 grams on a 2,000-calorie diet. The biggest sources are butter, full-fat cheese, red meat, cream, coconut oil, and baked goods made with these ingredients.

The key insight is that what you replace saturated fat with matters as much as cutting it. When people in clinical trials swapped saturated fat for unsaturated fats from sources like olive oil and sunflower oil, their LDL cholesterol dropped by 13 to 18%. Both monounsaturated fats (olive oil, avocados, most nuts) and polyunsaturated fats (sunflower oil, walnuts, flaxseed, fatty fish) are effective. You don’t need to choose between them. A practical approach is cooking with olive oil instead of butter, snacking on nuts instead of cheese, and choosing fish or chicken over fatty cuts of red meat a few times a week.

One nuance worth knowing: not all saturated fat sources behave the same way. Cheese appears to raise LDL less than butter does, even at the same fat content, and fermented dairy like yogurt has actually been associated with LDL reductions. So trimming butter and fatty meat will likely do more for your numbers than eliminating every dairy product.

Nuts: A Small Daily Handful Adds Up

Tree nuts consistently lower total and LDL cholesterol across dozens of clinical trials. Almonds, walnuts, and pistachios have the strongest evidence. Pooled data from multiple meta-analyses shows that eating roughly a handful a day (about 30 to 60 grams) lowers LDL cholesterol and triglycerides. Walnuts stand out slightly because they’re one of the few rich plant sources of omega-3 fats, but almonds and pistachios perform comparably.

The PREDIMED trial, one of the largest diet studies ever conducted, found a 28% reduction in cardiovascular events among people who ate a Mediterranean-style diet supplemented with nuts. That’s not just a cholesterol number on paper; it’s fewer heart attacks and strokes. A small handful daily as a snack or tossed into salads, oatmeal, or stir-fries is enough.

Soy Protein and Legumes

Soy protein lowers LDL cholesterol by about 3 to 4%, based on a meta-analysis of 46 trials. That’s a modest effect on its own, roughly a 5 mg/dL drop at a typical intake of 25 grams of soy protein per day. But it adds to the effect of other dietary changes, and soy foods like tofu, edamame, and tempeh also tend to replace higher-saturated-fat protein sources, doubling the benefit. Other legumes (lentils, chickpeas, black beans) contribute soluble fiber and plant protein without the saturated fat that comes with meat.

Plant Sterols and Stanols

Plant sterols and stanols are compounds found naturally in small amounts in grains, vegetables, nuts, and fruits. They work by blocking cholesterol absorption in your gut, essentially competing with cholesterol for entry into your bloodstream. At a dose of 2 grams per day, they reduce LDL by about 10%, and getting more than that doesn’t add much additional benefit.

The catch is that you can’t realistically get 2 grams from regular food alone. Most people who use plant sterols get them from fortified products: certain margarines, orange juice, or yogurt drinks specifically labeled as containing added plant sterols. If you’re looking for a dietary addition with one of the strongest standalone effects on LDL, these are worth considering.

Fish and Omega-3 Fats

Fatty fish like salmon, mackerel, sardines, and trout are rich in omega-3 fats, which are potent at lowering triglycerides. If your high cholesterol comes with elevated triglycerides (which is common), two or more servings of fatty fish per week can make a meaningful difference. Omega-3s also appear to raise HDL (“good”) cholesterol slightly.

One thing omega-3s don’t reliably do is lower LDL. In some studies, LDL actually increased slightly with high omega-3 intake. So fish is a smart addition to your diet for overall heart health and triglycerides, but it’s not a substitute for the fiber, fat swaps, and plant sterols that directly target LDL.

What About Eggs?

Eggs are one of the most common sources of dietary cholesterol, and the answer here is more nuanced than “eggs are fine” or “avoid eggs.” A meta-analysis of 13 randomized controlled trials found that people who ate more eggs had significantly higher LDL cholesterol than control groups, with an average increase of about 8 mg/dL. The effect varies from person to person. Some people (sometimes called hyper-responders) see a larger spike in blood cholesterol from dietary cholesterol, while others barely budge.

If your cholesterol is already high, it’s reasonable to be moderate with eggs rather than eating them daily. A few per week is unlikely to meaningfully worsen your numbers, especially if the rest of your diet is working in your favor. The bigger lever is still saturated fat: what you cook those eggs in (butter vs. olive oil) and what you eat alongside them (bacon vs. vegetables) matters more than the eggs themselves.

Putting It All Together

No single food is going to fix high cholesterol, but combining several of these strategies creates a cumulative effect that can rival low-dose medication for some people. A practical framework: build meals around vegetables, whole grains (especially oats and barley), beans, and lentils. Use olive oil as your primary cooking fat. Eat a handful of nuts daily. Choose fish over red meat a few times a week. Add fortified foods with plant sterols if you want an extra edge. Keep saturated fat below 10% of calories by cutting back on butter, fatty meat, and full-fat cheese.

Each of these changes might lower your LDL by 3 to 10% individually. Stacked together, a 20 to 30% reduction is realistic through diet alone, particularly if your starting diet was heavy in saturated fat and low in fiber. Give dietary changes at least 6 to 8 weeks before rechecking your numbers, since that’s how long it takes for blood lipid levels to stabilize at a new baseline.