Prep the oven and pan: Preheat the oven to 375°F (190°C). Lightly oil a 9x13-inch baking dish or similar casserole dish.
Cook the noodles (if not using no-boil): Boil lasagna noodles in salted water until just shy of al dente.
Drain and lay flat on a lightly oiled sheet to keep them from sticking.
Prepare the spinach: If using frozen spinach, thaw fully and squeeze out as much water as possible. Press it in a sieve or wring it in a clean towel to remove excess moisture.
Sauté the aromatics: Warm olive oil in a skillet over medium heat. Add garlic and cook for 30–60 seconds until fragrant, not browned.
Stir in the spinach, a pinch of salt, pepper, Italian seasoning, and red pepper flakes. Cook 2–3 minutes to drive off moisture, then set aside to cool slightly.
Mix the ricotta layer: In a bowl, combine ricotta, 1 cup shredded mozzarella, Parmesan, egg (if using), and a pinch of salt and pepper. Fold in the cooked spinach mixture until evenly distributed.
Layer the lasagna: Spread a thin layer of marinara on the bottom of the baking dish.
Add a layer of noodles. Dollop and spread one-third of the ricotta-spinach mixture over the noodles. Spoon over marinara to lightly cover, then sprinkle with a handful of mozzarella.
Repeat for 2 more layers.
Finish the top: Place a final layer of noodles, cover with remaining marinara, and scatter the last of the mozzarella. Add a dusting of Parmesan.
Cover and bake: Cover the dish tightly with foil (tent it slightly to avoid sticking). Bake for 25–30 minutes.
Uncover and brown: Remove foil and bake another 10–15 minutes, until the top is bubbly and golden.
If you like more color, broil for 1–2 minutes, watching closely.
Rest and serve: Let the lasagna rest for 10–15 minutes before slicing. Garnish with chopped basil or parsley, and serve with extra Parmesan.