Metafield + Liquid Snippet (Manual)
The gold-standard manual approach is creating a dedicated snippet — for example snippets/schema-product.liquid — and rendering it from main-product.liquid. Inside that snippet you output a script type="application/ld+json" block that references metafields using Liquid: for instance, product.metafields.custom.voltage | json or product.metafields.custom.faq_list.value. The | json Liquid filter handles escaping automatically, preventing malformed JSON from unescaped characters in product descriptions.
This approach scales cleanly to thousands of SKUs: once the snippet is built, every new product that has its metafields populated receives accurate schema with no developer touch. The metafield definitions live under Settings {} Custom Data in the Shopify admin, where you define namespace (custom), key (faq_list, voltage, ratingValue), and content type (JSON, single-line text, integer). The weakness is human: if nobody monitors Search Console Enhancements after a theme upgrade, broken schema can go undetected for weeks. See our guide on Shopify schema markup for products, articles, and FAQ pages for the full Liquid template patterns.


























