Prep your pan and oven. Preheat the oven to 325°F (163°C).
Line a 9x5-inch loaf pan with parchment, leaving an overhang for easy lift-out. Lightly grease the parchment and sides.
Whisk the dry ingredients. In a medium bowl, whisk almond flour, coconut flour, baking powder, baking soda, and salt until well combined. Break up any almond flour lumps with your fingers or a whisk.
Cream butter and sweetener. In a large bowl, beat the softened butter and sweetener with a hand mixer until light and fluffy, about 2-3 minutes.
This incorporates air and improves texture.
Add eggs one at a time. Beat in the eggs, one by one, mixing well after each addition. Scrape the bowl so everything blends evenly.
Flavor boosters. Mix in the vanilla, almond extract (if using), and lemon zest. The almond extract intensifies nuttiness without overwhelming the cake.
Alternate dry ingredients and milk. Add half the dry mixture, then half the almond milk.
Mix on low until just combined. Add the remaining dry mixture and milk, mixing gently until you have a thick, smooth batter. Don’t overmix.
Fill the pan. Scrape the batter into the lined loaf pan.
Smooth the top with a spatula and lightly tap the pan on the counter to release big air pockets.
Bake low and slow. Bake for 45-60 minutes at 325°F. Start checking around 45 minutes. The cake is done when the top is golden, the center springs back lightly, and a toothpick comes out clean or with a few moist crumbs.
If browning too quickly, tent with foil.
Cool properly. Let the cake cool in the pan for 15 minutes. Use the parchment to lift it out, then cool completely on a wire rack before slicing. This helps set the crumb and prevents crumbling.
Slice and serve. Use a sharp, serrated knife to make clean slices.
Serve plain, with fresh berries, or a dollop of lightly sweetened whipped cream.