Optimization Guide
Shopify Outdoor & Sporting Goods Schema — Sport Activity, Performance Specs & Gear Compatibility JSON-LD
AI shopping agents fielding queries like "waterproof hiking headlamp IPX7 under 3 oz," "UIAA-certified climbing rope 9.5mm dry," or "sleeping bag rated to -20°F for winter camping" need machine-readable performance specs, activity signals, and compatibility data — none of which Shopify's default Product JSON-LD outputs. Outdoor gear is among the most spec-driven e-commerce categories, and AI agents filter by numeric thresholds, standards identifiers, and activity context before they ever look at product titles.
sport property — implement sport and activity signals as additionalProperty with propertyID: "sport" and "suggestedActivity". Use additionalProperty with UN/CEFACT unitCode for all numeric specs: IPX water resistance, temperature range (CEL), weight (LBR/KGM), pack volume (LTR), rope diameter (MMT), UPF rating, and lumen output. Express gear compatibility as additionalProperty compatibleWith strings including the standard identifier. Use hasCertification for UIAA, CE EN 892, bluesign, RDS, GOTS, and NSF. Store everything in an outdoor.* or sport.* metafield namespace and inject via Liquid.
Why Outdoor Gear Is Invisible to AI Spec-Filter Queries
Outdoor and sporting goods purchases are deeply spec-driven. A buyer searching for "crampons compatible with B2 hiking boots" or "tent with DAC poles under 4 lbs" is not browsing — they are filtering against precise technical criteria. AI shopping agents process these as multi-dimensional filter queries against structured data fields, not full-text keyword matches against product descriptions.
Shopify's default Product JSON-LD outputs name, price, availability, brand, and optionally variant details. It outputs nothing about water resistance rating, operating temperature range, climbing certification, boot sole compatibility standard, or activity context. When an AI agent applies a spec filter against your catalog, every product without the corresponding structured field is silently excluded — not because your product fails the spec, but because the agent has no machine-readable signal to include it.
The outdoor category compounds this problem because the relevant schema.org properties are missing or misplaced. The sport property exists in schema.org but only on SportsTeam and SportsEvent — not on Product. There is no suggestedActivity property on Product. There is no waterResistanceRating type. The entire spec vocabulary for outdoor gear must be built using additionalProperty arrays with consistent propertyID values — and that consistency across your catalog is what AI agents rely on for filtering.
Outdoor AI query types requiring structured data
| Query type | Example AI query | Required structured signal | Default Shopify output |
|---|---|---|---|
| Activity targeting | "gear for alpine climbing" | additionalProperty sport: "Climbing" |
Not present |
| Water resistance | "waterproof GPS watch IPX8" | waterResistanceRating: "IPX8" |
Not present |
| Temperature rating | "sleeping bag rated -20°F" | comfortTemperatureRating QuantitativeValue |
Not present |
| Weight | "ultralight tent under 2 lbs" | weight QuantitativeValue LBR |
Not present |
| Pack volume | "20-liter daypack for hiking" | packVolume QuantitativeValue LTR |
Not present |
| Rope diameter | "9.5mm dry climbing rope UIAA" | ropeDiameter QuantitativeValue MMT |
Not present |
| Climbing rating | "quickdraws for 5.12 sport climbing" | difficultyRating: "5.12a YOSEMITE" |
Not present |
| UPF protection | "UPF 50+ sun shirt for hiking" | upfRating QuantitativeValue |
Not present |
| Lumen output | "headlamp 500+ lumens for trail running" | luminousFlux QuantitativeValue LM |
Not present |
| Gear compatibility | "crampons for B2 mountaineering boots" | compatibleWith: "B2 Boot Sole Standard" |
Not present |
| Safety certification | "UIAA certified helmet for rock climbing" | hasCertification UIAA |
Not present |
Sport and Activity Signals: The Missing schema.org Property
Schema.org defines sport as a property of SportsTeam and SportsOrganization — not Product. Until schema.org adds a product-level sport property, the correct implementation is additionalProperty with propertyID: "sport". Use one entry per sport to enable multi-sport filtering (a product can be tagged for Hiking, Backpacking, and Trekking simultaneously).
Similarly, suggestedActivity is not a standard schema.org property on Product. Implement it as additionalProperty with propertyID: "suggestedActivity" and value strings that describe specific use cases beyond a sport category — "alpine climbing above 14,000 ft," "multi-day bikepacking," "coastal kayaking."
Standardized sport and activity values
| propertyID | Recommended values | AI query context |
|---|---|---|
sport |
Hiking, Backpacking, Climbing, Mountaineering, Skiing, Snowboarding, Cycling, Mountain Biking, Running, Trail Running, Swimming, Kayaking, Fishing, Camping, Snowshoeing | "best gear for trail running," "cycling apparel" |
suggestedActivity |
Day hiking, Alpine climbing, Winter camping, Bikepacking, Thru-hiking, Sport climbing, Trad climbing, Ice climbing, Nordic touring, Sea kayaking | "gear for thru-hiking PCT," "equipment for ice climbing" |
terrainType |
Alpine, Subalpine, Desert, Coastal, Technical rock, Snow, Mixed (rock and ice), Urban trail | "boots for technical alpine terrain" |
skillLevel |
Beginner, Intermediate, Advanced, Expert, All levels | "beginner climbing harness" |
Performance Spec additionalProperty with UN/CEFACT unitCode
All numeric performance specifications should use QuantitativeValue with the appropriate UN/CEFACT unit code. This enables AI agents to perform numeric comparisons — "under 3 lbs," "500 lumens or more," "-20°F or colder" — against your structured data rather than relying on NLP parsing of product description text.
UN/CEFACT unitCode reference for outdoor gear
| Property | propertyID | unitCode | unitText | Example value |
|---|---|---|---|---|
| Weight | weight |
LBR (US) / KGM (metric) | lb / kg | 2.8 lb / 1.27 kg |
| Pack volume | packVolume |
LTR | L | 65 L |
| Rope diameter | ropeDiameter |
MMT | mm | 9.5 mm |
| Rope length | ropeLength |
MTR | m | 60 m |
| Operating temp min | operatingTemperatureMin |
CEL | °C | -20 °C |
| Operating temp max | operatingTemperatureMax |
CEL | °C | 50 °C |
| Lumen output | luminousFlux |
LM | lm | 500 lm |
| UPF rating | upfRating |
P1 | UPF | 50+ |
| Pole / tube diameter | poleDiameter |
MMT | mm | 8.5 mm |
| Battery runtime | batteryRuntime |
HUR | hr | 150 hr (eco mode) |
Water resistance ratings (IPX scale) are categorical identifiers, not continuous measurements. Do not use QuantitativeValue for IPX — use a plain string value: "IPX7", "IPX8", or "IP67". Similarly, climbing difficulty grades (5.12a YOSEMITE, 6b FRENCH) are ordinal systems with non-numeric identifiers — encode as strings with the rating system in the value.
Complete JSON-LD Example: Trail Running Headlamp
This example shows a fully marked-up headlamp with IPX water resistance, lumen output, weight, battery type, operating temperature, sport targeting, and UIAA certification for use as a climbing headlamp.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "AlpineLux Pro 500 Headlamp — 500 Lumen IPX7 Rechargeable",
"description": "500-lumen rechargeable headlamp with IPX7 waterproofing, red night-vision mode, and 150-hour runtime in eco mode. Ideal for trail running, alpine climbing, and winter camping. USB-C charging. 78g.",
"url": "https://example.com/products/alpinelux-pro-500",
"sku": "HL-PRO-500-BLK",
"gtin13": "1234567890001",
"image": ["https://example.com/cdn/shop/products/alpinelux-pro-500-front.jpg"],
"brand": { "@type": "Brand", "name": "AlpineLux" },
"offers": {
"@type": "Offer",
"price": "64.95",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/products/alpinelux-pro-500",
"availabilityStarts": "2026-03-01",
"availabilityEnds": "2026-12-31"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "412",
"bestRating": "5"
},
"hasCertification": [
{
"@type": "Certification",
"name": "UIAA 106 Headlamps for Mountaineering",
"certificationIdentification": "UIAA-106-2024-0387",
"issuedBy": {
"@type": "Organization",
"name": "UIAA Safety Commission",
"url": "https://www.theuiaa.org/safety-standards/"
},
"certificationStatus": "CertificationActive"
},
{
"@type": "Certification",
"name": "CE EN 62471 Photobiological Safety",
"issuedBy": {
"@type": "Organization",
"name": "European Committee for Electrotechnical Standardization"
},
"certificationStatus": "CertificationActive"
}
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "waterResistanceRating",
"name": "Water Resistance Rating",
"value": "IPX7"
},
{
"@type": "PropertyValue",
"propertyID": "luminousFlux",
"name": "Maximum Lumen Output",
"value": {
"@type": "QuantitativeValue",
"value": 500,
"unitCode": "LM",
"unitText": "lm"
}
},
{
"@type": "PropertyValue",
"propertyID": "weight",
"name": "Weight (with battery)",
"value": {
"@type": "QuantitativeValue",
"value": 78,
"unitCode": "GRM",
"unitText": "g"
}
},
{
"@type": "PropertyValue",
"propertyID": "batteryRuntime",
"name": "Battery Runtime (max mode / eco mode)",
"value": "2 hr max / 150 hr eco"
},
{
"@type": "PropertyValue",
"propertyID": "batteryType",
"name": "Battery Type",
"value": "Built-in 1800mAh Li-ion (USB-C rechargeable)"
},
{
"@type": "PropertyValue",
"propertyID": "operatingTemperatureMin",
"name": "Minimum Operating Temperature",
"value": {
"@type": "QuantitativeValue",
"value": -20,
"unitCode": "CEL",
"unitText": "°C"
}
},
{
"@type": "PropertyValue",
"propertyID": "sport",
"name": "Sport",
"value": "Trail Running"
},
{
"@type": "PropertyValue",
"propertyID": "sport",
"name": "Sport",
"value": "Climbing"
},
{
"@type": "PropertyValue",
"propertyID": "sport",
"name": "Sport",
"value": "Camping"
},
{
"@type": "PropertyValue",
"propertyID": "suggestedActivity",
"name": "Suggested Activity",
"value": "Night trail running, Alpine climbing, Winter camping, Caving"
},
{
"@type": "PropertyValue",
"propertyID": "compatibleWith",
"name": "Compatible Battery",
"value": "USB-C 5V charging; also compatible with AAA battery pack (sold separately)"
}
]
}
</script>
Complete JSON-LD Example: Dynamic Climbing Rope
Climbing ropes require diameter, length, dry treatment, UIAA fall rating, and CE certification signals. This example covers a dry-treated single rope with full compliance markup.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "PeakLine Dry 9.5mm x 60m Single Climbing Rope — Dry Treatment",
"description": "UIAA-certified 9.5mm dry-treated single climbing rope, 60 meters. 8 UIAA falls, 9.1 kN maximum impact force, 29% elongation. Unicore construction. Dry Core + Dry Cover treatment for ice climbing and wet conditions.",
"url": "https://example.com/products/peakline-dry-9-5mm-60m",
"sku": "ROPE-PL-95-60-DRY",
"gtin13": "9876543210001",
"image": ["https://example.com/cdn/shop/products/peakline-dry-rope.jpg"],
"brand": { "@type": "Brand", "name": "PeakLine" },
"offers": {
"@type": "Offer",
"price": "229.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/products/peakline-dry-9-5mm-60m"
},
"hasCertification": [
{
"@type": "Certification",
"name": "UIAA 101 Dynamic Ropes",
"certificationIdentification": "UIAA-101-2025-1142",
"issuedBy": {
"@type": "Organization",
"name": "UIAA Safety Commission",
"url": "https://www.theuiaa.org/safety-standards/"
},
"certificationStatus": "CertificationActive"
},
{
"@type": "Certification",
"name": "CE EN 892 Dynamic Mountaineering Ropes",
"issuedBy": {
"@type": "Organization",
"name": "European Committee for Standardization (CEN)"
},
"certificationStatus": "CertificationActive"
},
{
"@type": "Certification",
"name": "bluesign Approved",
"issuedBy": {
"@type": "Organization",
"name": "bluesign technologies ag",
"url": "https://www.bluesign.com"
},
"certificationStatus": "CertificationActive"
}
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "ropeDiameter",
"name": "Rope Diameter",
"value": {
"@type": "QuantitativeValue",
"value": 9.5,
"unitCode": "MMT",
"unitText": "mm"
}
},
{
"@type": "PropertyValue",
"propertyID": "ropeLength",
"name": "Rope Length",
"value": {
"@type": "QuantitativeValue",
"value": 60,
"unitCode": "MTR",
"unitText": "m"
}
},
{
"@type": "PropertyValue",
"propertyID": "ropeType",
"name": "Rope Type",
"value": "Single (1)"
},
{
"@type": "PropertyValue",
"propertyID": "dryTreatment",
"name": "Dry Treatment",
"value": "Dry Core + Dry Cover (full treatment)"
},
{
"@type": "PropertyValue",
"propertyID": "uiaaFalls",
"name": "UIAA Falls (single)",
"value": {
"@type": "QuantitativeValue",
"value": 8,
"unitText": "falls"
}
},
{
"@type": "PropertyValue",
"propertyID": "impactForce",
"name": "Maximum Impact Force",
"value": {
"@type": "QuantitativeValue",
"value": 9.1,
"unitCode": "KN",
"unitText": "kN"
}
},
{
"@type": "PropertyValue",
"propertyID": "weight",
"name": "Weight per Meter",
"value": {
"@type": "QuantitativeValue",
"value": 61,
"unitCode": "GRM",
"unitText": "g/m"
}
},
{
"@type": "PropertyValue",
"propertyID": "sport",
"name": "Sport",
"value": "Climbing"
},
{
"@type": "PropertyValue",
"propertyID": "suggestedActivity",
"name": "Suggested Activity",
"value": "Sport climbing, Trad climbing, Ice climbing, Alpine climbing"
},
{
"@type": "PropertyValue",
"propertyID": "difficultyRating",
"name": "Suitable Up To (Difficulty)",
"value": "5.15d YOSEMITE / 9c FRENCH"
},
{
"@type": "PropertyValue",
"propertyID": "compatibleWith",
"name": "Compatible Belay Devices",
"value": "All UIAA-approved tube-style and assisted-braking belay devices for 9–10.5mm ropes"
}
]
}
</script>
Gear Compatibility: Standards Identifiers in compatibleWith
Outdoor gear compatibility is governed by technical standards that differ across product categories. Encoding these standards in additionalProperty compatibleWith fields lets AI agents answer "will this crampon fit my boot?" style queries from structured data rather than relying on written compatibility matrices in product descriptions.
| Product | Compatibility standard | propertyID: compatibleWith value | AI query example |
|---|---|---|---|
| Crampons | Boot sole stiffness standard | B1/B2/B3 Boot Sole (ISO 9523 / UIAA 152) |
"crampons for B2 mountaineering boots" |
| Ski bindings | Alpine boot toe/heel standard | ISO 5355 Alpine Boot (Mondo 26.0–31.0) |
"alpine bindings for size 9.5 ski boots" |
| Nordic bindings | Nordic boot standard | ISO 9523 Norm 75 Nordic Boot |
"telemark bindings 75mm Nordic norm" |
| Tent poles | Pole manufacturer / diameter | DAC Featherlite NSL 8.5mm |
"replacement tent pole DAC 8.5mm" |
| Bike components (BB) | Bottom bracket threading standard | Threaded BSA 68mm / PF30 86.5mm |
"bottom bracket for 68mm threaded shell" |
| Bike wheelset | Wheel size and axle standard | 29er / Boost 148x12mm Thru-Axle |
"29er wheels Boost 148 rear hub" |
| Headlamp | Battery format | 18650 Li-ion (3.7V) or 3x AAA alkaline |
"headlamp that takes 18650 batteries" |
| Ice axe | Technical axe head standard | UIAA 152 Technical (T) rating |
"technical ice axe UIAA T-rated" |
Footwear: SizeSpecification for Hiking Boots
Hiking boots and trail shoes require sizing data across US, EU, and UK systems. Use SizeSpecification inside a ProductGroup with variesBy: "https://schema.org/size" to express multi-system sizing. For detailed implementation, see Shopify Clothing & Apparel Size Schema.
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "TrailMaster GTX Waterproof Hiking Boot",
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"name": "TrailMaster GTX Hiking Boot — Men's US 10 / EU 44",
"size": {
"@type": "SizeSpecification",
"name": "US 10 / EU 44",
"sizeSystem": "https://schema.org/SizeSystemUS",
"sizeGroup": "https://schema.org/WearableSizeGroupMens",
"suggestedMeasurement": {
"@type": "QuantitativeValue",
"value": 28.0,
"unitCode": "CMT",
"unitText": "cm"
}
},
"gender": "https://schema.org/Male",
"offers": {
"@type": "Offer",
"price": "189.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
],
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "waterResistanceRating",
"name": "Waterproofing",
"value": "Gore-Tex Extended Comfort Footwear (IPX4 equivalent)"
},
{
"@type": "PropertyValue",
"propertyID": "sport",
"name": "Sport",
"value": "Hiking"
},
{
"@type": "PropertyValue",
"propertyID": "suggestedActivity",
"name": "Suggested Activity",
"value": "Day hiking, Multi-day backpacking, Light mountaineering"
},
{
"@type": "PropertyValue",
"propertyID": "compatibleWith",
"name": "Crampon Compatibility",
"value": "B1 walking crampons only (not suitable for B2/B3 technical crampons)"
},
{
"@type": "PropertyValue",
"propertyID": "terrainType",
"name": "Recommended Terrain",
"value": "Gravel trail, Rocky mountain, Light snow"
}
]
}
Outdoor Certifications in hasCertification
Outdoor and sporting goods certifications span safety compliance, environmental standards, and material provenance. The table below lists the most query-relevant certifications and their correct schema markup. For vehicle parts fitment compatibility patterns, see Shopify Vehicle Parts Fitment Schema.
| Certification | Product types | Issuing organization | AI queries matched |
|---|---|---|---|
| UIAA certified | Climbing ropes, helmets, harnesses, ice axes, carabiners | UIAA Safety Commission | "UIAA certified climbing helmet," "safety-rated harness" |
| CE EN 892 | Dynamic climbing ropes | CEN (European Committee for Standardization) | "CE certified climbing rope," "EN 892 dynamic rope" |
| CE EN 12275 | Connectors and carabiners | CEN | "EN 12275 locking carabiner" |
| bluesign Approved | Apparel, textiles, sleeping bags | bluesign technologies ag | "bluesign certified hiking jacket," "sustainable outdoor apparel" |
| Responsible Down Standard (RDS) | Down insulation, sleeping bags, jackets | Textile Exchange | "RDS certified down jacket," "responsibly sourced down sleeping bag" |
| GOTS (Global Organic Textile Standard) | Organic cotton base layers, merino wool | Global Standard gGmbH | "GOTS certified merino wool base layer" |
| NSF/ANSI 42 | Water filters (aesthetic reduction) | NSF International | "NSF 42 certified water filter backpacking" |
| NSF/ANSI 53 | Water filters (health effects reduction) | NSF International | "NSF 53 giardia filter backpacking water" |
| NSF/ANSI 58 | Reverse osmosis water systems | NSF International | "NSF 58 water purifier camping" |
Seasonal Availability: availabilityStarts and availabilityEnds
Many outdoor products have seasonal demand cycles — ski gear sells September through March, paddling gear April through September. Use availabilityStarts and availabilityEnds on the Offer block to signal seasonal relevance. AI agents use this for "in season" or "available now" filtering in seasonal gear queries.
{
"@type": "Offer",
"price": "349.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"availabilityStarts": "2026-09-01",
"availabilityEnds": "2027-03-31",
"description": "Seasonal alpine ski binding — available while ski season stock lasts. Restock expected September 2027."
}
Note: availabilityStarts / availabilityEnds refer to the availability window of the Offer, not the delivery date. For preseason drops or limited seasonal inventory restocks, combine with additionalProperty propertyID: "seasonalAvailability" with a descriptive value like "Winter 2026–2027 season only."
Shopify Liquid Snippet for Outdoor & Sport Schema
Store outdoor spec data in outdoor.* and sport.* metafield namespaces. Create these in Shopify Admin → Settings → Custom data → Products. The snippet below reads all performance-spec metafields and outputs the complete JSON-LD block.
| Metafield key | Type | Maps to | Example |
|---|---|---|---|
outdoor.water_resistance_rating |
Single-line text | waterResistanceRating |
IPX7 |
outdoor.weight_grams |
Decimal number | weight GRM QuantitativeValue |
78 |
outdoor.pack_volume_liters |
Decimal number | packVolume LTR QuantitativeValue |
65 |
outdoor.lumen_output |
Integer | luminousFlux LM QuantitativeValue |
500 |
outdoor.temp_min_celsius |
Decimal number | operatingTemperatureMin CEL |
-20 |
outdoor.temp_max_celsius |
Decimal number | operatingTemperatureMax CEL |
50 |
outdoor.upf_rating |
Single-line text | upfRating |
50+ |
outdoor.rope_diameter_mm |
Decimal number | ropeDiameter MMT |
9.5 |
outdoor.compatible_with |
Multi-line text | compatibleWith (one per line) |
B2/B3 Boot
ISO 5355 Alpine |
sport.sports |
Multi-line text | sport entries (one per line) |
Climbing
Hiking |
sport.suggested_activities |
Single-line text | suggestedActivity |
Alpine climbing, Sport climbing |
outdoor.certifications |
JSON | hasCertification array |
[{"name":"UIAA 101","id":"UIAA-101-2025-1142","issuer":"UIAA Safety Commission","url":"https://www.theuiaa.org"}] |
{% comment %} outdoor-schema.liquid — outputs outdoor/sport additionalProperty JSON-LD {% endcomment %}
{% assign is_outdoor = false %}
{% assign outdoor_types = 'Outdoor,Climbing,Hiking,Camping,Cycling,Running,Skiing,Snowboarding,Water Sports,Fishing' | split: ',' %}
{% for ot in outdoor_types %}
{% if product.type == ot %}{% assign is_outdoor = true %}{% endif %}
{% endfor %}
{% if product.metafields.sport.sports != blank %}{% assign is_outdoor = true %}{% endif %}
{% if product.metafields.outdoor.water_resistance_rating != blank %}{% assign is_outdoor = true %}{% endif %}
{% if is_outdoor %}
{% assign o_wresist = product.metafields.outdoor.water_resistance_rating %}
{% assign o_weight_g = product.metafields.outdoor.weight_grams %}
{% assign o_volume_l = product.metafields.outdoor.pack_volume_liters %}
{% assign o_lumens = product.metafields.outdoor.lumen_output %}
{% assign o_temp_min = product.metafields.outdoor.temp_min_celsius %}
{% assign o_temp_max = product.metafields.outdoor.temp_max_celsius %}
{% assign o_upf = product.metafields.outdoor.upf_rating %}
{% assign o_rope_d = product.metafields.outdoor.rope_diameter_mm %}
{% assign o_compat_raw = product.metafields.outdoor.compatible_with %}
{% assign o_certs_json = product.metafields.outdoor.certifications %}
{% assign s_sports_raw = product.metafields.sport.sports %}
{% assign s_activities = product.metafields.sport.suggested_activities %}
{% assign props_printed = 0 %}
{% endif %}
Save as snippets/outdoor-schema.liquid and render from your product template: {% raw %}{% render 'outdoor-schema' %}{% endraw %}.
5 Common Outdoor Gear Schema Mistakes
| # | Mistake | Impact | Fix |
|---|---|---|---|
| 1 | Using schema.org sport property directly on Product |
Invalid — sport is not a property of Product in schema.org. Validators will flag it and AI agents may discard the block |
Use additionalProperty with propertyID: "sport" — one entry per sport. This is the correct workaround until schema.org adds a product-level sport property |
| 2 | Encoding IPX water resistance as a QuantitativeValue with a numeric value |
IPX7 is not a number — it is a categorical standard. Encoding "7" without the IPX prefix strips the rating system context, breaking AI agent matching for queries like "waterproof IPX7" | Use a plain string value: "value": "IPX7". Always include the full rating designation including the prefix (IP, IPX) and class number |
| 3 | Missing compatibleWith fields for gear that uses industry standards |
Crampons, ski bindings, bike components, and tent poles have defined compatibility standards. Without this data, AI agents cannot answer fitment queries and will recommend competing products that do provide it | Add additionalProperty compatibleWith for every gear category with a recognized compatibility standard. Include the standard name and identifier in the value string |
| 4 | No hasCertification for safety-critical climbing and water filtration gear |
UIAA and CE EN certifications are primary filters for climbing gear queries. NSF/ANSI 53 certification is the primary filter for backcountry water filter queries. Missing these certifications causes exclusion from the highest-intent safety-specific queries | Add hasCertification for every applicable safety standard. Include certificationIdentification and issuedBy with the organization URL |
| 5 | Temperature specs in product title only ("Good to -20°F") | AI agents filtering by numeric temperature threshold ("sleeping bag rated below 0°F") cannot apply a comparison operator against free-text title strings. The product is excluded from temperature-filtered queries | Add additionalProperty QuantitativeValue for both operatingTemperatureMin and comfortTemperatureRating. Use CEL for Celsius and FAH for Fahrenheit, and include both for US-plus-international catalog coverage |
Frequently Asked Questions
Does schema.org have a 'sport' property on Product?
No — schema.org's sport property is defined on SportsTeam and SportsEvent, not on Product. For sporting goods products, use additionalProperty with propertyID: "sport" and value strings like "Hiking", "Climbing", "Skiing". Use one entry per sport for multi-sport products. This is the correct workaround until schema.org extends the sport property to Product.
How should I encode water resistance ratings (IPX) in schema?
Use additionalProperty with propertyID: "waterResistanceRating" and a plain string value — for example "IPX7". Do not encode IPX ratings as QuantitativeValue with a numeric value. The IPX designation is a categorical standard identifier, not a continuous measurement. AI agents match the full string "IPX7" against user queries like "waterproof IPX7 headlamp." If a product has no water resistance rating, explicitly set "value": "Not Rated" rather than omitting the property.
What unitCode should I use for temperature ranges in outdoor gear schema?
Use UN/CEFACT unit code CEL for Celsius and FAH for Fahrenheit. For sleeping bags, use propertyID: "comfortTemperatureRating" and "lowerLimitTemperatureRating" to align with ISO 23537 testing standards. For electronics like headlamps and GPS devices, use operatingTemperatureMin / operatingTemperatureMax. Always include both Celsius and Fahrenheit entries for catalogs serving US and international customers.
How do I handle gear compatibility (crampons, ski bindings, bike components) in schema?
Use additionalProperty with propertyID: "compatibleWith" and a descriptive value string that includes the standard name and identifier: "B2/B3 Mountaineering Boot (ISO 9523 / UIAA 152)". Do not use the schema.org isCompatibleWith property — it expects a Product @type, not a standard name. Use one compatibleWith entry per standard to allow filtering against individual compatibility criteria. See also the Vehicle Parts Fitment Schema guide for related fitment patterns.
Which outdoor certifications should I prioritize in hasCertification?
Prioritize certifications that are primary filters in AI outdoor gear queries: UIAA (climbing hardware), CE EN 892 (dynamic ropes), bluesign (apparel sustainability), Responsible Down Standard / RDS (insulation), NSF/ANSI 42 and NSF/ANSI 53 (water filters). Each hasCertification block should include issuedBy with an Organization url so AI agents can cross-reference the credential against the issuing body's own data. For apparel with size-specific fit and gender properties, see Shopify Clothing & Apparel Size Schema.
Is your outdoor gear catalog invisible to AI shopping agents?
CatalogScan audits your Shopify store's structured data and flags missing sport signals, performance specs, compatibility fields, and certifications across your entire product catalog — not just sample pages.
Run Free ScanRelated Resources
- Shopify Clothing & Apparel Size Schema — SizeSpecification & WearableSizeSystemEnumeration
- Shopify Vehicle Parts Fitment Schema — Compatibility & Fitment Structured Data
- Product Safety Certifications Schema — NSF, UIAA, CE in JSON-LD
- Shopify Product Specifications Schema — additionalProperty Reference
- E-commerce Product Weight & Dimensions Schema
- CatalogScan Blog — AI Shopping Agent Optimization