I Audited a Harley Street Dermatologist's Brand Against AI Shopping Agents. 8,000 Reviews. Zero Recommendations.
We audited Dr Sam's, a Harley Street dermatologist's skincare brand with 8,000 five-star reviews and JSON-LD structured data. They surfaced on 0 out of 15 AI shopping queries. The widest gap between data infrastructure and actual visibility we've seen.
Executive Summary
- Brand: Dr Sam's. Dermatologist-founded skincare brand launched in 2018 by Dr Samantha Bunting (41 Harley Street, London). On track for $25M revenue. Shopify store with Klaviyo Reviews. Stocked at Sephora UK.
- AI visibility score: 0/15 queries surfaced the brand. The worst result possible.
- The pattern: Not a single AI platform recommended Dr Sam's on any query type. Not product-specific queries. Not ingredient queries. Not skin-type queries. CeraVe, La Roche-Posay, The Ordinary, and Neutrogena dominated every response across all three platforms.
- Key finding: Dr Sam's has the best data infrastructure of any brand in this audit set. JSON-LD Product schema with aggregateRating. 8,000+ on-site reviews all above 4.5 stars. GTINs on every product. Trustpilot 4.6/5. Reviews.co.uk 4.7/5 with 23,000+ product reviews. None of it translated into a single AI recommendation. The problem is not missing infrastructure. It is missing content in the infrastructure.
- Root cause: Every product description in the Shopify body_html is 2-3 sentences of poetic brand copy. Active ingredient names are listed (Niacinamide, Granactive Retinoid, Azelaic Acid, Bakuchiol) but without concentrations, full INCI lists, skin type guidance, or usage instructions. The rich data (full INCI lists, skin concern classifications, pregnancy safety flags, routine step groupings) exists in Shopify tags, a field that crawlers and AI agents do not read. The structured data tells AI agents the product exists and has good reviews. It does not tell them who it is for, how to use it, or what concentration the actives are at.
- Fix complexity: Low-medium. The data already exists. It is in the wrong place. Moving INCI lists and skin concern tags from Shopify tags into body_html descriptions is the single highest-impact fix.
The brand
Dr Sam's was launched in 2018 by Dr Samantha Bunting, a cosmetic dermatologist with a clinic at 41 Harley Street, London. The range is organised around a 4-step routine: cleanse, activate, hydrate, protect. Each serum uses an "Amplified Active" philosophy, combining multiple actives in a single formula.
The brand is on track for $25M in sales. Products sold out within two weeks of launching at Sephora UK. Over 200,000 Instagram followers. Triple-digit growth reported in 2024. Klaviyo Reviews powers on-site product reviews, feeding into JSON-LD aggregateRating. External reviews on Trustpilot (4.6/5, 641 reviews) and Reviews.co.uk (4.7/5, 23,172 product reviews).
I selected Dr Sam's as the first brand in a new beauty and skincare audit series. Skincare is one of the most query-dense product categories for AI shopping agents. Every product maps to specific conversational questions: "best retinol for sensitive skin," "good SPF under makeup," "azelaic acid for redness." A dermatologist-founded brand with strong reviews and structured data should be well-positioned.
They were not.
The test
I ran 5 queries across ChatGPT, Gemini, and Copilot. 15 tests total.
The queries:
- "What's a good retinol product for beginners with sensitive skin?"
- "Can you recommend a dermatologist-formulated cleanser for acne-prone skin?"
- "What's the best vitamin C serum under £40?"
- "I need an SPF moisturiser that works under makeup. Suggestions?"
- "What's a good azelaic acid serum for redness and uneven skin tone?"
The results
Dr Sam's surfaced on 0 out of 15 tests. Zero on ChatGPT. Zero on Gemini. Zero on Copilot.
Query 1 (retinol for sensitive skin): 0 out of 3. ChatGPT recommended INKEY, Neutrogena, Bondi, Dr. Althea, Nip + Fab, La Roche-Posay, Cocokind, and Versed. Copilot recommended CeraVe, Good Molecules, The Ordinary, MEDITHERAPY, and Hero Cosmetics. Gemini triggered a safety guardrail and refused to answer. Dr Sam's sells a 2% Granactive Retinoid serum with Niacinamide, Azelaic Acid, and Bakuchiol. 1,641 reviews at 4.79 stars. Invisible.
Query 2 (dermatologist-formulated cleanser): 0 out of 3. This query includes the word "dermatologist-formulated." Dr Sam's was founded by a practising cosmetic dermatologist. ChatGPT recommended La Roche-Posay, Australian Bodycare, Clearasil, and Clever Soap. Gemini recommended CeraVe, La Roche-Posay, INKEY, and PanOxyl. Copilot recommended CeraVe, Neutrogena, Neutriherbs, Etude, and DIME. The brand most literally matching this query was not considered by any platform.
Query 3 (vitamin C serum under £40): 0 out of 3. Dr Sam's Flawless Brightly serum contains Vitamin C (Ascorbyl Glucoside) and costs £50, so it is outside the price range. But the body_html description does not mention "Vitamin C" at all. It says "Azelaic Acid, Niacinamide, Vitamin C and Bakuchiol" only in passing. The Vitamin C ingredient is buried in a list, not positioned as a feature. All three platforms recommended brands that explicitly name Vitamin C in their product titles or descriptions.
Query 4 (SPF under makeup): 0 out of 3. Dr Sam's sells a Flawless Daily Sunscreen SPF 50 at £20 to £31, described as having "a soft-focus primer-like finish." This directly answers the query. But the body_html description leads with "A cosmetically elegant broad-spectrum dream that defies your preconceptions about sunscreen." ChatGPT recommended Nivea, Garnier, Aveeno, and E45. Copilot recommended Elemis, Ultra Violette, Simple, and Estee Lauder.
Query 5 (azelaic acid for redness): 0 out of 3. Dr Sam's Flawless Brightly is a 10% Azelaic Acid serum. The title says "10% Azelaic Acid." The body_html says "Azelaic Acid" without the concentration. ChatGPT recommended Purito, Good Molecules, Tirtir, BasicLab, and Eva Naturals. Copilot recommended Naturium, The Ordinary, Yooyan, Eva Naturals, and Anua. Gemini refused to answer, citing medical caution.
Why this is happening
I checked four product pages via both the live site and the Shopify JSON API. Three problems emerged.
1. The body_html descriptions are marketing copy, not product information. Every product description is 2-3 sentences of brand-voice writing. The Flawless Cleanser: "A truly uncomplicated, effective and elegant jelly cleanser that removes makeup and daily impurities." The Nightly Serum: "An Amplified Active — Niacinamide, Granactive Retinoid, Azelaic Acid, and Bakuchiol — to deliver that signature Grown-up Glow. It softens laughter lines, vacuums pores and makes the light love your skin." Beautiful writing. An AI agent cannot extract what skin type this is for, how to use it, what concentration the retinoid is, or what the full ingredient list contains.
2. The rich data is locked in Shopify tags. This is the most revealing finding. Dr Sam's has done significant taxonomic work. Full INCI ingredient lists are in the product tags (Allantoin, Aloe Barbadensis Leaf Juice, PEG-6 Caprylic/Capric Glycerides, and 15+ other ingredients per product). Skin concern classifications exist as tags (skin concern_Sensitive Skin, skin concern_Blemishes, skin concern_Rosacea). Routine step groupings exist as tags (bundle_Cleanse, bundle_Activate, bundle_Protect). At least one product has a Pregnancy tag indicating pregnancy safety. All of this data is invisible. Shopify tags are an internal field. Crawlers do not read them. AI agents do not consume them. The data exists. It is in a cupboard nobody opens.
3. Skincare is dominated by pharmacy-tier consensus brands. CeraVe and La Roche-Posay appeared on nearly every query across all three platforms. The Ordinary filled most remaining slots. The consensus is tighter than in fashion. In my fashion audits, niche brands like Neem London could break through on specific queries. In skincare, the top 5 brands occupy almost every recommendation slot. Breaking in requires stronger signals than fashion does.
The Gemini guardrail problem
A finding specific to skincare: Gemini refused to answer 2 out of 5 queries. The retinol query triggered a safety response. The azelaic acid query was refused entirely. Gemini appears to treat active ingredient queries as quasi-medical advice and declines to recommend specific products.
This is a category-level problem. If you sell retinoids, acids, or prescription-adjacent actives, one of the three major AI platforms may structurally refuse to recommend your products. This reduces the addressable surface for skincare brands from 15 tests to effectively 13, and it disproportionately affects brands like Dr Sam's whose range centres on clinical actives.
The competitor contrast
CeraVe is the benchmark in skincare AI visibility. They appeared on 4 out of 5 queries across multiple platforms. L'Oréal-owned, pharmacy-distributed, with an enormous editorial footprint and millions of reviews across every retail channel. They are the Patagonia of skincare.
The Ordinary appeared on multiple queries despite having famously minimal product descriptions. Their advantage is structural: their product naming convention puts the ingredient, concentration, and combination directly in the product name. "Niacinamide 10% + Zinc 1%" is the most machine-readable product name possible. The product name IS the structured data.
Good Molecules and Naturium appeared on the more specific queries. Both are newer DTC brands with ingredient-forward positioning. Their presence suggests the "affordable actives" space is being claimed by brands with stronger editorial saturation.
Dr Sam's has richer product data than all of these competitors. Better review scores. A real dermatologist founder. None of it is visible in the format AI agents consume.
What Dr Sam's could do, in priority order
Phase 1 (1-2 days):
- Move the INCI ingredient lists from Shopify tags into the body_html descriptions. The data exists. It just needs to be in the description field, not the tag field. Add a "Full Ingredients" section to each product page.
- Add skin type suitability to each product description. The tag system already contains skin concern_Sensitive Skin, skin concern_Blemishes, skin concern_Rosacea. Put "Suitable for: sensitive, acne-prone, and rosacea-prone skin" in the description text.
- Add concentration percentages to descriptions. The Nightly Serum is "2% Retinoid" in the title but the description just says "Granactive Retinoid." Percentages are a key query pattern in skincare.
Phase 2 (3-5 days):
- Add routine step and usage instructions to descriptions. "Use in the evening after cleansing. Apply 2-3 drops to face and neck." The body_html currently gives no usage guidance.
- Enrich the JSON-LD with ingredient and attribute data. The existing schema has price, availability, and reviews. Adding ingredients, skin type, and SPF rating would make the structured data far more useful.
- Surface the Pregnancy tag as visible product information. "Is this safe during pregnancy?" is a common skincare query. This answer is locked in an invisible tag.
Phase 3 (2-3 weeks):
- Target editorial roundups for each product category. "Best retinol serums," "best vitamin C serums," "best SPF moisturisers." These listicles are the corpus AI agents draw from. Dr Sam's needs to be in them.
- Create ingredient-focused landing pages. Dedicated content explaining each active ingredient with links to the relevant products gives AI agents rich context for ingredient-specific queries.
Phase 1 is a 1-2 day fix that could meaningfully change AI visibility. The data already exists. It is just in the wrong place.
Close
Dr Sam's is the most paradoxical result in this audit programme. A Harley Street dermatologist's brand. 8,000 five-star reviews across the range. JSON-LD structured data with aggregateRating. Trustpilot 4.6. Reviews.co.uk with 23,000 product reviews. Sephora partnership. GTINs on every product.
Zero AI recommendations across 15 tests.
The product data infrastructure is genuinely good. Better than most Shopify brands. But the body_html, the field AI agents actually read, contains 2-3 sentences of poetic brand copy per product. The ingredients, skin types, usage instructions, and concentrations are locked in Shopify tags that nothing external can access.
The fix is not building new data. It is moving existing data from a field nobody reads to a field everything reads.
I asked AI agents to recommend a dermatologist-formulated cleanser. The brand founded by a Harley Street dermatologist was not mentioned. That gap between what a brand is and what AI agents can see is the entire problem.