Photo:Johnny Miller

Makes one 9-inch loaf or four 6-inch loaves


  • 3 Tbsp. butter, plus more for greasing
  • 2 medium onions, chopped
  • ½ pound bacon (about 10 slices)
  • 2 cups all-purpose flour
  • 1 Tbsp. baking powder
  • 2 tsp. kosher salt
  • ½ tsp. ground black pepper
  • 1 cup whole milk
  • ⅓ cup extra-virgin olive oil
  • 1 egg
  • ½ pound Gruyère cheese, shredded (about 2 cups)


Active time: 30 minutes
Total time: 1½ hours

Preheat oven to 350°. Grease a 9- x 5-inch loaf pan (or four 6- x 2½-inch mini pans) with butter. In a large skillet, melt butter over medium heat. Add onions and cook, stirring occasionally, until deep golden brown and caramelized, about 30 minutes; set aside to let cool. Meanwhile, in a second large skillet, cook bacon over medium heat, turning occasionally, until crisp, about 10 minutes. Transfer to a paper-towel-lined plate, let cool, and then chop.

In a large bowl, whisk together flour, baking powder, salt, and pepper. In a medium bowl, whisk together milk, oil, and egg. Slowly pour milk mixture into flour mixture, stirring just until combined. Gently fold in cheese and reserved onions and bacon just until combined, and then transfer to prepared pan. Bake until golden brown and a toothpick inserted in the center comes out clean, about 45 minutes (or 25 minutes for the smaller loaves). Set aside to let cool 15 minutes, then remove from pan to cool completely.