Prep the pan and oven: Preheat your oven to 350°F (175°C). Grease a mini muffin tin (24-cup) or line with silicone liners. You can also make 10–12 standard muffins; just adjust bake time.
Drain the zucchini: Place the grated zucchini in a clean kitchen towel or paper towels and squeeze firmly to remove as much liquid as possible. This step keeps the muffins from turning soggy.
Mix the dry ingredients: In a large bowl, whisk together the all-purpose flour, whole wheat flour, baking powder, baking soda, garlic powder, onion powder, and salt.
Mix the wet ingredients: In a separate bowl, whisk the eggs, yogurt, milk, and oil (or butter) until smooth.
Combine: Pour the wet ingredients into the dry.
Stir gently until just combined. Fold in the squeezed zucchini, chopped spinach, cheddar, and Parmesan (if using). Do not overmix—a few streaks of flour are fine.
Fill the cups: Spoon the batter into the prepared muffin cups. Fill almost to the top for mini muffins, or about 3/4 full for standard size.
Bake: Bake mini muffins for 13–16 minutes or standard muffins for 18–22 minutes, until the tops are set and a toothpick comes out clean or with a few moist crumbs.
Cool: Let muffins cool in the pan for 5 minutes, then transfer to a wire rack.
Serve warm or at room temperature.