Preheat and prep: Heat the oven to 375°F (190°C).
Lightly grease a 9x13-inch baking dish.
Cook the pasta: Bring a large pot of salted water to a boil. Add ziti and cook until very al dente—about 2 minutes less than package instructions. Drain and set aside.
Make the meat sauce: Heat olive oil in a large skillet over medium.
Add onion with a pinch of salt and cook 3–4 minutes until softened. Stir in garlic for 30 seconds. Add ground turkey, breaking it up, and cook until browned.
Season with Italian seasoning, pepper, and red pepper flakes.
Add tomatoes: Stir in crushed tomatoes and tomato paste. Simmer 5–7 minutes until slightly thickened. Taste and adjust salt and pepper.
Fold in baby spinach until wilted.
Mix the ricotta layer: In a bowl, combine ricotta, Greek yogurt, Parmesan, a pinch of salt, and black pepper. Stir until smooth. Add chopped basil or parsley if using.
Combine pasta and sauce: In a large bowl, toss the cooked ziti with two-thirds of the meat and spinach sauce.
This helps coat the pasta evenly and prevents dry patches.
Layer it up: Spread half the sauced pasta into the baking dish. Dollop and gently spread half the ricotta mixture over the pasta. Sprinkle with one-third of the mozzarella.
Repeat with remaining pasta, then the rest of the ricotta. Pour the last third of sauce over the top and finish with the remaining mozzarella and a spoonful of Parmesan.
Bake: Cover loosely with foil (tent it so cheese doesn’t stick). Bake 20 minutes.
Remove foil and bake another 10–12 minutes until the top is bubbly and lightly browned.
Rest and serve: Let it sit 10 minutes so it sets and slices cleanly. Sprinkle extra Parmesan and herbs if you like, then serve.