Supplements brands lose 'best magnesium for sleep' searches. Here's the schema fix.
Editorial Team, StoreMend Audit. Updated 2026-06-30.
A buyer asks Siri "best magnesium glycinate" and gets 3 brands with prices and star ratings. Stores without star-rating schema do not get spoken.
31 of 46 Supplements Shopify stores audited ship product pages without Product schema. The most common gap: a visible 4.8-star widget on the PDP and zero aggregateRating in the page source. That is 67.4% of the Supplements stores in the sample.
The fix is small. A 30-minute theme edit, a $25 to $80 per month schema app, or a single toggle inside the existing reviews app injects a JSON-LD <script> block into every product page. The block tells Google, ChatGPT, Perplexity, Alexa, and AI Overviews what the page is selling, at what price, in what subscription cadence, and how shoppers rate it.
Scope note: this article covers Shopify schema markup for Supplements stores. It describes what data the search and AI surfaces read, not claims about supplement efficacy. The schema fix changes search visibility, not product claims or FDA-compliance posture.
Skip the manual diagnostic. The StoreMend audit runs the Product schema check (and 11 others) against a live store in 60 seconds. $39 one-time. 30-day no-questions refund. Run an audit at storemend.com.
What this means for your store
If a buyer searches "best magnesium glycinate" on Google, Siri, or ChatGPT, the answer they see is built from Product schema. The page has to declare itself: the product name, price, subscription cadence, rating, and review count, in a structured <script> block at the top of the source.
If that block is missing, the page renders fine to a human visitor but is dark to every voice and AI shopping surface. A competitor with the block shows up with stars next to their listing in Google. The shopper clicks the competitor, starts a monthly subscription there, and stays there.
Three failure modes show up. No JSON-LD block at all is the most common. Less common: an Organization stub on the homepage with no Product schema on PDPs. Rarest: a Product block present but missing aggregateRating, nutrition, gtin13, or offers.availability.
What "Product schema" actually means
For a Supplements PDP, Product schema is a structured description of what the page sells, across the axes buyers filter on: subscription cadence, ingredient profile, dosage, certification, review density.
Base Product fields. Required for any rich snippet, AI-search citation, or shopping graph ingestion: @type: Product, name, image, description, sku, brand, offers (nested with price, priceCurrency, availability, url), and aggregateRating with ratingValue and reviewCount when reviews exist.
Nutrition fields. nutrition is a nested NutritionInformation object covering calories, servingSize, proteinContent, fatContent, carbohydrateContent, sugarContent, sodiumContent, fiberContent. For protein powders, electrolyte mixes, gummies, and any supplement consumed as food, Google Shopping food category eligibility requires these fields.
aggregateRating from reviews. The single most common Supplements schema failure. The PDP displays a Yotpo, Okendo, BazaarVoice, Judge.me, or Stamped widget with 4.8 stars and 800 reviews. The Product JSON-LD ships zero aggregateRating. Google renders no star snippet. The buyer searching "best magnesium glycinate" sees a competitor's stars in the SERP and clicks there.
Subscription model fields. Recurring billing is the default revenue model. The offers block needs more than one price. The cleanest pattern is an offers array with two Offer blocks (one one-time, one subscription) where the subscription Offer carries priceSpecification with @type: UnitPriceSpecification, referenceQuantity, and billingDuration set to P1M, P2M, or whichever cadence applies.
GTIN and barcode mapping. gtin13 (the 13-digit UPC or EAN) allows a Supplements product to match against external product graphs. Without it, the product is one of thousands of unnamed entries the Google Shopping graph cannot disambiguate. Shopify stores barcodes in the variant barcode field; the fix exposes that value as gtin13.
How to detect on your store
This check fires yes or no. Walk through these steps on a real product page.
Step 1: Open a PDP in Chrome. Pick a popular SKU with an Add-to-Cart button and Subscribe-and-Save toggle. Not the homepage.
Step 2: View page source (Cmd+U on macOS, Ctrl+U on Windows).
Step 3: Search for application/ld+json. Press Cmd+F. Three outcomes:
- Zero matches. No JSON-LD blocks anywhere. The store is in the cluster.
- Matches exist, but none contain
"@type": "Product". Organization, WebSite, or BreadcrumbList present, but none describe the product. Still in the cluster. - One match with
"@type": "Product", but partial. Check foraggregateRating,nutrition,gtin13,offers.availability, and any subscription Offer block.
Step 4: Run the URL through Google's Rich Results Test.If detected-items is empty or shows only Organization or BreadcrumbList, the store trips the check. If "Products" shows green checkmarks, the base check is clean.
Step 5: Verify on a second product page. Some themes ship schema on the flagship SKU and skip long-tail SKUs. Conditional render means every long-tail SKU is leaking visibility.
Step 6: Cross-check the reviews surface. If a star rating displays visibly on the page, that data should appear in aggregateRating. Visible-on-page but missing-from-schema is the most common Supplements failure.
How to fix, three supplement-specific paths
Most stores combine two of these: a reviews-app toggle plus either a schema app or a theme snippet.
Path 1: Yotpo Product schema feed
Yotpo is the most common reviews app in this cohort.
- Toggle. Yotpo Admin, Meta & Google, Google Rich Snippets, toggle on.
- What gets injected. Product JSON-LD with
name,image,description,sku,brand,offers, andaggregateRatingpopulated from Yotpo's review database. Lands within 24 hours. - What does not. Yotpo's block does not carry
nutrition,gtin13, or subscriptionpriceSpecification. Those still need Path 2 or Path 3. - Cost. Included with any Yotpo subscription.
- Setup time. 5 minutes for the toggle, 24 hours for Google recrawl.
Right move when the only gap is the missing aggregateRating. Closes the most common Supplements failure mode.
Path 2: Schema App with nutrition extension
Schema App is the most-cited Shopify schema app for stores needing nutrition, dietary-attribute, and subscription-Offer coverage out of the box.
- What gets installed.
Productwith the base fields, a subscription Offer withpriceSpecification,aggregateRating,nutrition,gtin13,additionalPropertyentries for dietary tags and certifications, andmpn. - Cost. $25 to $80 per month depending on store size.
- Setup time. 60 to 120 minutes. Schema App auto-populates base fields from Shopify product data;
nutrition,additionalProperty, andgtin13require mapping to product metafields.
Right path for stores with 25+ SKUs where dietary tagging, nutrition coverage, and subscription Offer modeling all need to land at once.
Path 3: Custom Liquid theme edit
For stores on a modern Shopify theme (Dawn 12+, Sense 8+, Refresh, Craft, Studio) where base Product schema is present but thin, the extension is a 30 to 90 minute Liquid edit.
Open sections/main-product.liquid. Search for application/ld+json. The existing block usually carries name, image, description, sku, offers. To extend:
- Add a
nutritionblock sourced from product metafields under anutrition.*namespace. - Add
gtin13sourced from the variantbarcodefield. - Add or update
aggregateRatingto reference the active reviews app. Yotpo variables:yotpo.product.average_rating,yotpo.product.review_count. Loox, Judge.me, Okendo each expose equivalents. - Add a subscription Offer block inside
offersif the store runs Recharge, Skio, Stay AI, Bold Subscriptions, or Ordergroove. - Add
additionalPropertyentries for USDA Organic, Non-GMO Project Verified, GMP-certified manufacturing, third-party tested.
Reference: Shopify Dawn. Metafields: Shopify custom data.
- Cost. $0.
- Setup time. 30 to 90 minutes for a developer comfortable with Liquid.
Picking the path
| Store profile | Recommended path |
|---|---|
Already running Yotpo, only gap is aggregateRating | Path 1 |
| 25+ SKUs, no developer, need nutrition coverage | Path 2 (Schema App) |
| Under 25 SKUs, developer on call, modern theme | Path 3 (Liquid edit) |
| Heavy subscription model, custom PDP | Path 3 (Liquid edit) |
After shipping, re-run the detection steps. The Rich Results Test should report "Detected items: Products" with green checkmarks on aggregateRating and nutrition.
Why this matters more for Supplements
The 67.4% rate puts Supplements in the middle of the eight-vertical distribution. The rate is unremarkable; the buyer journey and revenue model are not.
Subscription LTV multiplier
Most Supplements stores in the cohort ship a Subscribe-and-Save button on every PDP. Recharge, Bold Subscriptions, Ordergroove, Skio, Stay AI are the most-cited engines. A Supplements customer acquired today is not a one-time order; the LTV math assumes a 6 to 18 month subscription window with a churn curve attached.
In one-time-purchase verticals (Electronics, Home, Outdoor), the conversion lift from closing the schema gap produces immediate revenue. In Supplements, the lift compounds across subscription tenure. Every first-touch acquisition the fix unlocks carries the subscription-LTV multiplier on top, so the dollar value per recovered visit is roughly 6 to 18x the equivalent miss in a one-time vertical.
Voice-search "best vitamin for X" queries
A buyer asking Google Assistant, Siri, or Alexa "best magnesium for sleep" expects a structured answer. The voice surface reads name, aggregateRating.ratingValue, aggregateRating.reviewCount, offers.price to pick which brands to cite.
Brands with full Product schema and a populated aggregateRating get cited. Brands without get omitted. Alexa's non-Amazon category queries route through Google's Shopping graph, which pulls from on-page Product schema. The chain ends at the PDP's JSON-LD.
AI nutrition comparison on Perplexity and Gemini
A buyer asking Perplexity "high-protein vegan supplement under 5g sugar per serving" expects a list generated by reading Product schema with nested nutrition fields across crawled commerce sites. Brands with nutrition.proteinContent and nutrition.sugarContent populated get cited. Brands without get omitted.
This is the load-bearing cost of the schema gap for Supplements. The dietary and nutrient-filter axes (vegan, gluten-free, low-sugar, high-protein, organic, kosher, halal) are the axes supplement buyers narrow choice along, and structured data is the only surface AI search uses to resolve those filters.
Trust signal density
Supplement consumers evaluate trust before price. Third-party-testing certificates, GMP-certified manufacturing claims, ingredient transparency, and review density are category-standard trust signals. The schema fix affects two directly: aggregateRating surfaces review density as a Google rich snippet, and additionalProperty entries surface GMP or USDA Organic certifications in AI search.
Sibling patterns in Supplements
After closing schema-absent, two siblings appear at meaningful rates.
OG and Twitter Card defects. The highest social-card defect rate of any vertical in the sample. Cause is structural: Supplements stores layer more apps writing social-card meta tags. Conflicting OG tag sets are the side effect. Cost surfaces on Reddit, Discord, iMessage peer shares, and stack-photo posts on X.
Page-builder and app-stack overhead. The lowest app-stack-overhead rate of any large vertical (4 of 46, 8.7%), but the Supplements stores that hit this pattern hit hard. Severity is concentrated, with mobile PageSpeed in the 20s and 30s and JavaScript payload above 3 MB before first paint.
Fix order when more than one pattern is open: schema first (this page), social-card defects second, app-stack overhead third.
Sibling schema patterns in other verticals
The schema-absent pattern shows up across every Shopify category, with vertical-specific extensions. The Food and CPG schema fix covers nutrition and dietary-tag fields (directly relevant for protein powders, electrolyte mixes, and gummies). The Electronics schema fix covers brand and gtin13 and the detection workflow. The Pet store shipping-zone guide covers eligibleRegion for state-restricted products (directly relevant for CBD supplements). Schema is one of 12 conversion checks; the complete audit guide covers all 12 in sequence, and the GEO readiness playbook covers the AI-search layer in depth. For why a buyer might land on a clean-schema supplements PDP and still bounce, the conversion diagnostic covers it.
FAQ
How can I tell if my Supplements store is in the cluster without an audit?
Open a product page in Chrome. Right-click, View Page Source. Press Cmd+F. Search application/ld+json. Zero matches: in the cluster. Matches exist but none contain "@type": "Product": still in the cluster. Product block exists but aggregateRating is missing despite visible stars: the most common Supplements failure mode applies.
My reviews app shows stars on the page but they do not show up in Google. What is happening?
The reviews app (Yotpo, Okendo, BazaarVoice, Judge.me, Stamped) is displaying stars client-side but not emitting aggregateRating into the Product JSON-LD. Each has a setting to enable JSON-LD output. Yotpo: Meta & Google, Google Rich Snippets, toggle on. Loox: Settings, Reviews Widget, Advanced, Rich Snippets. Judge.me: Settings, Display, Rich Snippets. Verify with the Rich Results Test.
Does my subscription model change which fields I need?
Yes. For a brand running Subscribe-and-Save through Recharge, Skio, Stay AI, Bold Subscriptions, or Ordergroove, the offers block needs more than one price. An offers array with two Offer blocks (one one-time, one subscription) where the subscription Offer carries priceSpecification with per-shipment price and billingDuration (P1M, P2M) is the cleanest pattern.
Why does GTIN matter for my Supplements store?
GTIN (the 13-digit UPC or EAN barcode) allows a product to match against external product graphs. A vitamin D3 bottle with GTIN populated matches to retailer comparisons, certification databases, and AI-search ingredient-filter results. Without it, the product is one of thousands of unnamed entries the Google Shopping graph cannot disambiguate.
Will adding nutrition to my Product schema affect anything besides search results?
nutrition is read by Google Shopping food category, voice search (Alexa, Google Assistant, Siri), and AI nutrition comparison (Perplexity, Gemini, ChatGPT shopping). It describes label content, the same data a shopper sees on the back of the bottle.
My store ships full Product schema already. Does this apply to me?
If the PDP carries name, image, description, sku, brand, offers.price, offers.priceCurrency, offers.availability, and aggregateRating (when reviews exist), the base check passes. The extension check is separate: does the block also carry nutrition, gtin13, a subscription Offer block, and additionalProperty entries for certifications? If not, the base passes but the thin-schema variant trips.
How do I prove the fix worked?
Three checks. First, the Rich Results Test reports "Product snippets" as eligible. Second, search the product on Google in a private window and look for the rich snippet (Google can take 7 to 30 days to recrawl). Third, re-run the StoreMend audit; schema-absent should pass cleanly.
Methodology and disclosure
Findings draw from 1,091 Shopify storefronts audited in Q2 2026. 46 stores classified Supplements in the sample. Each store was checked across 12 conversion-facing categories using public storefront pages (the same surface a human visitor would see). Findings are aggregated and anonymized; no private data was accessed.
Supplements sample N=46 is below the 50-store statistical floor; the 67.4% headline holds against single-store moves, sub-cluster percentages are directional. Cohort sample refreshes monthly.
Run an audit on a specific Supplements store. The StoreMend audit covers all 12 conversion checks against a live store in 60 seconds. $39 one-time. 30-day no-questions refund. storemend.com