Schema markup is structured data that helps search engines understand the content on your pages. For Shopify stores, it enables rich results in Google — star ratings, product prices, availability badges, FAQ dropdowns, and breadcrumb trails that make your listings stand out in search results and dramatically increase click-through rates.
Most Shopify themes include basic schema, but it is rarely comprehensive enough. The default Product schema often misses reviews, brand information, SKU, and GTIN fields. Blog posts typically have no Article schema at all. FAQ schema is almost never included by default. This guide covers how to audit what you have, implement what is missing, and validate everything works correctly.
This complements our technical SEO for Shopify guide and is a core part of our SEO services and Shopify development work.
What schema markup is and why it matters
Schema.org is a collaborative vocabulary that defines structured data types. When you add schema markup to your pages, you are translating your content into a format that search engines can parse programmatically. This structured understanding enables rich results — enhanced search listings that display additional information directly in the search results.
Rich results for ecommerce
The rich results most relevant to Shopify stores include:
- Product rich results: Show price, availability, and review ratings in search listings
- FAQ rich results: Show expandable questions and answers directly in search results, occupying more SERP real estate
- Breadcrumb rich results: Show the page hierarchy in the search listing instead of the raw URL
- Article rich results: Show author, date, and headline for blog content
- Sitelinks search box: Show a search box in your brand name search results
The click-through rate impact
Studies consistently show that rich results increase click-through rates by 20–35% compared to standard listings. For a product page ranking on the first page, this can mean hundreds of additional clicks per month. Multiply that across your entire product catalogue and the impact is substantial.
Step 1: Audit your existing schema
Before adding new schema, understand what your theme already includes.
Test key page types
Run Google’s Rich Results Test on each page type: a product page, a collection page, a blog post, and the homepage. Note which schema types are detected, which fields are populated, and which errors or warnings appear.
Check for duplicate or conflicting schema
Some themes output schema in the theme code, while apps may inject additional schema. Multiple conflicting schema blocks for the same entity confuse search engines. Search your theme code for application/ld+json to find all existing schema and identify any conflicts.
Common gaps in Shopify themes
- Product schema missing
brand,sku,gtin, orreviewfields - No BreadcrumbList schema on any pages
- No Article schema on blog posts
- No Organisation schema on the homepage
- No FAQ schema on pages with FAQ content
- Missing
imageordescriptionin Product schema
Step 2: Implement Product schema
Product schema is the most important schema type for ecommerce stores. It enables product rich results with price, availability, and review ratings.
Required fields
At minimum, Product schema should include:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "{{ product.title | escape }}",
"description": "{{ product.description | strip_html | truncate: 500 | escape }}",
"image": "{{ product.featured_image | image_url: width: 1200 }}",
"brand": {
"@type": "Brand",
"name": "{{ product.vendor | escape }}"
},
"sku": "{{ product.selected_or_first_available_variant.sku | escape }}",
"offers": {
"@type": "Offer",
"url": "{{ shop.url }}{{ product.url }}",
"priceCurrency": "{{ cart.currency.iso_code }}",
"price": "{{ product.selected_or_first_available_variant.price | money_without_currency }}",
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}"
}
}
</script>
Adding review data
If you use a reviews app (Judge.me, Stamped, Loox, etc.), include the aggregateRating property. Most review apps provide a Liquid variable for the average rating and review count. Consult your review app’s documentation for the exact variable names.
Multiple variants
For products with multiple variants at different prices, use an AggregateOffer instead of a single Offer. This specifies a price range with lowPrice and highPrice rather than a single price.
Step 3: Add BreadcrumbList schema
BreadcrumbList schema helps Google display your page hierarchy in search results instead of the raw URL. This improves user understanding and click-through rates.
Implementation
Add BreadcrumbList schema to every page type. The breadcrumb trail should mirror your visual breadcrumb navigation. For a product page, the trail might be: Home > Collection > Product.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "{{ shop.url }}"},
{"@type": "ListItem", "position": 2, "name": "{{ collection.title | escape }}", "item": "{{ shop.url }}{{ collection.url }}"},
{"@type": "ListItem", "position": 3, "name": "{{ product.title | escape }}", "item": "{{ shop.url }}{{ product.url }}"}
]
}
</script>
Step 4: Add FAQ schema
FAQ schema enables expandable Q&A dropdowns in search results, which significantly increase the space your listing occupies on the SERP. Add FAQ schema to any page that contains FAQ content — product pages with common questions, informational pages, and blog posts with FAQ sections.
When to use FAQ schema
FAQ schema should only be used when the page contains genuine frequently asked questions that are visible to users. Do not add FAQ schema for content that is not displayed on the page — this violates Google’s guidelines and can result in a manual action.
Implementation with metafields
For product pages, use Shopify metafields to store FAQ content per product. This allows you to maintain FAQs in the Shopify admin and output them dynamically in both the visible FAQ section and the schema markup.
Step 5: Add Article schema to blog posts
Article schema helps Google understand your blog content and can enable article rich results with the author name, publication date, and headline image.
Essential Article schema fields
headline— the blog post titledatePublishedanddateModifiedauthor— with name, URL, and sameAs linkspublisher— your organisationimage— the featured imagedescription— a brief summary
Author markup
Google places increasing emphasis on author authority, especially for YMYL (Your Money, Your Life) content. Include detailed author information with the Person type, including sameAs links to social profiles and a knowsAbout array for expertise areas. Our approach to this is detailed in our product page SEO guide.
Step 6: Add Organisation schema
Organisation schema on your homepage tells Google about your business — name, logo, contact information, and social media profiles. This helps with knowledge panel results and brand search appearance.
Essential Organisation fields
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Store Name",
"url": "{{ shop.url }}",
"logo": "{{ 'logo.png' | asset_url }}",
"sameAs": [
"https://www.instagram.com/yourbrand",
"https://www.facebook.com/yourbrand",
"https://www.linkedin.com/company/yourbrand"
],
"contactPoint": {
"@type": "ContactPoint",
"email": "hello@yourstore.com",
"contactType": "customer service"
}
}
</script>
LocalBusiness for physical stores
If you have a physical retail location, use LocalBusiness schema instead of or in addition to Organization. Include your address, opening hours, and phone number. This enables Google Maps and local search results. For our conversion optimisation clients, we find that local signals strengthen trust and conversion rates.
Step 7: Test and validate everything
Schema markup must be syntactically correct and factually accurate. Errors can prevent rich results from displaying or, in extreme cases, trigger manual actions.
Use Google’s Rich Results Test
Test every page template at search.google.com/test/rich-results. Verify that each schema type is detected, all required fields are present, and there are no errors. Warnings are acceptable but should be addressed where possible.
Use the Schema Markup Validator
For more detailed validation, use validator.schema.org. This checks against the full Schema.org specification, which is stricter than Google’s requirements. Passing both tools ensures maximum compatibility.
Monitor in Google Search Console
After implementing schema, check the Enhancements reports in Google Search Console. Google reports on Product, FAQ, Breadcrumb, and other structured data types. These reports show which pages have valid schema, which have errors, and which have warnings. Monitor these reports weekly after implementation.
Test after theme updates
Theme updates can overwrite custom schema markup. After any theme update, re-test your key page types to ensure schema is still present and correct. Use a version control system or backup your theme before updates to make rollback possible.
Schema markup is one of the highest-ROI technical SEO tasks for any Shopify store. The implementation effort is modest — a few hours of theme code changes — but the impact on click-through rates from rich results can be dramatic and permanent.
Andrew Simpson, Founder
Bringing it together
Adding schema markup to Shopify is a structured process: audit what exists, implement Product schema with all required fields, add BreadcrumbList schema to every page, include FAQ schema where appropriate, add Article schema to blog posts, add Organisation schema to the homepage, and validate everything with Google’s testing tools.
The most important point is that schema must be accurate. Never include information in schema that is not visible on the page. Never fabricate reviews or ratings. Google validates schema against page content and penalises mismatches. Accurate, comprehensive schema is the goal.
If you need help implementing schema markup on your Shopify store, get in touch. We build schema into every Shopify project we deliver.