A bowl of pasta with green basil pesto

Is Pesto Vegetarian? Yes, but Mind the Cheese

Mostly yes, and first, let's bust a myth: authentic pesto has no anchovy. Real pesto alla Genovese is just basil, olive oil, pine nuts, garlic, salt and cheese (Parmigiano-Reggiano and Pecorino). There's no fish in it. So pesto is vegetarian-friendly, with one catch, which is the cheese.

The one catch: the cheese

Pesto's Parmigiano-Reggiano and Pecorino are made with animal rennet, so a strict vegetarian would treat classic pesto as not-quite-vegetarian for that reason, not because of anchovy. See is parmesan vegetarian?. A cheese-free or vegetarian-rennet pesto solves it; many fresh and jarred pestos vary, so check.

Where the anchovy fear comes from

Anchovy does hide in other Italian sauces, most famously pasta alla puttanesca and a traditional Caesar dressing, which is probably why people worry about pesto. But pesto itself is anchovy-free. Our vegetarian food in Rome guide lists the sauces where anchovy really does hide.

FAQ

Does pesto have anchovy? No, authentic pesto alla Genovese has no anchovy. It's basil, olive oil, pine nuts, garlic and cheese.

So is pesto vegetarian? Yes, apart from one thing: the Parmigiano-Reggiano and Pecorino in it are animal-rennet cheeses, which strict vegetarians avoid. A cheese-free or vegetarian-cheese pesto is fully vegetarian.

Which Italian sauces actually contain anchovy? Pasta alla puttanesca and traditional Caesar dressing are the classic ones, the anchovy dissolves in and isn't visible, so ask about tomato sauces and dressings.

Is pesto vegan? Not as made, it contains cheese. A cheese-free version (or one with vegan cheese) would be vegan.


A note on how we talk about food: this guide is general traveler information about classic recipes, not a ruling on any specific kitchen. Recipes vary from place to place, always confirm directly with the venue.

<!-- CTA: the $9 itinerary call-to-action is injected automatically by the guides surface (top + bottom). Do NOT hand-write an inline CTA in the body, it would double up. -->