Last updated: October 20, 2026
Foam is built by protein, and it is softened and stabilized by fat. That one sentence explains every milk ranking you will ever read. Milks high in protein whip up plenty of volume, milks with meaningful fat give that volume a dense, glossy, pourable texture, and milks with neither produce either a stiff dry cap or nothing at all.
For a latte specifically you want microfoam: bubbles so small the milk looks like wet paint and pours as a single fluid mass. That is a different target from the stiff peaks a cappuccino tolerates or the dry foam a cheap frother makes. Whole dairy milk is the default answer because it hits both requirements naturally, but the barista-formulated plant milks have closed the gap enough that the choice is now genuinely about taste and diet rather than ability.
Quick Verdict
| Milk | Foam quality | Texture in a latte | Typical US price | Best for |
|---|---|---|---|---|
| Whole dairy milk | Excellent | Dense, glossy, sweet | Varies | The default, best latte art |
| 2% dairy milk | Excellent | Slightly lighter, very stable | Varies | Stable foam with less richness |
| Skim dairy milk | High volume, poor texture | Dry, stiff, separates | Varies | Cappuccino foam, not lattes |
| Lactose-free dairy | Excellent | Noticeably sweeter | Varies | Lactose intolerance, sweet drinks |
| Barista oat milk | Very good | Creamy, mild, holds a pour | Varies | Best non-dairy option |
| Standard oat milk | Poor | Thin foam, collapses fast | Varies | Cereal, not lattes |
| Soy milk | Good | Firm foam, beany note | Varies | High protein non-dairy |
| Almond milk | Poor to fair | Bubbly, watery | Varies | Low calorie, accept the texture |
| Half-and-half | Low volume | Very rich, foam collapses | Varies | Breve, not a standard latte |
How to Choose
See also: Bloody Mary Recipe: Classic, Spicy, and Easy • Copycat Starbucks Drink Recipes You Can Make at Home
Whole milk is the benchmark for a reason
US whole milk sits at 3.25% milkfat with roughly 8 grams of protein per 8 fluid ounce cup. That protein builds the foam and the fat keeps the bubbles from going brittle, which is exactly the combination microfoam needs. It also brings natural sugars that read as sweetness when steamed correctly, which is why a well-made latte tastes sweet with nothing added. If you are learning to steam, learn on whole milk and change nothing else until your technique is consistent.
2% is not the compromise people assume
Reduced-fat milk has essentially the same protein as whole with less fat, so it actually produces slightly more foam volume and slightly more stable foam. What it gives up is mouthfeel and a little sweetness. Plenty of cafes use 2% without anyone noticing. Skim is where it breaks down: without fat, the foam whips up tall and dry, sits on the drink like meringue, and separates from the liquid underneath instead of blending into it.
Lactose-free dairy is quietly one of the best options
Lactose-free milk is ordinary milk with the lactose already split into simpler sugars, so the protein and fat are unchanged and it steams identically to regular milk. The side effect is that those simpler sugars taste sweeter on the tongue. A lactose-free latte is noticeably sweeter than the same drink made with regular milk, which some people love and some find cloying. It is not a compromise product in any technical sense.
Barista plant milks versus regular plant milks
The word “barista” on a carton is not marketing fluff. Those versions add fat, usually a small amount of oil, and stabilizing agents such as dipotassium phosphate that keep the milk from splitting when it meets hot acidic espresso. Standard supermarket oat and almond milks lack both the fat and the stabilizers, and they will foam briefly and then collapse into a flat cup within a minute.
Soy is the protein option, with a caveat
Soy has protein levels close to dairy and foams well, producing a firm, slightly drier foam. Its weakness is curdling: soy proteins are sensitive to acid and heat, so a hot, acidic shot poured into over-heated soy can flocculate into visible specks. Pour the milk into the espresso rather than the other way round, keep the temperature down, and use a barista formulation if your local one is available.
Almond and coconut are texture compromises
Almond milk is mostly water with a small protein load, so it foams into large bubbles that break down quickly, and it thins the drink. Coconut behaves similarly with more fat and less protein. Barista versions improve both, but neither will give you the dense pour of dairy or good oat. If you drink almond for calorie reasons, accept that the drink will be lighter and that latte art will be difficult.
Freshness and temperature both matter
Milk nearing its date foams worse, because the protein structure degrades. Start cold, straight from the fridge, and use a cold pitcher. Cold milk gives you a longer window to introduce air before the milk passes about 100 degrees Fahrenheit, which is when added air starts making coarse bubbles instead of fine ones. Never re-steam milk you already heated: the proteins have been through the process and will not build foam a second time.
Getting the Best Out of Whichever You Pick
The routine is the same across all of them. Purge the steam wand. Hold the tip just under the surface and add air for two to four seconds for a latte, listening for a steady tearing sound. Then submerge the tip, set up a fast whirlpool, and let it spin until the surface turns glossy.
Stop between 140 and 150 degrees Fahrenheit for dairy. Plant milks are less forgiving of heat than dairy and often taste better stopped at the low end of that range, near 140, because heat brings out the cereal or nut notes. Above 160 degrees, dairy tastes cooked and plant milks tend to split.
Whichever milk you use, it is sitting on espresso, and the espresso has to hold up. About 18 grams of coffee in a double basket, around 36 grams out in 25 to 30 seconds, brewed near 9 bar, gives you a shot with enough intensity to read through 6 to 8 fluid ounces of milk. If your latte tastes like sweet warm milk with a hint of coffee, the milk is not the problem, the shot is too weak or was pulled too long.
Related guides: how to pour latte art for beginners, how to steam milk for a latte at home, latte vs cappuccino vs flat white difference, best espresso machine for small spaces, best tamper size for gaggia classic
FAQ
What milk froths the best?
Whole dairy milk, with 2% essentially tied for foam stability. Both have the protein to build foam and enough fat to keep it dense and pourable. Among non-dairy options, barista-formulated oat milk is closest.
Is whole milk or 2% better for lattes?
Whole milk gives a richer mouthfeel and slightly sweeter flavor. 2% produces marginally more and slightly more stable foam. Both make excellent lattes, so pick on taste rather than technique.
Why does my oat milk not froth?
Almost certainly because it is not a barista version. Standard oat milk lacks the added fat and stabilizers needed to hold foam against hot acidic espresso.
Can I froth skim milk?
Yes, and it produces a lot of foam. But without fat the foam is dry and stiff, sits as a separate layer on the drink, and will not pour as microfoam. It suits a cappuccino better than a latte.
Does milk temperature before steaming matter?
Yes. Start with milk straight from the refrigerator. Cold milk extends the window in which you can add air and get fine bubbles. Milk already at room temperature heats past that window within a couple of seconds, which is a common reason home foam comes out coarse.







