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.

TL;DR Add 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 locationAI agent readabilityConfidence 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:

CategoryKey certificationspropertyID / 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

  1. Identify all certifications your products hold — check product packaging, compliance documents, and manufacturer certificates
  2. Create a certifications.list JSON metafield in Shopify Admin for each product with certification data
  3. Add a Liquid snippet to your product template that reads the metafield and outputs additionalProperty blocks
  4. For the highest-priority regulated products, also add hasCertification with the formal Certification schema.org type
  5. Include the specific certification standard number (e.g., ASTM F963, NSF 61) not just the certification name
  6. Add certifying organization name as a separate additionalProperty block
  7. For negative claims (BPA-free, vegan), use materialSafety or productClaim as the propertyID
  8. For third-party verified negative claims (Leaping Bunny, PETA), include the certifying organization
  9. Add validUntil in the hasCertification block if your certificate has an expiry date
  10. Validate the JSON-LD with Google's Rich Results Test and re-submit updated URLs to IndexNow

Related Resources

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.

Scan your store free