Optimization Guide
Product Safety Certifications Schema for AI Shopping Agents
In regulated product categories — baby gear, electronics, food supplements, personal care — AI shopping agents apply certification filters. Without machine-readable safety certification markup, your certified products are indistinguishable from uncertified ones in structured data.
additionalProperty blocks with propertyID: "certificationId" and certifyingOrganization to every regulated product's JSON-LD. For maximum coverage, also add the schema.org hasCertification property with a Certification type block (Google Merchant Center reads this). Include the certification standard number when available — vague "safety tested" claims are low-confidence signals for AI agents.
Why Certification Markup Matters for AI Agents
Users frequently ask AI shopping agents for safety-filtered results: "BPA-free water bottles for kids", "CPSC compliant baby car seats", "FDA approved sunscreen", "organic certified protein powder". These queries contain an implicit certification requirement that AI agents must satisfy.
The problem: safety certifications typically appear in product images (badge graphics), in the product description text ("CE certified"), and on the brand's About page — but not in machine-readable structured data. AI agents parsing JSON-LD see a product with no certification signals and cannot confidently include it in a certification-filtered result set.
| Certification signal location | AI agent readability | Confidence level |
|---|---|---|
JSON-LD additionalProperty or hasCertification |
Machine-readable | High — explicit structured signal |
| Product description text (e.g., "CE certified") | NLP fallback | Medium — requires text parsing |
| Alt text on certification badge image | Image alt text | Low — not all agents process this |
| Certification badge graphic (no alt text) | Not readable | None |
| Brand website's Certifications page | Wrong URL | None — agents index product pages, not brand pages |
The hasCertification Property (schema.org 2024)
Schema.org added a formal hasCertification property and Certification type in 2024. This is the most semantically precise certification signal and is supported by Google Merchant Center's Certification Feed. Use it alongside additionalProperty for maximum coverage:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Stainless Steel Water Bottle 750ml",
"hasCertification": [
{
"@type": "Certification",
"name": "BPA-Free",
"certificationIdentification": "NSF/ANSI 51",
"issuedBy": {
"@type": "Organization",
"name": "NSF International"
}
},
{
"@type": "Certification",
"name": "CE Marking",
"certificationIdentification": "CE 2024-07-001",
"issuedBy": {
"@type": "Organization",
"name": "European Commission"
},
"validUntil": "2027-06-30"
}
]
}
additionalProperty Pattern (Broader Agent Coverage)
The hasCertification type is relatively new — not all AI agents recognize it yet. Use additionalProperty in parallel for maximum compatibility with ChatGPT Shopping, Perplexity, and Google AI Mode:
{
"@type": "Product",
"name": "Stainless Steel Water Bottle 750ml",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "certificationId",
"name": "Certification",
"value": "BPA-Free (NSF/ANSI 51)"
},
{
"@type": "PropertyValue",
"propertyID": "certifyingOrganization",
"name": "Certified By",
"value": "NSF International"
},
{
"@type": "PropertyValue",
"propertyID": "certificationId",
"name": "Certification",
"value": "CE Marking"
},
{
"@type": "PropertyValue",
"propertyID": "certifyingOrganization",
"name": "Certified By",
"value": "European Commission"
}
]
}
Certification Markup by Product Category
Different product categories have different regulatory standards. Below are the most commonly queried certifications by category, along with the certificationId value to use:
| Category | Key certifications | propertyID / value |
|---|---|---|
| Children's products / toys | CPSC, ASTM F963, EN 71, CE | certificationId: "ASTM F963", certifyingOrganization: "CPSC" |
| Electronics / batteries | UL, FCC, RoHS, CE, IC Canada | certificationId: "UL 1642", certifyingOrganization: "UL Solutions" |
| Food / supplements | USDA Organic, NSF Certified for Sport, FDA GRAS | certificationId: "USDA Organic", certifyingOrganization: "USDA Agricultural Marketing Service" |
| Personal care / cosmetics | FDA, EWG Verified, ECOCERT, COSMOS | certificationId: "EWG Verified", certifyingOrganization: "Environmental Working Group" |
| Textiles / apparel | OEKO-TEX STANDARD 100, GOTS, bluesign | certificationId: "OEKO-TEX STANDARD 100", certifyingOrganization: "OEKO-TEX Association" |
| Water-contact products | NSF 61, NSF 42, WaterSense | certificationId: "NSF 61", certifyingOrganization: "NSF International" |
| Medical devices / wellness | FDA Class I/II, ISO 13485, CE (medical) | certificationId: "FDA 510(k)", certifyingOrganization: "U.S. Food and Drug Administration" |
Shopify Liquid Implementation with Metafields
Store certification data in a structured certifications metafield namespace. Using a JSON list metafield lets you add multiple certifications per product without modifying your theme template each time:
{% comment %}
Metafield: product.metafields.certifications.list
Type: JSON
Value example: [{"id":"ASTM F963","org":"CPSC"},{"id":"OEKO-TEX STANDARD 100","org":"OEKO-TEX"}]
{% endcomment %}
{% if product.metafields.certifications.list %}
{% assign certs = product.metafields.certifications.list.value %}
"additionalProperty": [
{% for cert in certs %}
{
"@type": "PropertyValue",
"propertyID": "certificationId",
"name": "Certification",
"value": {{ cert.id | json }}
},
{
"@type": "PropertyValue",
"propertyID": "certifyingOrganization",
"name": "Certified By",
"value": {{ cert.org | json }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
],
{% endif %}
Negative Certification Claims: BPA-Free, Vegan, Cruelty-Free
Many high-performing certification queries are negative: "BPA-free", "paraben-free", "vegan", "cruelty-free". These don't always have a formal certifying body, but they're still high-intent signals. Use the same additionalProperty pattern with a consistent propertyID:
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "materialSafety",
"name": "Material Safety",
"value": "BPA-Free"
},
{
"@type": "PropertyValue",
"propertyID": "materialSafety",
"name": "Material Safety",
"value": "Phthalate-Free"
},
{
"@type": "PropertyValue",
"propertyID": "productClaim",
"name": "Product Claim",
"value": "Vegan — no animal-derived ingredients"
},
{
"@type": "PropertyValue",
"propertyID": "productClaim",
"name": "Product Claim",
"value": "Cruelty-Free — Leaping Bunny certified"
}
]
For certified negative claims (e.g., PETA-certified vegan, Leaping Bunny certified cruelty-free), add the certifying organization separately using certifyingOrganization so AI agents can confirm the claim's credibility.
Product Safety Certification Checklist
- Identify all certifications your products hold — check product packaging, compliance documents, and manufacturer certificates
- Create a
certifications.listJSON metafield in Shopify Admin for each product with certification data - Add a Liquid snippet to your product template that reads the metafield and outputs
additionalPropertyblocks - For the highest-priority regulated products, also add
hasCertificationwith the formalCertificationschema.org type - Include the specific certification standard number (e.g., ASTM F963, NSF 61) not just the certification name
- Add certifying organization name as a separate
additionalPropertyblock - For negative claims (BPA-free, vegan), use
materialSafetyorproductClaimas thepropertyID - For third-party verified negative claims (Leaping Bunny, PETA), include the certifying organization
- Add
validUntilin thehasCertificationblock if your certificate has an expiry date - Validate the JSON-LD with Google's Rich Results Test and re-submit updated URLs to IndexNow
Related Resources
- Shopify Schema Markup Guide — full Product, Offer, and additionalProperty implementation guide.
- Ecommerce Product Condition Structured Data — OfferItemCondition for new, refurbished, and used products.
- Shopify Digital Product Delivery Schema — @type selection and instant delivery signals for digital goods.
- AI Shopping Agent Product Ranking Factors — the full 18-signal model including compliance signals.
Frequently Asked Questions
How do I add a CE certification to Shopify product JSON-LD?
Add an additionalProperty block to your Product JSON-LD with propertyID: "certificationId" and value: "CE Marking". Include a second additionalProperty with propertyID: "certifyingOrganization" and value: "European Commission". If you have the specific standard number, add a third block with propertyID: "certificationStandard". This same pattern works for UL, FDA, CPSC, OEKO-TEX, and any other body.
Do AI shopping agents filter by product certifications?
Yes, especially in safety-sensitive categories. When a user asks "BPA-free water bottles", "CPSC certified baby products", or "FDA approved skincare", AI agents apply a certification filter. Products with explicit JSON-LD certification signals are prioritized over products where certification must be inferred from description text. In regulated categories, missing markup can mean exclusion from filtered results entirely.
What is the schema.org hasCertification property?
Schema.org added a hasCertification property and Certification type in 2024 specifically for product compliance data. The Certification type supports name, certificationIdentification, issuedBy (Organization), and validUntil fields. It is supported by Google Merchant Center's Certification Feed API. Use it alongside additionalProperty for maximum AI agent coverage.
Should I include certification numbers in structured data?
Yes. Including the specific certification ID or standard number (e.g., UL 1642 for lithium batteries, ASTM F963 for toys, NSF 61 for water contact) adds precision that AI agents use to filter confidently. Vague claims like "safety tested" without a certifying body or standard number are treated as low-confidence signals. Include both the certifying organization name and the certificate number or standard identifier.
Audit Your Certification Markup
CatalogScan scans your product catalog for missing safety certification signals, incomplete additionalProperty blocks, and compliance markup gaps — then identifies which regulated products are losing certification-filtered AI agent traffic.