Heat your olive oil in a large skillet over medium heat, then toss in the minced garlic and chopped onion. Let them cook for about 2 minutes until they're fragrant and just starting to soften. Add your fresh spinach and cook for another minute or two, stirring constantly until it wilts down completely.
Once the spinach is wilted, add in your drained and chopped artichoke hearts. Stir everything together and cook for another minute so the flavors start mingling. The spinach artichoke dip classic really comes together when these ingredients are warm and ready to combine with the creamy base.
In a separate bowl, beat together the softened cream cheese, sour cream, and mayonnaise until smooth. Use an electric mixer or just a wooden spoon if you're willing to put in some elbow grease. Make sure there aren't any lumps — you want this mixture completely creamy before you add anything else.
Fold in the grated Parmesan cheese, salt, black pepper, and lemon juice into your cream cheese mixture. Stir gently but thoroughly so the cheese distributes evenly throughout. This is where the dip gets that tangy depth that makes people ask what's in it.
Now combine your spinach-artichoke mixture with the creamy base, folding everything together until you don't see any streaks of either component. I always do this by hand with a spatula because it's faster than trying to use a mixer. You'll have this gorgeous green dip ready to go in less than five minutes.
Transfer everything into a baking dish (I use a 9-by-13-inch) and smooth it into an even layer. If you're making this ahead, you can cover it and refrigerate for up to 8 hours before baking — honestly, cold dip bakes more evenly anyway.
Bake at 375°F for 20-25 minutes until the top is golden and you see bubbling around the edges. Don't panic if it looks a little watery when you first take it out — it'll firm up as it cools for about 5 minutes. Serve it warm with your favorite crackers or veggies.