Keto Chocolate Espresso Zucchini Bread (moist, bold, low carb)

You know that moment when you want cake for breakfast but you also want your jeans to button. This loaf is that friend who whispers, “we can do both.” It smells like a café, tastes like a brownie, and sneaks in vegetables without waving a flag about it. The batter comes together in one bowl, the crumbs are soft and fudgy, and the coffee note makes the chocolate taste louder. Pinterest folks love a good slice shot, but the real win is how simple this is to bake on a random Tuesday.

I first made this for a friend who swore she “doesn’t like zucchini in desserts.” She had two slices while the loaf was still warm. I sent her home with half, and she texted me at 11pm that the rest somehow vanished. That’s the vibe we’re going for—cozy, not fussy, and still low-carb.

Below you’ll find everything you need: the recipe, the why behind each step (because that’s where the magic hides), swaps, storage, and small tricks that keep your loaf from sinking or going wet in the middle. No fancy moves. No drama. Just really good chocolate bread with a coffee kick.

What makes this loaf good (and friendly to carbs)

  • Almond flour gives body without gluten and keeps the loaf tender.
  • Coconut flour adds structure and soaks up moisture from the zucchini, so the crumb isn’t soggy.
  • Dutch-process cocoa for deep chocolate flavor. Natural cocoa works, but Dutch gives that bakery color and taste.
  • Espresso wakes up the chocolate. You can use brewed espresso, strong coffee, or instant espresso powder.
  • Erythritol/monk fruit blend sweetens without sugar. Clean taste, no syrupy aftertaste.
  • Avocado oil or melted butter for moisture and a soft bite.
  • Plenty of zucchini (well drained) for a plush crumb without tasting like, well, zucchini.

Ingredients (9×5 inch loaf pan)

Dry:

  • 2 cups (200 g) fine almond flour
  • 3 tbsp (21 g) coconut flour
  • 1/2 cup (40 g) Dutch-process cocoa powder, sifted if lumpy
  • 1 cup (190–200 g) granulated erythritol or erythritol/monk fruit blend
  • 2 tsp baking powder (aluminum-free)
  • 1/2 tsp baking soda
  • 1/2 tsp fine sea salt
  • 1–2 tsp instant espresso powder (optional but recommended) — use 2 tsp if you like a stronger coffee note

Wet:

  • 3 large eggs, room temp
  • 1/3 cup (80 ml) avocado oil or melted unsalted butter, slightly cooled
  • 1/2 cup (120 ml) brewed espresso or very strong coffee, cooled to room temp
  • 1 tsp pure vanilla extract

Zucchini & mix-ins:

  • 1 1/2 cups (about 170–190 g) finely grated zucchini, firmly squeezed dry
  • 1/2 cup (85 g) sugar-free chocolate chips or chopped 85–90% dark chocolate (optional, but… do it)
  • 1 tbsp cocoa nibs for top (optional, adds crunch)

Pan prep:

  • Butter or oil for greasing, plus parchment sling

Note on sweetener: if your blend is much sweeter than sugar (like pure monk fruit), reduce to taste. The 1 cup measure here assumes a 1:1 sugar replacement such as erythritol/monk fruit 1:1.

Tools

  • Mixing bowl and whisk (or hand mixer on low)
  • Box grater or food processor for zucchini
  • Fine mesh strainer or clean kitchen towel for squeezing
  • 9×5 inch loaf pan
  • Parchment paper
  • Cooling rack
  • Toothpick or thin skewer

Step-by-step (Making This Keto Chocolate Espresso Zucchini Bread)

  • Heat the oven to 350°F (175°C). Line your loaf pan with a parchment sling and lightly grease the sides. The sling helps you lift the loaf without tears.
  • Grate and drain the zucchini. Use the small holes of a box grater. Pile the shreds into a towel and squeeze hard—twist like you mean it. Keep going until it feels barely damp. This is the most important move. Too much water = gummy middle.
  • Whisk the dry stuff. In a large bowl, combine almond flour, coconut flour, cocoa, erythritol, baking powder, baking soda, salt, and espresso powder. Break up any cocoa lumps with your fingers. A smooth dry mix means a smooth batter later.
  • Mix the wet stuff. In another bowl (or a big measuring cup), whisk eggs, oil (or butter), espresso/coffee, and vanilla. It should look like chocolate milk, kind of.
  • Batter time. Pour the wet into the dry. Stir with a spatula until just combined. You want it fully moistened but not overmixed.
  • Fold in the zucchini and chocolate chips. The batter will look thick at first then loosen slightly as the zucchini distributes. Still, it should be scoopable, not runny.
  • Fill the pan. Scrape the batter in, smooth the top, and tap the pan once on the counter to release air bubbles. Sprinkle cocoa nibs on top if using.
  • Bake for 50–60 minutes. Check at 48. You’re hunting for a mostly clean toothpick: a few moist crumbs are fine, but not wet batter. The top should crack a little and feel set.
  • Cool like a pro. Let the loaf sit in the pan for 15 minutes. Lift it out by the parchment and cool fully on a rack—at least 1 hour. If you cut too soon, steam escapes and the crumb can smear.
  • Slice and serve. Use a sharp knife and wipe the blade between cuts. Warm slices taste like a chocolate hug.

Why each step matters (quick science in plain words)

  • Squeezing zucchini: Zucchini is 94% water. If you don’t squeeze, that water floods the batter and blocks baking powder from lifting the crumb. You get a dense line near the base or a soggy center. Hard squeeze = tall loaf.
  • Coconut flour + almond flour: Coconut flour is thirsty. A small spoonful tightens and lightens almond flour batters. This combo keeps the loaf sturdy without starches.
  • Espresso with chocolate: Coffee doesn’t make the loaf taste like a latte. It deepens chocolate, like turning up the bass. If you want zero coffee flavor, stick to 1 tsp instant espresso powder rather than brewed espresso.
  • Room temperature eggs: Cold eggs can shock the fat and make the batter seize. Room temp gives you an even mix and better rise.
  • Cool down: Almond flour bakes stay tender while hot. Cooling sets the structure so slices hold clean edges.

Flavor options (still keto-friendly)

  • Mocha Chip: Add 1 extra tsp espresso powder and 1/2 cup sugar-free chocolate chips.
  • Walnut Crunch: Fold in 1/2 cup chopped walnuts and a pinch of cinnamon.
  • Orange Mocha: Add 1 tsp orange zest to the wet mix. Chocolate + orange + coffee plays very nice.
  • Peppermint Mocha (holiday): Add 1/2 tsp peppermint extract and use dark chocolate chunks. Keep a light hand with mint so it doesn’t go toothpaste.
  • Spicy Mayan: 1/4 tsp cayenne + 1/2 tsp cinnamon for a warm finish.

If you don’t have espresso

  • Use strong brewed coffee, cooled.
  • Or stir 1–2 tsp instant espresso powder into 1/2 cup hot water, cool.
  • Or skip brewed coffee and use 2 tsp espresso powder directly in the dry mix, then replace the 1/2 cup liquid with unsweetened almond milk. Works fine.

Make it dairy-free

  • Choose avocado oil instead of butter.
  • Pick chocolate chips that are dairy-free and sugar-free.
  • Grease the pan with oil, not butter.

Make it nut-free (still low carb)

Nut-free and keto is tricky, but here’s a version that people like:

  • Use 1 cup fine sunflower seed flour in place of almond flour.
  • Keep the 3 tbsp coconut flour.
  • Add 1 tbsp ground flaxseed for structure.
  • Watch the oven a few minutes earlier; seed flour can brown faster.

Common mistakes and quick fixes

  • Loaf fell in the middle: Usually underbaked or wet zucchini. Bake longer—tent with foil at 45 minutes if the top gets too dark. Next time, squeeze zucchini harder.
  • Bitter taste: Old baking powder or too much espresso powder. Use fresh leavening. Stick to Dutch cocoa, which is less sharp.
  • Grainy texture: Some sugar alcohols cool on the tongue. Let the loaf rest overnight; sweetness mellows and texture smooths out. You can also use a blend that includes a little allulose for a softer feel (note: allulose browns faster).
  • Dry loaf: Overbaked. Pull at moist crumbs, not bone-dry sticks. Also check your oven temp with a thermometer—many run hot.
  • Sticks to the pan: Use parchment sling and grease the sides. Almond flour batters cling more than wheat ones.

Storage and freezing

  • Counter: Wrap the cooled loaf and keep at room temp for 2 days.
  • Fridge: Slices keep 5–6 days in an airtight box with parchment between them.
  • Freezer: Slice, wrap each slice, then bag. Freeze up to 2 months. Thaw on the counter or toast straight from frozen. I like to warm a frozen slice in a skillet with a dab of butter—edges go crisp, middle stays soft.

Serving ideas

  • Warm slice with a pat of butter and flaky salt.
  • Dollop of unsweetened whipped cream and a few raspberries.
  • Spread with sugar-free hazelnut spread for a double-chocolate breakfast that feels rebel but isn’t.
  • Mocha breakfast plate: a slice, a fried egg, and black coffee. Weekend sorted.
  • Dessert plate: slice, a spoon of mascarpone, and shaved dark chocolate.

Macros (estimate per slice, 12 slices)

  • Calories: ~210
  • Fat: ~16 g
  • Net carbs: ~4–5 g (total carbs ~11 g, fiber ~5–6 g, sugar alcohols ~2 g)
  • Protein: ~6 g

Numbers move a bit with the chocolate chips you pick and how hard you squeeze the zucchini. If you change sweeteners, run your own numbers.

Step photos in words (so you can picture it)

  • Batter: thick, glossy, and holds a soft peak when you lift the spatula.
  • Before baking: top is smooth, maybe dotted with a few chocolate chips.
  • Halfway: top domes and a tiny crack forms down the center.
  • Done: crust looks set and matte; a toothpick comes out with a crumb or two. Not wet.

Small tricks that make a big difference

  • Bloom the cocoa: If you have time, whisk cocoa with the hot espresso before cooling. The cocoa “opens up” and tastes richer. Let it cool fully before it hits the eggs.
  • Sift your cocoa: Clumps don’t mix well in almond flour batters.
  • Don’t overmix: Gluten-free mixes don’t need heavy beating. Stir until just combined, then stop.
  • Weigh if you can: Almond flour density varies a lot. A scale keeps it steady.
  • Rotate the pan at 40 minutes if your oven has hot spots.
  • Rest overnight: Flavor blooms by day two. I know, waiting is rude, but the slice tomorrow might be even better.

One-bowl version (fewer dishes)

You can mix this whole thing in a single large bowl:

  • Whisk eggs, oil, espresso, vanilla.
  • Add sweetener; whisk again to dissolve a bit.
  • Dump in almond flour, coconut flour, cocoa, baking powder, baking soda, salt, espresso powder. Fold with a spatula.
  • Fold in zucchini and chips.
  • Bake as written.

Troubleshooting soggy centers (the #1 complaint with zucchini bakes)

If the middle keeps going damp even with a longer bake:

  • Use the small grate on your box grater. Larger shreds hold more water.
  • Salt the shreds very lightly, wait 10 minutes, then squeeze. Salt pulls out extra water.
  • Add 1 extra tbsp coconut flour if your zucchini is super juicy. Stir in after the batter rests 2 minutes.
  • Check pan size: A smaller, taller pan will need longer bake. A 8.5×4.5 inch pan might take 5–10 extra minutes.
  • Thermometer check: Center should hit around 205–210°F (96–99°C). That’s a clean signal it’s baked through.

Ingredient swaps that still work

  • Oil: Melted coconut oil works; just warm your eggs to room temp so it doesn’t seize.
  • Sweetener: 50/50 erythritol + allulose gives softer crumbs and less cooling effect. Don’t go all allulose or it may brown too much.
  • Cocoa: Natural cocoa is fine; add 1 tsp vinegar to the wet mix to help the rise if using natural instead of Dutch.
  • Zucchini: Yellow squash is okay. Peel if you don’t want specks.
  • Vanilla: Almond extract (1/4 tsp) with vanilla makes the chocolate taste a bit like a cookie.

Bake it as muffins

Same batter, different pan.

  • Line a 12-cup muffin tin.
  • Fill cups 3/4 full.
  • Bake at 350°F (175°C) for 18–22 minutes, check at 16.
    Perfect for freezer snacks and lunch boxes.

Why this loaf fits a lower-carb day

You get the chocolate moment without the sugar crash. Fiber from almond and coconut flour plus fat from the oil keep you full, so one slice actually feels like something. Also, sneaky veg. Not shouting about wellness here, just saying it’s nice when breakfast helps instead of picking a fight with your blood sugar.

The story bite (optional read, but kinda fun)

I started testing coffee in chocolate bakes after a barista buddy handed me a double shot “for the batter.” I poured it into a cocoa mix on a dare and the kitchen smelled like a bakery married a café. Zucchini joined because my neighbor kept leaving baseball-bat-sized squashes on my porch like a veggie fairy godmother. Turns out the three play together like an old band. The coffee gives the chocolate a bass line, the zucchini keeps the crumb soft, and the almond flour lets you have a second slice without needing a nap.

Conclusion

Bake this once and you’ll have it on repeat. It works for brunch, a snack before the gym, road trips, midweek dessert, or that 3pm moment when the inbox stares back at you. The espresso makes the chocolate bold, the zucchini keeps it soft, and the low-carb swap-ins do their job quietly in the background. No one at my table ever guesses there’s no sugar in here, and frankly, I don’t rush to tell them.

If you try a twist—orange zest, walnuts, peppermint—write it on your printed card so future you remembers the winning moves. And if a neighbor leaves a mountain of zucchini on your porch, you already know what to bake.

Print

Keto Chocolate Espresso Zucchini Bread Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Moist keto chocolate espresso zucchini bread with a bold cocoa taste and a light coffee note. One bowl, low carb, and simple steps. Great fresh or frozen.

  • Author: Jane Summerfield
  • Prep Time: 15 minutes (plus squeezing zucchini)
  • Cook Time: 55 minutes (check 50–60)
  • Total Time: 1 hour 10 minutes
  • Yield: 1 loaf (about 12 slices) 1x
  • Category: Bread, Snack, Breakfast, Dessert
  • Method: Baking
  • Cuisine: American, Keto, Low-Carb
  • Diet: Gluten Free

Ingredients

Scale
  • 2 cups (200 g) fine almond flour

  • 3 tbsp (21 g) coconut flour

  • 1/2 cup (40 g) Dutch-process cocoa powder

  • 1 cup (190200 g) erythritol or erythritol/monk fruit 1:1

  • 2 tsp baking powder

  • 1/2 tsp baking soda

  • 1/2 tsp fine sea salt

  • 12 tsp instant espresso powder (optional)

  • 3 large eggs, room temp

  • 1/3 cup (80 ml) avocado oil or melted unsalted butter

  • 1/2 cup (120 ml) brewed espresso or strong coffee, cooled

  • 1 tsp vanilla extract

  • 1 1/2 cups (170190 g) finely grated zucchini, squeezed very dry

  • 1/2 cup (85 g) sugar-free chocolate chips or chopped very dark chocolate (optional)

  • Cocoa nibs for the top (optional)

Instructions

  1. Heat oven to 350°F (175°C). Line a 9×5 in loaf pan with a parchment sling and lightly grease the sides.

  2. Grate zucchini on the small holes. Place in a clean towel and squeeze hard until barely damp.

  3. In a large bowl whisk almond flour, coconut flour, cocoa, sweetener, baking powder, baking soda, salt, and espresso powder.

  4. In a second bowl whisk eggs, oil (or butter), cooled espresso, and vanilla.

  5. Pour wet into dry. Stir until just combined.

  6. Fold in squeezed zucchini and chocolate chips. Batter should be thick and scoopable.

  7. Spread in pan, smooth the top, and add cocoa nibs if using.

  8. Bake 50–60 minutes. A toothpick should come out with a few moist crumbs, not wet batter.

  9. Cool 15 minutes in pan. Lift out and cool on a rack for at least 1 hour before slicing.

Notes

  • Squeeze zucchini very well to avoid a soggy center.

  • If using natural cocoa, add 1 tsp vinegar to the wet mix to help the rise.

  • For muffins: bake at 350°F (175°C) for 18–22 minutes.

  • Storage: 2 days at room temp, 5–6 days chilled, 2 months frozen (slice first).

  • Dairy-free: use avocado oil and dairy-free chips.

  • Nut-free option: replace almond flour with 1 cup sunflower seed flour; keep the 3 tbsp coconut flour and add 1 tbsp ground flax.

Please note: The recipe or ingredients shown in the video might vary slightly from what’s listed here. Use the video as an illustration, but for the best results, you might want to stick to the recipe provided in this article.

Nutrition

  • Serving Size: 1 slice
  • Calories: 210 Sugar ≈ 1 g Sodium ≈ 170 mg Fat ≈ 16 g Saturated Fat ≈ 4 g Unsaturated Fat ≈ 11 g Trans Fat 0 g Carbohydrates ≈ 11 g Fiber ≈ 6 g Protein ≈ 6 g Cholesterol ≈ 45 mg

Did you make this recipe?

Share a photo and tag us — we can't wait to see what you've made!