I Audited Herbivore Botanicals Against AI Shopping Agents. A $50M Clean Beauty Brand. Zero Recommendations.
We audited Herbivore Botanicals, a $50M clean beauty brand stocked at Sephora and Ulta. They surfaced on 0 out of 15 AI shopping queries. But the real finding is bigger: clean beauty has no AI consensus. Every platform recommended completely different brands. The category is wide open.
Executive Summary
- Brand: Herbivore Botanicals. Clean, plant-powered skincare and bodycare brand founded in 2011 in Seattle. On track for $22M+ annual revenue. Stocked at Sephora, Ulta Beauty (850+ stores since Dec 2025), Nordstrom, Amazon, Space NK. 534K Instagram followers.
- AI visibility score: 0/15 queries surfaced the brand.
- The pattern: Not a single AI platform recommended Herbivore on any query. Not for facial oils. Not for bakuchiol serums. Not for exfoliators. Not for vegan body products. But the bigger finding is what did appear: every platform recommended a completely different set of brands. There is no CeraVe of clean beauty. The category has no AI consensus at all.
- Key finding: Herbivore's December 2025 replatform appears to have wiped their data layer clean. No JSON-LD structured data on product pages. Every product tagged only "New Website." Product descriptions are 2-3 sentences of marketing copy with no ingredients, no usage instructions, no skin type guidance. The rich data that makes a product AI-readable was either lost in migration or never rebuilt.
- Root cause: Three compounding problems. First, the Shopify body_html descriptions contain 2-3 sentences of brand copy per product, with no full ingredient lists, no concentrations, no usage instructions, and no skin type suitability. Second, no JSON-LD Product schema was found on any product page, which means AI agents cannot see price, availability, or review data in structured form. Third, every product tag was reset to "New Website" during the December 2025 replatform, eliminating all classification data.
- Fix complexity: Medium. Unlike Dr Sam's where the data exists in the wrong field, Herbivore needs to rebuild its data layer from scratch. But the product information exists on the rendered pages (loaded via JavaScript). It needs to be moved into the crawlable data fields.
The brand
Herbivore Botanicals was founded in 2011 by Julia Wills and Alex Kummerow in Seattle, Washington. The brand grew from a personal search for natural products to help with eczema into one of the most recognisable names in clean beauty during the 2010s. The range spans facial oils, serums, face masks, moisturisers, body scrubs, body oils, bath soaks, and mists, organised around a "Plant-Powered, Clinically-Effective Skincare" philosophy.
The brand reported $50M in sales (2019), raised a $15M Series A from Silas Capital, and hired a new CEO (Britany LeBlanc, ex-Supergoop CMO) in 2024 to lead a brand refresh. In December 2025, Herbivore launched a 15-piece bodycare collection exclusively through Ulta Beauty across 850+ stores, projecting 100% year-over-year growth for 2026. They are 100% vegan, Leaping Bunny and PETA certified cruelty-free, with iconic product names: Phoenix, Lapis, Bakuchiol, Moon Fruit, Emerald.
I selected Herbivore because skincare is one of the most query-dense categories for AI shopping agents. Every product maps to specific conversational questions. A well-known clean beauty brand with Sephora and Ulta distribution should be well-positioned for AI visibility.
They were not.
The test
I ran 5 queries across ChatGPT, Gemini, and Copilot. 15 tests total.
The queries:
- "What's a good natural facial oil for glowing skin?"
- "Can you recommend a bakuchiol serum as a retinol alternative?"
- "What's a good AHA exfoliating mask for dull skin?"
- "I need a gentle exfoliator with natural ingredients. Suggestions?"
- "What's a good body oil that's vegan and cruelty-free?"
The results
Herbivore surfaced on 0 out of 15 tests. Zero on ChatGPT. Zero on Gemini. Zero on Copilot.
But the results revealed something more interesting than the score.
Query 1 (natural facial oil): 0 out of 3. ChatGPT recommended Dr. Organic, The Jojoba, Benecos, and Rituals. Gemini recommended True Botanicals, Pai Skincare, Drunk Elephant, Kora Organics, and Trilogy. Copilot recommended Strivectin, Clarins, Sunday Riley, and BYOMA. Three platforms. Three completely different brand sets. Zero overlap between ChatGPT and Copilot.
Query 2 (bakuchiol serum): 0 out of 3. ChatGPT recommended SBC, Esse, London Botanical, La Sponaria, and Oleus. Copilot recommended Biossance, The Amazing Kind, The Inkey, and EQQUALBERRY. Gemini refused to answer, treating a bakuchiol query as a safety concern. Herbivore literally sells a product called BAKUCHIOL Dual-Retinol Alternative Face Serum. It was invisible.
Query 3 (AHA exfoliating mask): 0 out of 3. ChatGPT recommended L'Oreal, Dr Sebagh, The Conscious, and Expert Lab. Gemini recommended The Ordinary, Drunk Elephant, and Ren Clean. Copilot recommended The Ordinary, Paula's Choice, Naturium, and Kate Somerville. Gemini did mention "Herbivore" by name in passing, but not as a specific product recommendation.
Query 4 (gentle natural exfoliator): 0 out of 3. ChatGPT recommended Purita, Lavera, and Organic Shop. Gemini recommended Dermalogica, Tatcha, Tonymoly, Elemis, Summer Fridays, and Tata Harper. Copilot recommended Aveeno and Sioris. Again, zero overlap between platforms.
Query 5 (vegan cruelty-free body oil): 0 out of 3. ChatGPT recommended Natural Spa Factory, Benecos, and Dr Botanicals. Gemini recommended OSEA, The Ordinary, and Pattern Beauty. Copilot recommended BYOMA, Balance Me, and Evolve Beauty. Herbivore is 100% vegan and Leaping Bunny certified. The query describes their brand identity. They were not mentioned.
The bigger finding: clean beauty has no AI consensus
This is the most significant category-level finding in this audit programme.
In the Dr Sam's audit, CeraVe and La Roche-Posay dominated every generic skincare query across all three platforms. In the fashion audits, brands like Nudie Jeans and ASKET emerged as consistent winners. There were clear consensus brands that AI agents agreed on.
Clean beauty is different. There are no consensus brands.
ChatGPT recommended entirely obscure names: SBC, Oleus, Purita, Lavera, Natural Spa Factory, Benecos. These are not household names even within the clean beauty community. ChatGPT appears to draw from a different corpus for natural product queries, possibly smaller blogs, niche directories, or product databases featuring lesser-known brands.
Gemini recommended more recognisable indie brands: True Botanicals, Pai Skincare, Drunk Elephant, Kora Organics, Tatcha, Dermalogica, Tata Harper. These are editorial-grade clean beauty brands that appear in Vogue, Allure, and Byrdie roundups. Gemini appears to draw more heavily from mainstream beauty editorial.
Copilot recommended a third distinct set: Biossance, Sunday Riley, Clarins, BYOMA, Paula's Choice, Kate Somerville, Balance Me, Evolve Beauty. A mix of prestige and affordable clean brands with no overlap with ChatGPT's list.
The only brand that appeared across multiple platforms and queries was The Ordinary. Their advantage is structural: their product naming convention puts the ingredient and concentration directly in the product name. "Niacinamide 10% + Zinc 1%" is the most machine-readable product name possible. The product name IS the structured data.
For every other clean beauty brand, the category is pre-consensus. This makes it both harder to predict and easier to win.
Why this is happening
I checked product pages via both the live site and the Shopify JSON API. Three problems compounded into a data blackout.
1. The December 2025 replatform wiped the data layer. Every product in the Shopify JSON API has only the tag "New Website." Product types are limited to "Skincare" or "Bodycare." No skin concern tags. No ingredient tags. No certification tags. This is almost certainly a migration gap from the December 2025 replatform and Ulta launch. The old classification system was lost and never rebuilt.
2. The body_html descriptions are marketing copy, not product information. The PHOENIX Facial Oil: "Nourish and renew your complexion with PHOENIX, an intensely moisturizing facial oil that is clinically shown to support long-lasting moisture retention." The BAKUCHIOL Serum: "Smooth and firm the appearance of skin with this lightweight treatment designed to be used in your nightly restorative skincare ritual." Well-written. But an AI agent cannot extract the full ingredients, the usage instructions, the skin type suitability, or the bakuchiol concentration from these descriptions. The rendered pages likely contain all of this information, loaded via JavaScript. But the body_html field, the data that feeds crawlers and AI agents, contains only the brief marketing copy.
3. No JSON-LD structured data on product pages. No Product schema was found on the pages tested. Shopify themes typically include default Product JSON-LD via the {{ product | structured_data }} Liquid filter. The Horizon theme or the replatform appears to have dropped it. AI agents cannot see price, availability, review scores, or even the brand name in structured form.
The review invisibility problem: Herbivore uses Okendo for on-site reviews. Phoenix has 384 reviews at 4.8/5. Bakuchiol Dual has 102 reviews at 4.8/5. These are strong signals. But Okendo renders entirely via JavaScript. No crawlers can see them. No aggregateRating in the structured data (because there is no structured data). The reviews exist for human visitors only.
The Gemini guardrail problem (again): Gemini refused to answer the bakuchiol query, treating a plant-based ingredient recommendation as a safety concern. This is the same pattern from the Dr Sam's audit. Active ingredient queries, even for non-prescription botanicals, trigger Gemini's caution mode. For a brand whose range centres on named botanical actives, this structurally reduces their addressable AI surface.
The competitor contrast
The fragmentation across platforms reveals something about how each AI agent builds its clean beauty knowledge:
ChatGPT pulls from a long-tail corpus of niche product databases and smaller beauty blogs. Its recommendations for clean beauty are obscure, with brands many consumers would not recognise. This suggests the clean beauty editorial space has not consolidated in ChatGPT's training data the way generic skincare has.
Gemini pulls from mainstream beauty editorial. Vogue, Allure, Byrdie-level content. Its recommendations are familiar to anyone who reads beauty magazines. But it also has the tightest safety filters, refusing to recommend active-ingredient products.
Copilot sits between the two, recommending a mix of prestige and mass-market brands. Its source material appears to combine retail product databases with editorial content.
None of them agree. And none of them recommended Herbivore.
What Herbivore could do, in priority order
Phase 1 (1-2 days):
- Restore Product JSON-LD schema on all product pages. Shopify includes this by default, but the Horizon theme or the replatform dropped it. Reinstating JSON-LD gives AI agents machine-readable product names, prices, availability, and descriptions immediately. This is the single highest-impact fix.
- Expand the body_html descriptions to include full ingredients, usage instructions, and skin type suitability. The current descriptions are 2-3 sentences. For a $68-$88 skincare product, the description should answer: What are the full ingredients? How do I use this? What skin type is this for? How is this different from the other Herbivore facial oils?
- Re-tag all products with classification data. Every product needs tags for skin type, skin concern, product category, key ingredient, and certification. The current "New Website" tags provide zero classification value.
Phase 2 (3-5 days):
- Configure Okendo to inject aggregateRating into JSON-LD, or use a structured data app. Phoenix at 384 reviews and 4.8/5 is a strong signal that AI agents cannot currently see.
- Add product comparison content within product lines. Herbivore sells three+ facial oils (Phoenix, Lapis, Orchid, Emerald) and three+ bakuchiol serums (Bakuchiol, Moon Fruit, Bakuchiol Dual). The descriptions give no indication of how they differ.
- Add certifications to the data layer. Leaping Bunny, PETA certified, 100% vegan. These are highly queryable attributes that should appear in descriptions and structured data.
Phase 3 (2-3 weeks):
- Build ingredient-level content for AI citation. Bakuchiol is a trending ingredient that AI agents are frequently asked about. Product pages should explain what each hero ingredient does, in the crawlable description, not just in JavaScript-loaded expandable sections.
- Strengthen the Trustpilot profile. Only 8 reviews at 3.9/5 is negligible as an external signal.
- Leverage the Amazon storefront. Herbivore has an official Amazon brand store. Amazon listings typically have richer structured data. But only if the listings are well-maintained.
Close
Herbivore Botanicals is a $50M clean beauty brand with Sephora and Ulta distribution, 534K Instagram followers, and projected 100% growth for 2026. Their DTC site has no JSON-LD structured data, no product classification tags, and 2-3 sentence descriptions with no ingredients or usage instructions.
Zero AI recommendations across 15 tests.
But the Herbivore audit revealed something the individual score does not capture: clean beauty has no CeraVe. No default brand that every AI agent agrees on. The category is pre-consensus. ChatGPT, Gemini, and Copilot each recommended entirely different brands across every query.
This is both a warning and an opportunity. The warning: even a $50M brand with Sephora distribution can be invisible if its DTC data layer is empty. The opportunity: the first clean beauty brand to fill the data gap, rich structured data, product-level reviews in JSON-LD, editorial presence, could become the default AI recommendation for the entire category.
The replatform wiped the slate. Somebody needs to rebuild it.