Prep the pan and oven. Heat the oven to 350°F (175°C).
Grease a 9-inch (23 cm) round cake pan and line the bottom with parchment. Lightly dust the sides with flour to help the cake release.
Whisk the wet ingredients. In a large bowl, whisk ricotta and sugar until smooth and creamy, about 1 minute. Add olive oil (or butter), eggs, vanilla, and lemon zest.
Whisk until fully combined. If using lemon juice, whisk it in now.
Combine the dry ingredients. In a separate bowl, stir together semolina, all-purpose flour, baking powder, baking soda, and salt. Break up any lumps with a fork or whisk.
Bring the batter together. Add the dry mixture to the wet mixture.
Stir gently with a spatula until no dry patches remain. The batter will be thick but spreadable. If adding berries or chocolate chips, fold them in now.
Fill the pan. Scrape the batter into the prepared pan.
Smooth the top with a spatula, nudging it gently to the edges for even baking.
Bake. Place on the center rack and bake for 30–38 minutes, until the top is golden and a toothpick inserted near the center comes out with a few moist crumbs. The edges will pull slightly from the pan.
Cool. Let the cake cool in the pan for 10 minutes, then run a thin knife around the edge. Invert onto a rack, peel off the parchment, and flip right-side up.
Cool to room temperature.
Finish and serve. Dust with powdered sugar or serve plain. This cake is lovely as is, but it also pairs well with a spoonful of yogurt, whipped cream, or fresh berries.