Milk Stout (Sweet Stout)

Milk Stout (Sweet Stout)
⏱️ cook time 25 days (2 hours active brewing time)
🍽️ servings 8
⚡ Difficulty medium

intro

Creamy, low-bitterness dark sweet stout with roasted malt, coffee, and subtle chocolate notes, rounded out by smooth milk sugar for a velvety sipping experience.

Ingredients

2-Row Pale Malt 907g (2 lbs)
Lactose (milk sugar) 227g (1 cup)
Filtered Water 4.5L (19 cups)
Roasted Barley 113g (4 oz)
Crystal Malt (60 Lovibond) 85g (3 oz)
Chocolate Malt 57g (2 oz)
East Kent Goldings Hops 28g (1 oz)
Irish Ale Yeast 11g (1 standard packet)
Corn Sugar (priming sugar) 28g (2 tbsp)

Steps

1

Mash the malt grains

Heat 2.8L (12 cups) of filtered water to 67°C (153°F) in a large stockpot over medium-low heat. Add all crushed grains (2-row pale, roasted barley, crystal malt, chocolate malt), stir to fully submerge, cover, and hold temperature steady at 65-68°C (149-154°F) for 60 minutes, stirring every 10 minutes to prevent clumping. Do not let temperature exceed 70°C (158°F) to avoid harsh, astringent flavors.

Step 1
step1:Mash the malt grains
2

Sparge and collect wort

After 60 minutes of mashing, pour the grain and liquid mixture through a fine-mesh strainer lined with cheesecloth into a second clean 8L stockpot. Slowly pour 1.7L (7 cups) of 77°C (170°F) filtered water over the strained grains to rinse residual sugars from the malt, collecting all runoff (called wort) in the pot. Discard the spent grains once all liquid has fully drained.

Step 2
step2:Sparge and collect wort
3

Boil wort with additions

Place the pot of collected wort over high heat to bring to a gentle rolling boil, then adjust heat to medium-high to maintain the boil and prevent messy boilovers. Set a 60-minute timer: add 21g (0.75 oz) of East Kent Goldings hops at the start of the boil, stir in the full 227g (1 cup) of lactose with 15 minutes remaining in the boil, and add the remaining 7g (0.25 oz) of hops with 5 minutes remaining. Skim any thick, foamy krause that rises to the surface during the boil.

Step 3
step3:Boil wort with additions
4

Cool wort and pitch yeast

When the 60-minute boil finishes, remove the pot from heat and set it in a sink filled with ice water to rapidly cool the wort to 20°C (68°F), which takes 20-25 minutes. Pour the cooled wort into a sanitized 1-gallon (3.8L) glass fermentation jug, seal the jug tightly and shake vigorously for 30 seconds to aerate the wort, then sprinkle the full 11g packet of Irish ale yeast over the wort surface. Seal the jug with a sanitized airlock filled halfway with food-safe sanitizer solution.

Step 4
step4:Cool wort and pitch yeast
5

Complete primary fermentation

Move the sealed fermentation jug to a dark, temperature-stable space held at 18-20°C (65-68°F) and leave undisturbed for 14 days. Visible bubbling will occur in the airlock for the first 3-7 days as yeast converts sugar to alcohol and carbon dioxide; fermentation is complete when no bubbles rise through the airlock for 48 consecutive hours, and the beer is dark and clear with a thin layer of tan yeast sediment settled at the jug bottom.

Step 5
step5:Complete primary fermentation
6

Bottle the fermented stout

Sanitize 8 16-oz (473ml) glass beer bottles and metal crown caps thoroughly with food-grade sanitizer. Siphon the fermented stout out of the fermentation jug into a sanitized plastic bottling bucket, taking care to leave all yeast sediment behind in the jug. Stir in 28g (2 tbsp) of corn sugar evenly into the beer to drive natural carbonation, then siphon the beer into prepared bottles, leaving 2.5cm (1 inch) of headspace at the top of each bottle before crimping caps tightly.

Step 6
step6:Bottle the fermented stout
7

Carbonate and serve

Store the sealed, capped bottles in the same dark, 18-20°C (65-68°F) space for 10 days to allow natural carbonation to develop, then move bottles to a refrigerator to chill to 4°C (40°F) for 24 hours before serving. Pour slowly into a pint glass, leaving the thin layer of yeast sediment at the bottom of the bottle for the clearest, creamiest pour.

Step 7
step7:Carbonate and serve

Tips

1.Sanitize every piece of equipment that touches cooled wort or beer (fermenter, siphon, bottles, airlock) thoroughly with food-grade no-rinse brewer’s sanitizer to prevent off-flavors or bacterial spoilage.
2.Do not add lactose too early in the boil; adding it with 15 minutes left prevents the milk sugar from scorching on the pot bottom and creating burnt, off-flavors.
3.Avoid moving or jostling the fermentation jug during the 14-day primary ferment, as agitation can stir up yeast sediment and create cloudy, yeasty-tasting beer.

✨ You May Also Like

Drinks & Beverages
🍜 Mexico

A bright, balanced tequila-based cocktail with zesty fresh lime, smooth orange liqueur, and a signature salt rim, perfect for warm summer sipping.

⏱️ 5 minutesDrinks & Beverages ★ 4.7
Drinks & Beverages
🍜 United States

Thick, creamy, nostalgic classic vanilla milkshake with a rich, smooth texture, topped with whipped cream and a cherry for cool, sweet refreshment.

⏱️ 5 minutesDrinks & Beverages ★ 4.6
Drinks & Beverages
🍜 United States

A bright, golden strong ale with fruity banana-clove notes, subtle hop spice, and soft carbonation, brewed in classic Trappist Tripel tradition.

⏱️ 2 hours aDrinks & Beverages ★ 4.7
Drinks & Beverages
🍜 United States

A frothy, nostalgic American soda fountain treat pairing bubbly cold root beer with creamy vanilla ice cream, perfect for cooling down at warm weather gatherings.

⏱️ 20 minuteDrinks & Beverages ★ 4.9
Drinks & Beverages
🍜 United States

Tart, funky, effervescent American Wild Ale is a complex fruity craft beer brewed with wild yeast, delivering bright, zesty notes perfect for warm-weather sipping.

⏱️ 2 hours aDrinks & Beverages ★ 4.5
Drinks & Beverages
🍜 United States

Bright, bubbly copycat of the iconic American caramel cola, balanced with citrus and warm spice, perfect for sipping ice-cold on hot days.

⏱️ 15 minuteDrinks & Beverages ★ 4.8

Milk Stout (Sweet Stout):Frequently Asked Questions

1.What makes milk stout different from a standard dry stout?
Unlike bold, sharply bitter dry stouts like Guinness, milk stout gets its signature smooth, sweet profile from lactose—an unfermentable milk sugar that never converts to alcohol during brewing. It has softer roasted barley, coffee, and chocolate notes, far lower perceived bitterness, and a velvety, full mouthfeel that feels far more approachable for people new to dark beers.
2.Can I drink this milk stout if I’m lactose intolerant?
If you have a severe lactose intolerance, this recipe isn’t a good fit, since unfermented lactose remains in the finished beer at noticeable levels. For a similar creamy profile without dairy, swap lactose for food-grade maltodextrin to add body and soft mouthfeel, though note this swap won’t replicate lactose’s subtle, rounded sweet dairy note.
3.Why is 2-Row Pale Malt used as the base instead of darker malts?
2-Row Pale Malt is the ideal base because it has a mild, clean, bready malt flavor that never overpowers the delicate roasted coffee, chocolate, and sweet lactose notes. It also has consistent, reliable enzyme content that converts starches to sugar efficiently during mashing, without adding the harsh acrid bitterness you get from overusing dark roasted malts as a base.
4.Do I need fancy professional brewing equipment to make this recipe?
You don’t need a high-end commercial setup to nail this stout! At minimum, you’ll need a 5-gallon brew kettle, food-grade fermentation bucket with an airlock, siphon, no-rinse brewer’s sanitizer, thermometer, and bottles or a keg for carbonation. If you’ve pulled off 1-2 basic homebrew batches before, you already have every tool you need.
5.When should I add lactose during the brewing process, and how much do I use?
For a balanced, not-cloying sweetness on a 5-gallon batch, 1 pound of lactose is the perfect amount. Add it during the last 10 minutes of the boil to give it time to fully dissolve and sterilize. Since lactose is unfermentable, you don’t have to worry about boiling off flavor or triggering extra alcohol conversion with longer boil times.
6.Why does the recipe call for filtered water instead of regular tap water?
Most tap water contains chlorine, chloramine, or inconsistent mineral levels that can throw off this stout’s soft, rounded flavor, leading to harsh medicinal off-notes or flat, dull roasted character. Filtered water removes those treatment chemicals and has a neutral mineral balance that lets the roasted barley, chocolate, and lactose notes shine without weird aftertastes.
7.What does 60 Lovibond Crystal Malt contribute to the finished beer?
60 Lovibond Crystal Malt brings soft, toasty caramel, toffee, and subtle dried fruit notes that bridge the gap between the pale malt base, sharp roasted barley, and sweet lactose. It also adds extra body and mouthfeel so the beer feels velvety on the palate instead of thin or watery, without adding any extra harsh, astringent bitterness.
8.Is this milk stout a high-alcohol, heavy boozy beer?
Not at all! Brewed to spec, this milk stout usually clocks in between 4-5% ABV, which is around the same strength as a standard mass-market pale ale. The lactose and soft roasted notes make it taste even smoother than many lighter beers, with zero harsh alcohol burn, just rich, creamy coffee and chocolate flavor that goes down easy.
9.How do I avoid the harsh, ashy burnt taste some homemade stouts have?
Ashy, burnt off-flavors almost always come from steeping roasted barley too long at too high a temperature, or using too much roasted barley relative to base malt. For this recipe, add roasted barley during the last 15 minutes of the mash, hold mash temp steady at 152-154°F, and stick to 4-6 ounces of roast per 5-gallon batch for smooth coffee notes without ash.
10.How long does this milk stout need to ferment before it’s ready to drink?
Primary fermentation for this stout takes 7-10 days when held at a steady 65-68°F for standard ale yeast. After primary, plan for 2-3 additional weeks of conditioning in bottles or a keg to let roasted notes mellow and lactose integrate fully. It’s drinkable at 3 weeks total, but gets smoother and more balanced if you can wait 4-5 weeks.
11.Can I add extra coffee or chocolate to this recipe without ruining it?
Absolutely, as long as you add them at the right stage to avoid off-flavors. For extra coffee depth, add 4-8 ounces of cold-brewed coffee during secondary fermentation; for richer chocolate notes, add 2-4 ounces of unsweetened crushed cacao nibs. Skip sweetened chocolate or flavored syrups, which can cause over-carbonation or cloying, artificial sweetness.
12.Why is this style considered low-bitterness compared to other stouts?
This milk stout uses far fewer bittering hops than most stout recipes, and the unfermentable lactose rounds out any subtle bitter notes from the small portion of roasted barley. Typical IBUs for this recipe land between 15-20, about as bitter as a light lager—nowhere near the 40+ IBUs you’ll find in bold, hoppy dry stouts or imperial stouts.
13.Can I adapt this all-grain recipe for extract brewing?
You can absolutely adapt this for extract brewing with zero loss of quality! Swap the 2-Row Pale Malt for 6 pounds of light liquid malt extract, then steep the roasted barley and 60 Lovibond crystal malt in 155°F water for 20 minutes before adding the extract and lactose for the boil. The final beer will be just as creamy and flavorful as the all-grain version.
14.What carbonation level works best for this milk stout?
Aim for a lower, softer carbonation level of 1.8-2.2 volumes of CO2 to preserve that signature velvety, smooth mouthfeel. Over-carbonating will make the beer feel fizzy and sharp, washing out the creamy lactose and soft roasted notes. If you’re bottle conditioning, use 3/4 cup of corn sugar per 5-gallon batch to hit that perfect, gentle fizz.
15.How long will bottled homemade milk stout stay fresh?
Stored in a cool, dark spot at 55-60°F, this milk stout will stay fresh and flavorful for up to 6 months. Unlike high-alcohol imperial stouts that improve with years of aging, this lower-ABV sweet stout is best enjoyed relatively fresh—bright coffee and subtle chocolate notes fade over time, and lactose sweetness can taste flat after 6 months.
16.Should I serve this milk stout ice cold like a light lager?
Skip the ice-cold serving temp you’d use for light lagers! This milk stout tastes best at 45-50°F, just slightly cool rather than frigid. Ice-cold temperatures mute the soft coffee, chocolate, and caramel notes, while letting the beer warm just a touch brings out the velvety lactose sweetness and makes all the roasted malt flavors pop.
17.Lactose is a sugar—why doesn’t it ferment into alcohol like regular table sugar?
Standard brewer’s yeast doesn’t produce the lactase enzyme needed to break down lactose, so it stays fully intact in the finished beer instead of converting to alcohol and CO2. That’s exactly why it adds consistent, smooth sweetness and velvety body without ramping up ABV or making the beer taste overly dry or boozy after fermentation wraps.

Comments (12)

3 days ago

OMG, I’ve been nervous to try my first stout brew because I thought I’d mess up the mouthfeel, but this recipe was so straightforward! The active time really was only 2 hours like it says, and after 25 days of conditioning it came out perfectly creamy, just the right amount of sweet without being cloying. Brought a growler to our weekend potluck and everyone was begging for the recipe. Total game changer for my home brew setup!

2 days ago

Wait, did you do the secondary fermentation step the recipe mentions? I skipped it on my first batch and it was a little flat, wondering if that was my mistake.

yesterday

So glad it was a hit at your potluck! @HoppyHiker88 secondary fermentation is key for that smooth carbonation and depth of flavor—don’t skip it if you can, even if it adds a couple extra days to the process!

1 week ago

My husband is obsessed with craft stouts so I surprised him by brewing this for his birthday! I’m a total beginner to home brewing and was worried the medium difficulty rating meant I’d flop, but the step by step instructions were so easy to follow. He said it tastes better than the $12 a four pack stuff we buy at the liquor store. Will absolutely be making this again!

5 days ago

Quick question—can I swap the lactose for a non-dairy alternative? My roommate is super lactose intolerant and I don’t want to make a batch he can’t try. I’ve seen lactose-free brewing sugars online but wasn’t sure if that would throw off the sweet profile.

3 days ago

Great question! You can absolutely use a non-dairy lactose alternative designed for brewing—just make sure you match the sugar weight exactly to keep that signature sweet, smooth mouthfeel. I’ve tested it with a plant-based brewing sweetener and it turned out great, no off flavors at all!

2 weeks ago

SO good. I’ve brewed probably 12 different beer recipes over the last two years and this milk stout is easily top 3. The roast level on the grain bill is perfect, no burnt aftertaste that I’ve gotten from other stout recipes I’ve tried. Already got my grains prepped for a second batch this weekend.

1 week ago

Tried this last month and it turned out great, but mine came out a little darker than the photo shows? Did I over-steep the roasted barley? It still tasted amazing, just wondering for my next batch so I can nail the look too.

5 days ago

I did the same thing my first go! Turned out I left the grains in the mash 15 minutes longer than the recipe said, cut the time back on batch two and it was the perfect deep brown color, no extra bitter bite either.

3 days ago

@BrewDadRon is exactly right! Over-steeping the roasted grains can lead to a deeper color and slightly more bitter, astringent flavor. Stick to the steep time listed and make sure your water temp doesn’t creep above 155F during the mash for best results.

1 week ago

Wait, the total time says 25 days—do I really have to wait that long to drink it? I’m so impatient after bottling, I cracked one open after a week and it was super bubbly and kinda yeasty tasting lmao.

5 days ago

Trust me, wait the full 25 days! I did the exact same thing on my first batch, thought I ruined it, but waited the rest of the time and the yeast settled right out, the flavors mellowed so much. It’s worth the wait I promise.

3 days ago

Brought a keg of this to our neighborhood block party last weekend and it was the first keg to kick! People were going back for third and fourth pours, I had at least 6 neighbors ask for the recipe. The little hint of chocolate and coffee flavor makes it so approachable even for people who don’t usually drink dark beer. 10/10.

5 days ago

Has anyone tried adapting this to be gluten free? I have celiac and miss a good creamy stout so bad, would love to adjust the grain bill if possible.

2 days ago

I’m actually testing a gluten-free version of this recipe right now using a base of gluten-free pale malt and a touch of roasted buckwheat for that classic stout depth! I’ll be posting the adapted version to the site in the next couple weeks, so stay tuned.

yesterday

My buddies and I do a brew day every other Sunday and we picked this recipe for last weekend’s session. The 2 hour active time was perfect—we were done in time to grill burgers and watch the game while the wort cooled. Tasted the sample pre-bottling and it already smelled incredible, can’t wait to try the finished product in a few weeks!

2 hours ago

How did your OG reading compare to what the recipe lists? My first batch hit the gravity exactly and it turned out perfect, just curious!

30 minutes ago

Love that you made brew day a group activity! @BackyardBrewTim as long as you hit within 10 points of the listed OG, you’ll be in great shape. Make sure to store those bottles in a cool, dark spot while they condition—no hot garages, that’ll throw off the carbonation and lead to off flavors. Can’t wait to hear how it turns out for you!

2 weeks ago

I added a tiny bit of vanilla bean to the secondary ferment on my batch and OH MY GOODNESS it took it to the next level. Tastes like a chocolate covered vanilla coffee candy, I’m obsessed. Would that mess with the shelf life at all? I wanna save a couple bottles for a holiday party in a few months.

1 week ago

Vanilla bean is such a good add-in, I love that tweak! As long as you sanitized the vanilla bean before adding it to the secondary, the shelf life won’t be impacted at all—those bottles will keep great for 6+ months stored in a cool, dark place. Enjoy the holiday party pours!

30 minutes ago

I was so intimidated by home brewing because I thought I needed a ton of fancy equipment, but I was able to make this with the basic starter kit my roommate got me for Christmas. It turned out so rich and smooth, my whole family loved it when I brought bottles home for Thanksgiving dinner. Already browsing more of your brew recipes to try next!

5 minutes ago

I usually hate super hoppy, bitter beers so this sweet stout is right up my alley! It’s smooth, sweet, has that nice roasted flavor without the bitter aftertaste I get from IPAs and even some other stouts. My only note is I wish it had a little more coffee flavor, might add a cold brew shot to the next batch.

just now

I did cold brew in my last batch! Added 4 oz of cold steeped coffee right before bottling and it was chef’s kiss, no bitter coffee bite, just that nice roasty coffee note you’re looking for. Highly recommend!