Optimization Guide

Shopify Eyewear & Sunglasses Schema — Frame Size (Eye/Bridge/Temple), Lens Material, UV400 Protection & ANSI Z87.1 Safety Certification Structured Data

AI agents handling queries like "polarized UV400 sunglasses with 52mm eye size prescription-compatible," "ANSI Z87.1 safety glasses with anti-fog polycarbonate lenses for manufacturing," "blue light blocking glasses large frame 140mm total width acetate," or "photochromic progressive lenses titanium frame men's medium fit" need machine-readable frame dimensions, lens properties, and UV protection data. Shopify's default JSON-LD outputs name and price only — the absence of eye size, bridge width, temple length, and UV protection rating means every dimension-filtered or protection-filtered eyewear query is unmatched.

TL;DR Use additionalProperty for frame dimensions (eye size, bridge, temple in mm), lens material with refractive index, UV400 rating, polarized boolean, and prescription compatibility. Use hasCertification for ANSI Z87.1 (basic vs Z87.1+ high impact), CE EN ISO 12312-1, and FDA 21 CFR 801.410. Store all 15 fields in a eyewear.* metafield namespace and inject conditionally from Liquid. Missing frame dimensions and UV data exclude every eyewear product from dimension-filtered and protection-filtered AI shopping queries.

1. Polarized Sunglasses — Complete Schema

The polarized sunglasses product schema below covers all structured data fields an AI shopping agent needs to match UV protection, polarization, frame size, and prescription compatibility queries. Each additionalProperty includes a description field that teaches the AI agent how to interpret the numeric value — this is especially important for frame measurements where "58" without context could mean anything.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Aviator Polarized Sunglasses — 58-14-140",
  "description": "Stainless steel aviator sunglasses with gradient smoke polarized polycarbonate lenses. UV400 protection. Prescription lenses available up to ±4.00 diopters.",
  "sku": "SG-AV-58-SMK-POL",
  "brand": {
    "@type": "Brand",
    "name": "Example Eyewear Co."
  },
  "offers": {
    "@type": "Offer",
    "price": "129.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Frame Style",
      "propertyID": "frameStyle",
      "value": "Aviator"
    },
    {
      "@type": "PropertyValue",
      "name": "Frame Material",
      "propertyID": "frameMaterial",
      "value": "Metal — stainless steel 304",
      "description": "Hypoallergenic stainless steel 304 — nickel content below 0.05% per EU Nickel Directive. Alternatives: titanium (lightest, most hypoallergenic), acetate (plant-based plastic), TR-90 nylon (flexible sport frames)."
    },
    {
      "@type": "PropertyValue",
      "name": "Eye Size",
      "propertyID": "eyeSize",
      "value": "58",
      "unitCode": "MMT",
      "description": "58mm — the horizontal lens width (the largest horizontal dimension of the lens). Part of the 3-number frame size: EYE-BRIDGE-TEMPLE. E.g., 58-14-140."
    },
    {
      "@type": "PropertyValue",
      "name": "Bridge Width",
      "propertyID": "bridgeWidth",
      "value": "14",
      "unitCode": "MMT",
      "description": "14mm — distance between the two lenses at the nose. Determines nose fit. Narrow bridge (12-14mm) for close-set eyes, wide bridge (16-18mm+) for wide-set eyes."
    },
    {
      "@type": "PropertyValue",
      "name": "Temple Length",
      "propertyID": "templeLength",
      "value": "140",
      "unitCode": "MMT",
      "description": "140mm — arm length from hinge to tip. Standard: 135mm (small), 140mm (medium/standard), 145mm (large/XL). Measures over-ear grip and overall frame width."
    },
    {
      "@type": "PropertyValue",
      "name": "Total Frame Width",
      "propertyID": "totalFrameWidth",
      "value": "139",
      "unitCode": "MMT",
      "description": "Face width coverage: eye size × 2 + bridge = 58+58+14 = 130mm geometric width. Add ~9mm padding for actual face coverage ≈ 139mm total. Filter: narrow face <130mm, medium 130-140mm, wide >140mm."
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Color",
      "propertyID": "lensColor",
      "value": "Gradient smoke grey"
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Tint Category",
      "propertyID": "lensTintCategory",
      "value": "Category 3",
      "description": "EN ISO 12312-1 tint category: Category 0 (0-20% absorption, clear), Category 1 (20-57%, fashion), Category 2 (57-82%, variable), Category 3 (82-92%, standard sunglasses), Category 4 (92-97%, extreme sun — NOT for driving)."
    },
    {
      "@type": "PropertyValue",
      "name": "UV Protection",
      "propertyID": "uvProtection",
      "value": "UV400",
      "description": "UV400 = blocks 100% of UV radiation up to 400nm wavelength — equivalent to UV400 / UV100% / CE UV 400. Different labels, same protection level."
    },
    {
      "@type": "PropertyValue",
      "name": "Polarized",
      "propertyID": "polarized",
      "value": "Yes",
      "description": "Polarized lenses eliminate horizontal glare from reflective surfaces (water, snow, roads). Glare is polarized horizontal light — vertical polarized filter blocks it. Polarized ≠ UV protection — both must be specified."
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Material",
      "propertyID": "lensMaterial",
      "value": "Polycarbonate",
      "description": "Polycarbonate (PC) — impact resistant (ANSI Z87.1 basic impact), lightweight (1.20 specific gravity), inherent UV absorption, 1.586 refractive index. Alternatives: Trivex (lighter, better optics, ANSI Z87.1 basic impact), CR-39 (optical glass plastic, best optics, not impact rated), glass (best clarity, heaviest, shatters)."
    },
    {
      "@type": "PropertyValue",
      "name": "Prescription Compatible",
      "propertyID": "prescriptionCompatible",
      "value": "Yes — prescription lenses available in -4.00 to +4.00 diopter range"
    },
    {
      "@type": "PropertyValue",
      "name": "Nose Pad",
      "propertyID": "nosePad",
      "value": "Adjustable silicone nose pads"
    },
    {
      "@type": "PropertyValue",
      "name": "Hinge Type",
      "propertyID": "hingeType",
      "value": "Spring hinge — 10-degree flex"
    },
    {
      "@type": "PropertyValue",
      "name": "IP Code",
      "propertyID": "ipCode",
      "value": "Not rated — not submersible"
    }
  ],
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "CE Marking — EN ISO 12312-1",
      "certificationIdentification": "EN ISO 12312-1:2022",
      "issuedBy": {
        "@type": "Organization",
        "name": "CE Notified Body"
      }
    },
    {
      "@type": "Certification",
      "name": "FDA 21 CFR 801.410 — Impact Resistance",
      "certificationIdentification": "21 CFR 801.410",
      "issuedBy": {
        "@type": "Organization",
        "name": "U.S. Food and Drug Administration"
      }
    }
  ]
}
Frame size notation: The conventional frame size "58-14-140" means Eye 58mm, Bridge 14mm, Temple 140mm. Always output each dimension as a separate additionalProperty with its own numeric value and unitCode: "MMT". Concatenated strings like "58-14-140" in a single field are not machine-readable for numeric comparison queries.

2. ANSI Z87.1 Safety Glasses — Complete Schema

Safety eyewear carries legally defined ratings that determine worksite compliance under OSHA 29 CFR 1910.133. AI agents serving B2B procurement and industrial buyers filter specifically on ANSI Z87.1+ (high impact), anti-fog coating, side shield integration, and OTG (Over The Glass) compatibility. The distinction between Z87.1 (basic impact) and Z87.1+ (high impact) is a compliance requirement — not a marketing distinction — and must be expressed unambiguously.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "OTG Anti-Fog Safety Glasses — Z87.1+ High Impact",
  "description": "Over-glasses (OTG) safety eyewear with permanent hydrophilic anti-fog coating. Fits over most prescription frames. ANSI/ISEA Z87.1-2020 high impact rated. Clear polycarbonate lenses.",
  "sku": "SF-OTG-CLR-AF-Z87P",
  "brand": {
    "@type": "Brand",
    "name": "ProShield Safety"
  },
  "offers": {
    "@type": "Offer",
    "price": "24.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Safety Standard",
      "propertyID": "safetyStandard",
      "value": "ANSI/ISEA Z87.1-2020",
      "description": "American National Standard for Occupational and Educational Personal Eye and Face Protection Devices. Z87.1 marking on frame means basic impact. Z87.1+ means high impact."
    },
    {
      "@type": "PropertyValue",
      "name": "Impact Rating",
      "propertyID": "impactRating",
      "value": "Z87.1+ High Impact",
      "description": "High velocity/mass impact test: 1/4-inch steel ball at 150 fps. Z87+ frames and lenses tested together — never mix Z87 frames with non-Z87 lenses."
    },
    {
      "@type": "PropertyValue",
      "name": "Anti-Fog Coating",
      "propertyID": "antiFogCoating",
      "value": "Yes — permanent hydrophilic anti-fog",
      "description": "Hydrophilic anti-fog coating absorbs moisture instead of beading — critical for construction and food processing environments where temperature differentials cause fogging."
    },
    {
      "@type": "PropertyValue",
      "name": "Side Shield",
      "propertyID": "sideShield",
      "value": "Integrated side shields — wraparound design, no add-on required",
      "description": "Z87.1 requires side protection — wraparound design eliminates gap. Add-on side shields (for prescription frames) must also be Z87 rated."
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Material",
      "propertyID": "lensMaterial",
      "value": "Polycarbonate — inherent UV absorption",
      "description": "Polycarbonate inherently absorbs UV — all PC safety lenses are UV-protective. IR (infrared) and shade lenses available for welding/cutting applications."
    },
    {
      "@type": "PropertyValue",
      "name": "Frame Style",
      "propertyID": "frameStyle",
      "value": "Over-glasses / OTG"
    },
    {
      "@type": "PropertyValue",
      "name": "Fits Over Corrective Lenses",
      "propertyID": "fitsOverCorrectiveLenses",
      "value": "Yes — OTG (Over The Glass) design fits most prescription frames"
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Tint",
      "propertyID": "lensTint",
      "value": "Clear — ANSI Z87.1 tint code L"
    },
    {
      "@type": "PropertyValue",
      "name": "OSHA Standard",
      "propertyID": "oshaStandard",
      "value": "Meets OSHA 29 CFR 1910.133 eye protection requirements"
    },
    {
      "@type": "PropertyValue",
      "name": "Anti-Scratch",
      "propertyID": "antiScratch",
      "value": "Yes — hard coat scratch-resistant both sides"
    }
  ],
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "ANSI/ISEA Z87.1-2020 — High Impact",
      "certificationIdentification": "Z87.1-2020",
      "issuedBy": {
        "@type": "Organization",
        "name": "ANSI/ISEA"
      }
    },
    {
      "@type": "Certification",
      "name": "CSA Z94.3 — Eye and Face Protectors",
      "certificationIdentification": "CSA Z94.3-20",
      "issuedBy": {
        "@type": "Organization",
        "name": "CSA Group"
      }
    },
    {
      "@type": "Certification",
      "name": "CE EN 166 — Personal Eye Protection",
      "certificationIdentification": "EN 166:2002",
      "issuedBy": {
        "@type": "Organization",
        "name": "CE Notified Body"
      }
    },
    {
      "@type": "Certification",
      "name": "OSHA 1910.133 Compliance",
      "certificationIdentification": "29 CFR 1910.133",
      "issuedBy": {
        "@type": "Organization",
        "name": "Occupational Safety and Health Administration"
      }
    }
  ]
}

ANSI Z87.1 markings decoded

Frame marking Meaning Use case
Z87 Basic impact — frame only General industry, light hazards
Z87+ High impact — frame + lens tested together Manufacturing, construction, grinding
Z87-2 Prescription lens insert Rx safety glasses
W shade number Welding shade (e.g., W5, W10) Welding, cutting applications
U scale number UV filter scale (U2–U6) Outdoor UV protection rating
L (clear) Visible light transmission >85% Indoor, low-light environments
V Variable (photochromic) Indoor/outdoor transitions
S Special purpose tint Laser, infrared, or chemical

3. Blue Light Blocking Glasses — Photochromic Schema

Computer glasses and photochromic frames require additional properties that sunglasses and safety glasses do not: blue light filter wavelength range, photochromic technology (Transitions XTRActive vs standard Transitions), lens index for prescription customers, and a face-size category derived from the three-number frame size. The blue light claim requires nuanced description because the evidence base differs from UV protection claims.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Large Square Photochromic Blue Light Glasses — 55-18-145",
  "description": "Acetate square frame with Transitions XTRActive photochromic lenses. 90% blue light filter 400-450nm. 1.67 high-index. Prescription-compatible for single-vision and progressive lenses.",
  "sku": "BL-SQ-55-XTRA-167",
  "brand": {
    "@type": "Brand",
    "name": "Example Eyewear Co."
  },
  "offers": {
    "@type": "Offer",
    "price": "249.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Blue Light Filter",
      "propertyID": "blueLightFilter",
      "value": "Blue light filter 400-450nm — blocks 90% of high-energy visible blue light (HEV) in the 400-450nm range",
      "description": "Computer glasses targeting digital eye strain. Blue light from LED screens peaks at 455nm. Note: no peer-reviewed evidence that blue light causes permanent eye damage — this is a comfort product claim, not medical claim."
    },
    {
      "@type": "PropertyValue",
      "name": "Photochromic",
      "propertyID": "photochromic",
      "value": "Yes — Transitions XTRActive",
      "description": "Transitions XTRActive: darkens behind car windshields (standard Transitions do NOT — they need UV to activate, but windshields block UV). XTRActive activates on visible light. Fade: clear to dark in 30 sec in strong sun; dark to clear in 5 min indoors."
    },
    {
      "@type": "PropertyValue",
      "name": "Lens Index",
      "propertyID": "lensIndex",
      "value": "1.67 high-index",
      "description": "1.67 refractive index — 'high-index' lens. Higher index = thinner lens for same prescription power. Reference: 1.50 CR-39 (standard), 1.53 Trivex, 1.59 polycarbonate, 1.67 high-index, 1.74 ultra high-index. For prescriptions above ±4.00, recommend 1.67+."
    },
    {
      "@type": "PropertyValue",
      "name": "Frame Size Category",
      "propertyID": "frameSizeCategory",
      "value": "Large — 55-18-145",
      "description": "Eye 55mm, Bridge 18mm, Temple 145mm. Suitable for wide/large face. Face width: 55+55+18 = 128 + padding ≈ 145mm total frame width."
    },
    {
      "@type": "PropertyValue",
      "name": "Eye Size",
      "propertyID": "eyeSize",
      "value": "55",
      "unitCode": "MMT",
      "description": "55mm horizontal lens width. Large frame suitable for wider faces."
    },
    {
      "@type": "PropertyValue",
      "name": "Bridge Width",
      "propertyID": "bridgeWidth",
      "value": "18",
      "unitCode": "MMT",
      "description": "18mm bridge — wide-set nose fit."
    },
    {
      "@type": "PropertyValue",
      "name": "Temple Length",
      "propertyID": "templeLength",
      "value": "145",
      "unitCode": "MMT",
      "description": "145mm temple — large/XL fit."
    },
    {
      "@type": "PropertyValue",
      "name": "Frame Style",
      "propertyID": "frameStyle",
      "value": "Square — rectangular with squared corners"
    },
    {
      "@type": "PropertyValue",
      "name": "Frame Material",
      "propertyID": "frameMaterial",
      "value": "Acetate — plant-based cellulose acetate"
    },
    {
      "@type": "PropertyValue",
      "name": "Prescription Compatible",
      "propertyID": "prescriptionCompatible",
      "value": "Yes — single-vision and progressive lenses compatible"
    },
    {
      "@type": "PropertyValue",
      "name": "UV Protection",
      "propertyID": "uvProtection",
      "value": "UV400 — inherent photochromic lens UV block"
    }
  ]
}

4. Frame Size System Reference Table

The three-number frame size system (e.g., 52-16-140) is the international standard for eyewear sizing but is opaque to AI agents unless each dimension is exposed as a separate numeric additionalProperty. The table below gives the measurement name, where it is measured, typical ranges, and interpretation notes for use in descriptions.

Measurement Location Typical Range Notes for AI matching
Eye Size Horizontal lens width — widest point of one lens 40–62mm Smaller eye size = narrower face / lens; larger = wider face. Not the same as total frame width. Common sizes: 50-52 (narrow), 54-56 (medium), 58-62 (wide). AI agents filter "52mm sunglasses" on this value.
Bridge Width Gap between the two lenses at the nose — shortest distance 12–22mm Narrow bridge (12-14mm) for close-set or low nose bridge. Wide bridge (16-18mm+) for wide-set or high nose bridge. Critical for "low nose bridge" and "Asian fit" product queries.
Temple Length Arm from hinge pin to tip, measured along the arm 130–155mm Standard 140mm fits most adults. 135mm small/petite, 145mm large/XL. Determines over-ear grip and overall head width fit. AI queries: "large temple glasses," "140mm arms."
Total Frame Width Outer edge of left lens to outer edge of right lens 90–150mm Formula: (2 × eye size) + bridge + ~9mm padding = approximate total. A 58-14-140 frame ≈ 58+58+14+9 = 139mm. Narrow face <130mm, medium 130-140mm, wide >140mm. Used for "wide face sunglasses" queries.
Frame size notation: When a customer searches "52mm glasses," they mean eye size — not bridge, not temple. When they search "140mm glasses" they may mean temple length or total width. Always expose all four measurements as separate additionalProperty fields with unitCode: "MMT" so AI agents can resolve ambiguous queries against the correct dimension.

Face size categories by total frame width

Face size label Total frame width Typical eye size AI query pattern
XS / Petite <125mm 40-48mm "petite sunglasses," "small face glasses"
Small 125-132mm 49-52mm "small frame glasses," "narrow face sunglasses"
Medium 132-140mm 53-56mm "medium frame glasses," "standard fit"
Large 140-148mm 57-60mm "large frame glasses," "wide face sunglasses"
XL >148mm 61mm+ "extra large frames," "big head glasses," "oversized sunglasses"

5. Lens Material Comparison Table

Lens material determines optical clarity, weight, impact resistance, and prescription capability. AI agents processing queries like "lightweight safety lenses," "impact-rated polycarbonate," or "thin lenses strong prescription" need machine-readable lens material data — not a description paragraph that requires NLP to extract refractive index or safety rating.

See also: product specifications structured data guide for the general pattern of numeric specification properties with units.

Material Index Weight Impact Rating Best For
CR-39 plastic 1.50 Standard Not impact rated Best optical clarity, thin prescriptions (up to ±2.00), everyday eyewear
Polycarbonate 1.59 Light ANSI Z87.1 basic impact Kids, safety eyewear, sports, sunglasses — inherent UV absorption, most widely used
Trivex 1.53 Lightest ANSI Z87.1 basic impact Best combination of safety and optics — sharper peripheral vision than polycarbonate
1.67 High-index 1.67 Light Not impact rated Strong prescriptions above ±4.00 — significantly thinner than polycarbonate at high powers
1.74 Ultra-high 1.74 Light Not impact rated Very strong prescriptions above ±6.00 — thinnest available, premium cost
Mineral glass 1.52–1.90 Heaviest Shatters on impact Best scratch resistance, vintage frames, premium optical clarity — not for active use
Impact rating and ANSI Z87.1: Polycarbonate and Trivex are the only lens materials with inherent impact ratings. All other materials (CR-39, glass, high-index) are NOT ANSI Z87.1 rated regardless of frame marking. A Z87-marked frame with CR-39 lenses does not constitute Z87.1 compliant safety eyewear. Lenses and frames must both carry the Z87 marking.

6. Liquid Implementation — eyewear.* Metafield Namespace

Store all eyewear-specific attributes in a dedicated eyewear.* metafield namespace. This makes the Liquid template conditionally inject only the properties that apply — sunglasses get UV and polarization properties, safety glasses get ANSI certification properties, computer glasses get blue light filter and photochromic properties.

Recommended metafields — eyewear namespace

Metafield key Type Example value
eyewear.frame_stylesingle_line_textAviator
eyewear.frame_materialsingle_line_textMetal — stainless steel 304
eyewear.eye_size_mmnumber_integer58
eyewear.bridge_mmnumber_integer14
eyewear.temple_mmnumber_integer140
eyewear.total_width_mmnumber_integer139
eyewear.lens_materialsingle_line_textPolycarbonate
eyewear.lens_indexsingle_line_text1.67 high-index
eyewear.uv_protectionsingle_line_textUV400
eyewear.polarizedsingle_line_textYes
eyewear.tint_categorysingle_line_textCategory 3
eyewear.blue_light_filtersingle_line_text400-450nm 90% block
eyewear.photochromicsingle_line_textYes — Transitions XTRActive
eyewear.prescription_compatiblesingle_line_textYes — -4.00 to +4.00 diopter range
eyewear.safety_standardsingle_line_textANSI/ISEA Z87.1-2020

Liquid template — conditional property injection

{% assign ew = product.metafields.eyewear %}

{% if ew.eye_size_mm != blank or ew.bridge_mm != blank or ew.temple_mm != blank %}
{# Frame dimension block — emitted for all eyewear #}
{
  "@type": "PropertyValue",
  "name": "Eye Size",
  "propertyID": "eyeSize",
  "value": "{{ ew.eye_size_mm.value }}",
  "unitCode": "MMT",
  "description": "{{ ew.eye_size_mm.value }}mm horizontal lens width. Frame size: {{ ew.eye_size_mm.value }}-{{ ew.bridge_mm.value }}-{{ ew.temple_mm.value }}."
},
{
  "@type": "PropertyValue",
  "name": "Bridge Width",
  "propertyID": "bridgeWidth",
  "value": "{{ ew.bridge_mm.value }}",
  "unitCode": "MMT"
},
{
  "@type": "PropertyValue",
  "name": "Temple Length",
  "propertyID": "templeLength",
  "value": "{{ ew.temple_mm.value }}",
  "unitCode": "MMT"
},
{% endif %}

{% if ew.uv_protection != blank %}
{
  "@type": "PropertyValue",
  "name": "UV Protection",
  "propertyID": "uvProtection",
  "value": "{{ ew.uv_protection.value }}",
  "description": "UV400 = blocks 100% of UV radiation up to 400nm wavelength."
},
{% endif %}

{% if ew.polarized != blank %}
{
  "@type": "PropertyValue",
  "name": "Polarized",
  "propertyID": "polarized",
  "value": "{{ ew.polarized.value }}",
  "description": "Polarized lenses eliminate horizontal glare from reflective surfaces. Polarized ≠ UV protection — both must be specified."
},
{% endif %}

{% if ew.photochromic != blank %}
{
  "@type": "PropertyValue",
  "name": "Photochromic",
  "propertyID": "photochromic",
  "value": "{{ ew.photochromic.value }}",
  "description": "Photochromic lenses darken in UV/visible light and return to clear indoors."
},
{% endif %}

{% if ew.blue_light_filter != blank %}
{
  "@type": "PropertyValue",
  "name": "Blue Light Filter",
  "propertyID": "blueLightFilter",
  "value": "{{ ew.blue_light_filter.value }}"
},
{% endif %}

{% if ew.safety_standard != blank %}
{# ANSI Z87.1 certification block — emitted for safety eyewear only #}
"hasCertification": [
  {
    "@type": "Certification",
    "name": "{{ ew.safety_standard.value }}",
    "certificationIdentification": "{{ ew.safety_standard.value }}",
    "issuedBy": {
      "@type": "Organization",
      "name": "ANSI/ISEA"
    }
  }
]
{% endif %}

This conditional structure ensures that sunglasses without a safety_standard metafield do not emit an empty or misleading hasCertification block, and safety glasses without a photochromic metafield do not emit an empty photochromic property. The pattern scales to any number of eyewear sub-categories without template forking.

7. Five Common Eyewear Schema Mistakes

Find eyewear schema gaps in your Shopify store

CatalogScan audits your product JSON-LD for missing frame dimensions, UV protection claims, lens material data, and certification blocks — and shows you exactly which eyewear products are invisible to dimension-filtered AI shopping queries.

Scan your store free

Frequently Asked Questions

How do I express eyewear frame dimensions (eye size, bridge, temple) in schema.org?

Use additionalProperty on the Product block with PropertyValue objects for each measurement. Eye size uses propertyID: "eyeSize" and unitCode: "MMT" with the numeric value in mm. Bridge width uses propertyID: "bridgeWidth" and temple length uses propertyID: "templeLength", both with unitCode: "MMT". Always include a description explaining the measurement: frame sizes are conventionally expressed as EYE-BRIDGE-TEMPLE (e.g., 58-14-140). AI agents process queries like "sunglasses 58mm" or "wide frame glasses 145mm temple" by comparing these numeric values directly — string-only fields like "58-14-140" in a single property cannot be used for numeric range filtering.

How do I mark UV400 protection and polarization separately in schema.org?

Use two separate additionalProperty entries — never combine them. UV Protection: { "name": "UV Protection", "propertyID": "uvProtection", "value": "UV400" }. Polarized: { "name": "Polarized", "propertyID": "polarized", "value": "Yes" }. The description of the Polarized field must clarify that polarization does not imply UV protection and vice versa — both are independently required for full eye protection. AI agents filtering on "polarized UV400 sunglasses" check both properties independently and exclude products that have only one or neither.

What schema.org certification covers ANSI Z87.1 safety glasses?

Use hasCertification on the Product block with a Certification object: name "ANSI/ISEA Z87.1-2020", certificationIdentification "Z87.1-2020", issuedBy ANSI/ISEA. Critically, distinguish between Z87.1 (basic impact) and Z87.1+ (high impact) using a separate additionalProperty named "Impact Rating" — not only in the certification name. Also include hasCertification for CSA Z94.3 (Canadian standard), CE EN 166 (EU personal eye protection), and indicate OSHA 29 CFR 1910.133 compliance as an additionalProperty since it is a regulatory requirement rather than a third-party certification.

How do I express lens material (polycarbonate vs Trivex vs CR-39) in Shopify schema?

Use additionalProperty with name: "Lens Material" and propertyID: "lensMaterial". In the description field, explain the material's refractive index, weight category, impact rating status, and ideal use case. Add a separate additionalProperty for "Lens Index" with the numeric refractive index value (e.g., "1.67 high-index") to allow AI agents to match queries like "thin lenses strong prescription" or "high index 1.74 glasses." Only polycarbonate and Trivex carry ANSI Z87.1 impact ratings — all other materials require a separate safety certification to earn that designation and will not match safety eyewear queries without explicit certification markup.

How do I mark prescription compatibility for sunglasses and frames in schema.org?

Use additionalProperty with name: "Prescription Compatible" and propertyID: "prescriptionCompatible". Make the value descriptive and include the diopter range: "Yes — prescription lenses available in -4.00 to +4.00 diopter range" or "No — non-prescription fashion frame only." For progressive lens compatibility, add a separate additionalProperty "Progressive Compatible" since not all frames can accommodate progressive lenses (minimum lens height of 28-30mm required). Store as metafield eyewear.prescription_compatible and inject conditionally from your Liquid template. This is a primary filter for high-intent purchasing queries — customers who need prescription lenses search explicitly for this attribute.