Lactose content of dairy products
Lactose intolerance is the global default. Roughly two-thirds of the world's adults stop producing lactase past childhood, and what counts as a tolerable dose varies hugely between people. The NIH puts the typical threshold at about 12 g of lactose — roughly one cup of milk — without symptoms or with only mild ones1. Below that, most people are fine; above it, dose and individual sensitivity start to matter.
What makes the topic interesting is that the lactose content of dairy products spans nearly five orders of magnitude. A wedge of aged Cheddar has essentially none. A spoonful of Brunost (Norwegian whey cheese) has more than half its mass in lactose. The reason: lactose is water-soluble and lives in the whey, not the curd. Anything that drains whey (cheesemaking, Greek-style yogurt straining) removes lactose. Anything that ferments (aging, live yogurt cultures) converts it to lactic acid. Anything that concentrates whey (Brunost, ricotta, dry milk solids) goes the other way.
The table below is my attempt at a unified reference. All values are grams of lactose per 100 g of product, so they're directly comparable. Each value is footnoted to a single source. Where US (USDA / NIDDK) numbers and non-US databases differ systematically — Feta is the standout — I've gone with the US value.
For mental conversion: 100 g is about 1 cup of milk (which weighs ~244 g, but the lactose-per-100g and per-100mL values are nearly identical for milk), about 3.5 oz of cheese, or roughly 7 tablespoons of butter.
The Safe? column estimates whether a lactose-intolerant adult can comfortably consume a typical US serving (1 cup milk/yogurt, 1 oz cheese, 1 tbsp butter, 2 tbsp cream, ½ cup ice cream, ½ cup cottage cheese / ricotta) with a 3× margin of safety — most people eat more than one serving at a meal, so the rule asks whether 3 servings still fit well under the ~12 g/day NIDDK threshold1:
- Yes — < 1 g per typical serving. Three servings still well under threshold; safe for nearly all lactose-intolerant adults.
- Maybe — 1–4 g per typical serving. One serving is fine for most people; 3 servings approach or hit the threshold.
- No — > 4 g per typical serving. Three servings clearly exceed the threshold; even one serving may cause symptoms in sensitive individuals.
The table
Milks
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Whole cow milk (3.25% fat) | 4.812 | No | ≈ 12 g per 244 g cup1 — one cup alone hits threshold |
| Reduced-fat (2%) cow milk | 4.692 | No | |
| Lowfat (1%) cow milk | 4.862 | No | |
| Skim cow milk | 5.052 | No | Removing fat slightly raises lactose-by-mass |
| Buttermilk, lowfat (cultured) | 4.03 | No | Despite the name, US buttermilk is fermented lowfat milk |
| Goat milk | 4.272 | No | |
| Sheep milk | 4.44 | No | |
| Lactose-free milk (Lactaid-style) | <0.14 | Yes | Lactase enzyme has hydrolyzed the lactose into glucose + galactose |
| Evaporated whole milk | ~105 | Maybe | Used in small amounts (2 tbsp ≈ 3 g); a ½ cup recipe portion is "No" |
| Sweetened condensed milk | ~125 | Maybe | A 2 tbsp drizzle is fine; ¼ cup in a recipe is not |
Yogurts and fermented milks
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Plain whole-milk yogurt | 4.73 | No | A 6 oz container has ~8 g; live cultures pre-digest some lactose but most remains |
| Plain low-fat yogurt | 4.03 | No | ~6.8 g per 6 oz container |
| Greek yogurt (strained, plain) | ~3.06 | Maybe | Straining removes ~70% of the lactose into the acid whey6 |
| Greek yogurt (nonfat, strained) | ≤0.76 | Yes | |
| Kefir, plain | 4.03 | Maybe | High raw lactose, but live yeast/bacteria reduce symptoms in lactose-intolerant people by 54–71%7 — effective dose is much lower than the raw number suggests |
| Skyr | 2.53 | Maybe | Strained, like Greek yogurt |
| Sour cream | 2.03 | Yes | A 2 tbsp dollop has ~0.6 g |
| Crème fraîche | ~2.44 | Yes | A 2 tbsp serving has ~0.7 g |
Cream and butter
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Butter, salted | 0.18 | Yes | An entire stick (113 g) has ~0.1 g; almost all the whey has been churned out |
| Heavy / whipping cream | 2.53 | Yes | A 2 tbsp serving has ~0.75 g; more fat, less aqueous phase, less lactose |
| Half-and-half | ~4.05 | Maybe | A 2 tbsp coffee splash is fine (~1.2 g); 3 splashes approach the threshold |
Fresh and unripened cheeses
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Cottage cheese, low-fat | 1.83 | Maybe | A ½ cup serving has ~2 g; 3 servings = 6 g |
| Cream cheese | 3.63 | Maybe | Highest of any common cheese; a 1 oz schmear has ~1 g |
| Ricotta (whey-based) | 2.753 | Maybe | Made from the whey drained off other cheeses; ½ cup has ~3.4 g |
| Mascarpone | 3.03 | Yes | A 1 oz serving has ~0.84 g |
| Chèvre, fresh (goat) | 0.93 | Yes | A 1 oz serving has ~0.25 g |
| Paneer | 0.0023 | Yes | Acid-set; the whey carries off nearly all of it |
| Burrata | ~1.53 | Maybe | A mozzarella shell wrapped around a stracciatella cream filling; lactose is dominated by the filling. ~1 g per typical 1 oz serving |
| Stracciatella (burrata cream filling) | 1.83 | Maybe | Sold as a stand-alone topping; eaten by the spoonful |
| Cheese curds, fresh | 3.03 | Maybe | Wisconsin specialty. Unaged and unpressed, so much of the lactose remains; a small handful (~30 g) has ~1 g |
| Queso fresco | 2.39 | Maybe | Fresh, unaged Mexican cheese. Crumbled on tacos at typical portions (~30 g) gives <1 g |
Soft-ripened and washed-rind cheeses
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Brie | <0.00243 | Yes | Mould ripening fully ferments residual lactose |
| Camembert | <0.00243 | Yes | |
| Limburger | <0.00243 | Yes | |
| Taleggio | <0.0013 | Yes |
Pasta filata (stretched-curd) cheeses
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Mozzarella, commercial low-moisture | 0.743 | Yes | The kind on US pizza |
| Mozzarella di bufala | 0.353 | Yes | |
| Bocconcini (mini fresh mozzarella) | <0.0013 | Yes | Fresh; lower lactose than commercial mozzarella because there's less moisture to retain whey |
| String cheese | 0.743 | Yes | Mechanically the same product as low-moisture mozzarella; one stick (~28 g) has ~0.2 g |
| Oaxaca (queso Oaxaca) | <0.53 | Yes | Mexican pasta filata cheese; USDA reports ~0 carbohydrates per serving |
| Provolone, dolce or piccante | <0.0013 | Yes |
Hard, semi-hard, and pressed cheeses
These are all functionally lactose-free. The Cheese Scientist database reports values below the analytical detection limit (≈ 1 mg/100 g) for all of them3. Two mechanisms combine: pressing the curds drains nearly all the whey (and with it, the lactose) before aging even begins; for cheeses aged >2 months, residual lactose is further fermented to lactic acid, as confirmed in the Stelios et al. PDO survey10. Even young pressed cheeses like Havarti and Pepper Jack therefore come in at trace levels.
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Cheddar | <0.0013 | Yes | |
| Parmigiano Reggiano (12 mo) | <0.0013 | Yes | |
| Swiss / Emmentaler | <0.0013 | Yes | |
| Gouda | <0.0013 | Yes | |
| Gruyère | <0.0013 | Yes | |
| Manchego | <0.0013 | Yes | |
| Pecorino Romano | <0.0013 | Yes | |
| Asiago | <0.0013 | Yes | |
| Colby / Monterey Jack | <0.0013 | Yes | |
| Pepper Jack | <0.0013 | Yes | Spiced Monterey Jack; pressing already removes nearly all the whey |
| Havarti | <0.0013 | Yes | Semi-soft Danish cheese, but pressed |
| Muenster (US deli) | <0.00243 | Yes | The mild orange-rinded American deli cheese (very different from French Munster, a strongly aromatic washed-rind cheese; US Munster has minimal lactose) |
| Edam | <0.0013 | Yes | |
| Fontina | <0.0013 | Yes | |
| Jarlsberg | <0.0013 | Yes | |
| Comté | <0.0013 | Yes | |
| Raclette | <0.00243 | Yes |
Blue cheeses
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Stilton | <0.0013 | Yes | |
| Gorgonzola (dolce or piccante) | <0.0013 | Yes | |
| Roquefort | <0.00243 | Yes |
Brined cheeses
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Feta | 4.011 | Maybe | A 1 oz crumble has ~1.1 g; the big US/non-US discrepancy: ANZ reports 0.1 g/100 g; the US FDC value is 4 g/100 g. Using the US figure |
| Halloumi | 1.83 | Yes | A 1 oz serving has ~0.5 g; brining doesn't remove lactose the way aging does |
Whey-based and processed
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Brunost (Norwegian whey cheese) | 463 | No | The outlier. A 1 oz slice has ~13 g — exceeds the threshold by itself. Made by boiling down whey — concentrates everything water-soluble |
| American cheese, natural pasteurized (deli-sliced) | 2.212 | Yes | The "real cheese" deli-sliced kind; one slice (~21 g) has ~0.5 g. Higher than Kraft Singles because it contains more whey solids and less added water |
| Kraft Singles (regular) | 1.53 | Yes | A 21 g slice has ~0.3 g |
| Kraft Singles Light | 4.93 | Maybe | A 21 g slice has ~1 g; reduced fat means more lactose-by-mass |
Frozen desserts
US labels don't break out lactose, and unlike cheeses there's no published analytical database of ice cream by brand. But the lactose content of any frozen dairy dessert is dominated by MSNF (milk solids non-fat), and ~55% of MSNF is lactose13. MSNF in turn is set by the product category — federal labels constrain minimum milkfat and milk-solids content for each14 — and within a category, more fat displaces MSNF, which is why super-premium ice cream has less lactose per 100 g than standard supermarket ice cream.
The wrinkle is overrun (the air whipped into the mix during freezing). A ½ cup of standard ice cream weighs ~65 g; a ½ cup of Haagen-Dazs weighs ~80 g. So per-scoop, the denser super-premium product can deliver more lactose than the cheaper version, even with less lactose by mass. The Safe? column uses per-serving math:
| Product | Lactose (g/100g) | Safe? | Notes |
|---|---|---|---|
| Sorbet (true) and non-dairy frozen desserts (oat / almond / coconut / soy) | 0 | Yes | No dairy, no lactose. Some products labeled "sorbet" do sneak in milk solids — read the label |
| Lactose-free ice cream (Breyers Lactose Free, Lactaid, So Delicious LactoseFree) | <0.5 | Yes | Lactase enzyme has hydrolyzed the lactose into glucose + galactose |
| Sherbet | ~1.55 | Maybe | Federal standard caps milk solids at 5%; a ½ cup (~74 g) has ~1.1 g |
| Frozen yogurt with live active cultures | ~4–5 raw13 | Maybe | Raw lactose is ice cream-like, but live β-galactosidase pre-digests some lactose (similar to kefir/yogurt). Frozen yogurts without active cultures behave like ice cream |
| Ice cream, super-premium (Haagen-Dazs, Ben & Jerry's) | ~5.0–5.513 | No | 14–18% fat displaces MSNF (lower g/100g), but low overrun makes a ½ cup weigh ~80 g — so a serving still carries ~4.2 g, more than a ½ cup of standard ice cream |
| Ice cream, standard (Breyers, Tillamook, Edy's) | ~5.5–6.05 | No | 10–11% MSNF. A ½ cup (~65 g) has ~3.7 g; 3 scoops (a typical bowl) tips past the threshold |
| Gelato (Talenti, gelaterias) | ~6.0–6.513 | No | More milk and less cream than ice cream nudges lactose up. ½ cup ≈ 82 g (low overrun) → ~5 g per serving |
| Soft serve | ~6.0–7.513 | No | 11–14% MSNF — higher than hard ice cream — and ½ cup ≈ 86 g. A typical cone delivers 6+ g |
| "Light" / low-fat ice cream (Edy's Slow Churned, Breyers Light) | ~6.5–7.513 | No | Cutting fat means more MSNF added back for body — so per-mass lactose goes up, not down |
| "Frozen dairy dessert" (many reformulated Breyers SKUs, store-brand pints) | ~6.0–6.513 | No | The label used when milkfat falls below the 10% FDA ice-cream minimum; often higher MSNF/whey solids |
Estimating brand-specific values from the label
US labels don't list lactose, but since 2020 they have separated total sugars from added sugars15. For plain (vanilla, sweet cream, mint, chocolate) ice cream, every gram of "natural" sugar comes from milk, and milk's only sugar is lactose:
lactose per serving ≈ total sugars − added sugars
Divide by serving weight in grams and multiply by 100 to get lactose by mass. Applied to the nutrition labels of vanilla pints from major US brands:
| Brand & flavor | Serving | Total sugars | Added sugars | Lactose / serving | Lactose (g/100 g) |
|---|---|---|---|---|---|
| Häagen-Dazs Vanilla | 2/3 cup, 128 g16 | 24 g | 18 g | 6 g | 4.7 |
| Ben & Jerry's Vanilla | 2/3 cup, 143 g17 | 28 g | 21 g | 7 g | 4.9 |
| Tillamook Vanilla Bean | 2/3 cup, 95 g18 | 21 g | 16 g | 5 g | 5.3 |
| Breyers Natural Vanilla | 2/3 cup, 88 g19 | 19 g | 14 g | 5 g | 5.7 |
| Talenti Madagascan Vanilla Bean | 2/3 cup, 128 g20 | 30 g | 22 g | 8 g | 6.3 |
| Breyers Lactose Free Vanilla | 2/3 cup, 87 g21 | 19 g | 14 g | (5 g)* | < 0.6* |
*The equation breaks for lactase-treated products. Lactase hydrolyzes lactose into glucose + galactose, both still counted as natural sugars on the label — so the "natural sugar" line tells you what was lactose before treatment, not what your body sees now. Breyers reports this product as 99% lactose-free.
The brand-specific results land within ±0.5 g/100 g of the formulation-based ranges in the table above, and they preserve the rank order: super-premium (lower fat-displacing-MSNF) < standard < gelato. Two other cases where the equation breaks: fruit-flavored ice cream (strawberry, cherry — fructose and other fruit sugars inflate the natural-sugar count) and honey-sweetened products, where post-2020 FDA rules treat honey as added sugar but older labels may not.
Practical takeaways
- Aged hard cheeses are lactose-free. Cheddar, Parm, Swiss, Gouda, Manchego, blue cheeses — eat them freely. The 12 g daily threshold1 would require something like 12 kg of cheddar.
- Greek yogurt ≠ regular yogurt. Strained yogurts have ~⅓ to ⅒ the lactose of unstrained. If regular yogurt bothers you, try Greek before giving up on yogurt.
- Watch the fresh cheeses. Cream cheese, mascarpone, ricotta, cottage cheese, mozzarella di bufala — these still carry meaningful lactose because they haven't been aged or strained much.
- Whey is the enemy. The single best predictor of lactose content is "how much whey is left in this product?" Brunost (boiled-down whey) tops the list at 46 g/100 g; ricotta is whey-based; "Light" processed cheese has more whey solids and therefore more lactose than the full-fat version.
- Butter is fine. At 0.1 g/100 g, even an entire stick (113 g) is well under the threshold.
- Ice cream lactose is set by formulation, not flavor. It tracks the MSNF percentage, which is governed by the product category. Super-premium has the lowest lactose by mass but the densest scoops; "light" and "frozen dairy dessert" have the highest. Sorbet, non-dairy, and lactose-free are the only safe categories.
Caveats
- Brand-to-brand variation is real, especially for fresh cheeses, yogurts, and pasta filata. The values above are representative, not guaranteed.
- US nutrition labels list "carbohydrates," not "lactose." For pure dairy products with no added sugar, the carbohydrate value is approximately the lactose value — but anything sweetened (flavoured yogurt, ice cream) needs label-reading.
- Individual tolerance varies by orders of magnitude. The 12 g threshold1 is a population median, not a personal limit.
Sources
National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK), Eating, Diet, & Nutrition for Lactose Intolerance. The "many people could have 12 grams of lactose — the amount in about 1 cup of milk — without symptoms or with only mild symptoms" figure is the standard US clinical reference.↩
USDA FoodData Central, Foundation Foods and SR Legacy entries for fluid milks (fdc.nal.usda.gov). Lactose values per 100 g: whole milk 4.81, 2% 4.69, 1% 4.86, skim 5.05, goat 4.27.↩
Database of Lactose Content in Cheese (Based on Scientific Data), Cheese Scientist. Compiled from peer-reviewed analytical studies, the USDA FoodData Central database, the Food Standards Australia/New Zealand Food Composition Database, and HPLC measurements published by PerkinElmer.↩
Lactolerance dairy lactose content reference, drawing on the French Crédoc and ASPCC nutrient databases. Used here for sheep milk and lactose-free milk values where the USDA database is sparse.↩
Ohio State University Extension, in collaboration with USDA: Lactose Content of Foods (fact sheet).↩
Sakkas L, Tsevdou M, et al. (2022), Effect of Modified Manufacturing Conditions on the Composition of Greek Strained Yogurt and the Quantity and Composition of Generated Acid Whey. Foods 11(24):3953. — Reports that 71.1% of the lactose in milk is removed during Greek-yogurt straining, leaving ≤0.7 g/100 g in nonfat strained yogurt and ~3 g/100 g in full-fat. Acid whey contains 3.37–4.99% lactose by mass.↩
Hertzler SR, Clancy SM (2003), as cited in Healthline's "5 Low Lactose Dairy Products". Kefir was found to reduce symptoms of lactose intolerance by 54–71% relative to milk consumption, attributed to live microbial β-galactosidase activity.↩
Think USA Dairy data summarized via Healthline: 100 g of butter contains 0.1 g of lactose.↩
USDA FoodData Central, Cheese, queso fresco (FDC ID 172223). Reports 3.0 g total carbohydrate and 2.3 g total sugars per 100 g; in plain unsweetened cheese the sugar fraction is essentially all lactose.↩
Stelios A, Soccol CR, et al. (2021), Lactose Residual Content in PDO Cheeses: Novel Inclusions for Consumers with Lactose Intolerance. Foods 10(9):2236. — Survey of residual lactose in Italian and European PDO cheeses, finding that ripening for >2 months reduces lactose to below clinically relevant levels in essentially all hard and semi-hard varieties studied (Grana Padano, Parmigiano Reggiano, Pecorino Romano, Asiago, Gorgonzola, Emmentaler, Le Gruyère, Pecorino Toscano, Piave, Stelvio, Montasio).↩
USDA FoodData Central reports ~4 g lactose per 100 g for feta cheese, contra the Australia/New Zealand Food Composition Database which lists 0.1 g/100 g. The discrepancy appears to reflect genuine differences in the US "feta" category — typically a brined cow-milk product — versus traditional Greek/sheep-milk feta. Discussed in the Cheese Scientist database.↩
USDA FoodData Central, American cheese (natural pasteurized) entries via USDA FDC. Reports ~2.2 g lactose / 100 g — distinct from the "Kraft Singles" processed cheese product category, which contains more added water and consequently a lower lactose-by-mass.↩
H. Douglas Goff, Ice Cream Technology e-Book (University of Guelph). Standard ice cream contains 9–12% MSNF, of which ~54.5% is lactose. Values above are formulation-derived: typical MSNF range for each FDA category multiplied by 0.55 — direct analytical lactose-by-brand measurements are not publicly available, since US nutrition labels list "carbohydrates," not lactose, and ice cream is not covered by the major lactose databases used elsewhere in this table.↩
International Dairy Foods Association, Ice Cream Labeling. FDA categories: ice cream (≥10% milkfat), low-fat ice cream (≤3 g fat/serving), light/lite (50% fat reduction vs the reference), nonfat (<0.5 g fat/serving), sherbet (1–2% milkfat, 2–5% milk solids), and "frozen dairy dessert" for products that don't meet the ≥10% milkfat ice cream standard. "Super-premium" is informal — typically 14–18% fat with <50% overrun.↩
US Food & Drug Administration, Changes to the Nutrition Facts Label. Mandatory disclosure of added sugars took effect for major manufacturers in January 2020, smaller manufacturers in January 2021.↩
Häagen-Dazs Vanilla Ice Cream nutrition facts via MyFoodDiary.↩
Ben & Jerry's Vanilla Ice Cream nutrition facts via MyFoodDiary.↩
Tillamook Vanilla Bean Ice Cream, serving size confirmed via MyFoodDiary.↩
Breyers Natural Vanilla Ice Cream nutrition facts via Fairway Market product listing.↩
Talenti Madagascan Vanilla Bean Gelato nutrition facts via MyFoodDiary.↩
Breyers Lactose Free Vanilla Ice Cream nutrition facts via MyFoodDiary.↩