With release 6.7.9.0, Shopware switches the storefront from the legacy Microdata format to modern JSON-LD (Shopware Release Notes). For merchants, this is more than a technical detail: JSON-LD is now used by around 70% of all websites with schema — Microdata only by around 46% (Web Almanac/HTTP Archive). Implementing JSON-LD cleanly delivers +82% higher CTR through Rich Results (Schema App), up to +20-40% more clicks on e-commerce listings (Digital Applied), and 2.5x more frequent citations in LLM answers (Stackmatix). This guide shows what changes concretely in Shopware 6.7.9.0, which new schema types are now emitted automatically, and how to migrate from Microdata to JSON-LD without SEO risk — including required fields, template overrides, and a validation workflow for your SEO presence.
What Shopware 6.7.9.0 Changes for Schema
Until now, the Shopware storefront relied on Microdata — schema attributes were written directly into HTML tags (itemprop, itemtype, itemscope). Version 6.7.9.0 switches to JSON-LD: structured data is emitted as a separate <script type="application/ld+json"> block in the page <head> (Shopware Release Notes 6.7.9.0). Shopware thus follows the standard Google recommends and that most modern web platforms have long adopted.
The change appears purely technical at first, but has tangible consequences for SEO visibility. 71% of all sites with schema fail to pass the Rich Results Test cleanly (Digital Applied 2026). Microdata-based markup in complex Twig templates is particularly prone to invalid structures because tags and attributes are spread across multiple files. JSON-LD decouples structured data from layout markup, making it significantly more maintainable and verifiable (SearchPilot).
A direct ranking advantage of JSON-LD over Microdata is not documented — SearchPilot explicitly notes that both formats are indexed equally (SearchPilot). The benefit lies in validity, maintainability, and extensibility: new schema types like WebSite/SearchAction or VideoObject can be added cleanly as additional script blocks in JSON-LD without touching HTML markup.
| Aspect | Microdata (legacy) | JSON-LD (from 6.7.9.0) |
|---|---|---|
| DOM position | spread across HTML | bundled in <head> |
| Developer readability | hard to follow | one block, one record |
| Validation | tag by tag | full block in Rich Results Test |
| Maintainability | coupled to layout | decoupled from layout |
| Google recommendation | accepted | preferred |
| Adoption | approx. 46% (Web Almanac) | approx. 70% (Web Almanac) |
| Storefront status | deprecated, removed in 6.8.0 | new standard |
Legacy Microdata markup is flagged as deprecated from 6.7.9.0 and will, according to the Shopware forum, be fully removed in version 6.8.0. Anyone who has extended their templates with custom itemprop attributes should migrate them to JSON-LD overrides in time, before the major update arrives.
Activate the JSON_LD_DATA Feature Flag
To prevent existing shops from suddenly emitting duplicate schema markup during migration, Shopware put the feature behind a feature flag: JSON_LD_DATA. As long as the flag is disabled, the storefront keeps rendering Microdata. Once enabled, Microdata attributes are removed from HTML tags and the new JSON-LD blocks are emitted instead (Shopware GitHub).
# Activate the JSON-LD feature flag
FEATURE_JSON_LD_DATA=1
# Clear the cache so the flag takes effect
bin/console cache:clear
bin/console feature:dumpAlternatively, the flag can be set in config/packages/shopware.yaml, which is cleaner for multi-stage setups (staging, production). For migration, we recommend this sequence: first activate on a staging environment, check the rendered HTML with the Rich Results Test, adjust your own template overrides, then go live.
shopware:
feature:
flags:
- name: JSON_LD_DATA
default: true
major: false
description: 'Storefront emits JSON-LD instead of Microdata'The flag is intended as a migration switch, not a permanent solution. It knows two states: off (Microdata as before) or on (JSON-LD only). Parallel emission of both formats is intentionally not supported, since it would trigger duplicate-schema warnings in the Rich Results Test.
New Schema Types in Detail
The switch to JSON-LD is not just a format change — Shopware 6.7.9.0 also adds new schema types that previously had to be emitted by custom plugins (Atwix Analysis). The storefront now covers significantly more Rich Results scenarios out of the box and improves visibility in Generative Engine Optimization.
WebSite with SearchAction
On the homepage, a WebSite object with embedded SearchAction is emitted. This enables Google to display the Sitelinks Searchbox — a search field directly under your SERP entry that points to your internal search.
Organization with Logo
Organization markup with name, url, and logo enables the Knowledge Panel logo in Google. Important: the logo must be at least 112x112 pixels per Google guidelines, square, and not blocked in robots.txt.
ItemList for Categories & Search
Category and search-result pages get an ItemList schema describing the contained products as an ordered list. This helps Google classify the page as a listing rather than a single product page.
VideoObject in Products
When product videos are configured, a VideoObject with name, description, thumbnailUrl, and uploadDate is delivered automatically. A prerequisite for video Rich Results in Google search.
The known types remain in place: Product, Offer, AggregateRating, Review, BreadcrumbList, and FAQPage. They are now emitted not as Microdata but as separate JSON-LD blocks — one per type, which significantly simplifies validation.
Product Schema: Required Fields for Rich Results
For Google to recognize Product markup as a Rich Result, at least name and image must be set, plus one of offers, review, or aggregateRating (Schema App). Shopware delivers these fields out of the box, provided product master data is properly maintained. Product Schema can boost Google Shopping visibility by a factor of 4.2 (Schema App).
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Organic Espresso 1kg",
"image": "https://shop.example.com/media/espresso-1kg.jpg",
"description": "Single-origin organic espresso from highland cultivation, slow-roasted.",
"sku": "ESP-BIO-1000",
"gtin13": "4015834012345",
"brand": {
"@type": "Brand",
"name": "Example Roastery"
},
"offers": {
"@type": "Offer",
"price": "89.90",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"url": "https://shop.example.com/espresso/organic-1kg"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"ratingCount": "184"
}
}- name (required): product name, no marketing fluff
- image (required): minimum 500x500 pixels from 2026 for Google Merchant (Google Merchant Update)
- description: coherent text, no bullet lists
- sku: internal article number for unique identification
- gtin/gtin13: EAN/GTIN for Google Shopping and Merchant Listings
- brand: brand as a
Brandobject, not a plain string - offers: at minimum
priceandpriceCurrency, otherwise no Rich Results - aggregateRating or review: at least one, for star ratings in the SERP
If one of the required fields is missing, the Rich Results Test will still validate, but Google won't show the product as a Rich Result — the schema lands in the index but produces no visible benefit. The most common practical mistake: empty gtin fields in master data, or brand as a plain text string instead of an object.
Offer & Merchant Listings
For Google Merchant Listings (organic shopping entries), the minimal Offer fields are not enough. Google additionally requires priceCurrency, availability, and itemCondition as URL values from the schema.org vocabulary. E-commerce with schema typically achieves +20-40% CTR compared to unstructured listings (Digital Applied).
{
"@type": "Offer",
"price": "89.90",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"priceValidUntil": "2026-12-31",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "4.90",
"currency": "EUR"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "DE"
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"applicableCountry": "DE"
}
}Shopware emits shippingDetails and hasMerchantReturnPolicy automatically from 6.7.9.0 only if matching master data is maintained in the shipping and returns settings. Anyone with gaps here should fill them before migration or extend them via a custom template override — otherwise Merchant Listings are excluded from Rich Result pools. More on clean data maintenance in our article on real-time inventory sync across channels.
AggregateRating and Reviews
Star ratings in the SERP are one of the biggest CTR levers: review schema typically delivers +20% organic traffic (SearchPilot). Shopware supports both aggregateRating (averages) and individual Review objects. For markup to be considered valid, ratingValue must be combined with ratingCountorreviewCount — not just a single value.
{
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"ratingCount": "184",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "M. Smith"
},
"datePublished": "2026-04-12",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"reviewBody": "Very aromatic espresso, fast delivery."
}
]
}Google does not accept reviews that a shop emits about itself as markup (e.g., "4.9 stars based on 1,200 reviews of our shop"). Review schema must refer exclusively to the specific product displayed on the page. If shops violate this, star snippets are removed retroactively — without warning.
BreadcrumbList for SERP Paths
Instead of the plain URL, Google likes to display the category path in the SERP — provided a BreadcrumbList is included in the schema. This typically delivers +20-30% CTR, because users grasp the page context before clicking (Schemavalidator). Shopware generates the breadcrumb automatically from the category structure.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://shop.example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Espresso",
"item": "https://shop.example.com/espresso/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Organic Espresso 1kg"
}
]
}Required fields are position, name, and — except for the last element — item with an absolute URL. The last element points to the current page and therefore needs no item value. Important: the breadcrumb order must exactly match the on-page navigation, or Google discards the markup as misleading.
FAQ and HowTo Schema
FAQ schema is among the most effective building blocks for AI Overviews and LLM citations: structured question-and-answer pairs are picked up especially eagerly by generative search engines. FAQPage schema reaches a 67% citation rate in AI answers (Frase.io/Stackmatix), and AI-optimized schemas are cited 3.2x more frequently (Stackmatix). Shopware emits FAQ markup from 6.7.9.0 automatically for CMS blocks of type "accordion" if the corresponding CMS block is configured for it.
Important to know: Google reduced the display of FAQ Rich Results in classic blue links for most industries in 2023. The markup is still indexed, however, and remains relevant for AI Overviews, Bing Chat, and LLM answers in tools like Google AI Mode or Perplexity. More in our analysis of Google AI Mode and Generative Engine Optimization.
FAQs should pair one question with one focused answer — at most 2-3 sentences. Long marketing copy is cited less by LLMs than concise answers. Brands featured in AI Overviews typically see +35% organic clicks (ALM Corp) when the FAQ markup matches search intent.
Overriding Templates: storefront/layout/structured-data/
Shopware places JSON-LD templates under storefront/layout/structured-data/ — one Twig file per schema type. This makes overrides much clearer than the legacy Microdata, which was scattered deep inside product and category templates. Custom adjustments can be made via standard Twig inheritance in a plugin or theme.
{% sw_extends '@Storefront/storefront/layout/structured-data/product.html.twig' %}
{% block layout_structured_data_product %}
{{ parent() }}
{# Custom extension: GTIN from custom field #}
{% if product.customFields.custom_gtin %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "{{ product.translated.name|json_encode|raw }}",
"gtin13": "{{ product.customFields.custom_gtin }}"
}
</script>
{% endif %}
{% endblock %}Anyone needing more complex adjustments — for example additional Offer variants for tiered pricing or a custom VideoObject from a custom field — should override the relevant block instead of copying the entire template. This avoids conflicts with future Shopware updates. For larger migrations, an accompanying code review by our developers helps catch performance impacts early, especially in interplay with PHP 8.5.
Validation with the Rich Results Test
Before going live, every page type must be validated — product detail, category, homepage, search results, and CMS pages. It's not enough to test only one example product page. 22% of all schema implementations pass the Rich Results Test cleanly (Digital Applied) — meaning 78% have errors that often only become visible when traffic drops.
- Rich Results Test (Google): Checks whether Google recognizes the markup as a Rich Result — not just whether it's valid.
- Schema Markup Validator (schema.org): Checks conformity against the schema.org vocabulary, independent of Google.
- Search Console / Enhancements area: Shows after 1-2 weeks which markups Google has indexed live and which errors remain.
- Your own CI pipeline: Headless-browser test with snapshots of rendered JSON-LD blocks per page type — prevents regressions on future updates.
Important: with position-1 CTR down -32% in 2025/26 (Advanced Web Ranking) — largely in favor of AI Overviews and Rich Snippets — correct schema implementation becomes a mandatory resource for e-commerce visibility, not a nice-to-have. Anyone losing classic CTR needs to compensate via extended SERP features.
Migration: From Microdata to JSON-LD
A clean migration runs in five comprehensible steps — ideally on a staging environment, with active Search Console monitoring after go-live.
- Inventory: Document the current Microdata implementation — which schema types are emitted, what custom extensions exist, which plugins touch schema markup? An audit checklist prevents markup gaps from emerging during the switch.
- Update to 6.7.9.0: Update the Shopware core, check Composer dependencies, test all plugins for compatibility. On staging first, not directly in production.
- Activate the feature flag: Set
JSON_LD_DATA=1in the staging configuration, clear the cache, render every page type, and inspect the DOM for Microdata leftovers. - Adjust templates: Rewrite custom Microdata extensions as JSON-LD overrides under
storefront/layout/structured-data/. Carry over custom fields and plugin data. - Validation & go-live: Check every page type in the Rich Results Test, fix issues if any, then switch to production and monitor Search Console for at least 4 weeks — if AI Overview visibility or star snippets drop, intervene precisely.
Anyone planning further large changes in parallel — such as a migration from WooCommerce to Shopware, Lighthouse optimization to a score of 100, or the introduction of subscription models — should isolate the JSON-LD migration: clean up schema first, then tackle the next item. This makes any visibility losses clearly attributable.
JSON-LD Is the Mandatory Foundation for Visibility
With Shopware 6.7.9.0, JSON-LD moves from optional add-on to storefront standard. Microdata shrinks year by year, RDFa with only 3% market share is irrelevant (W3Techs) — JSON-LD is the format Google, Bing, and LLM-based search engines optimize for. Anyone migrating cleanly secures Rich Results, AI citations, and a clear lead over the 78% of shops with faulty markup. More on structured data in our foundational article Structured Data for Online Shops and in our analysis Optimizing Product Data with AI. Connection to Google Shopping and Merchant Center: through our Google Merchant Center module. Raw-data maintenance and schema enrichment are handled by our AI-driven data enrichment.
This article draws on data and publications from: Schema App, Tonic Worldwide, Web Almanac/HTTP Archive, Stackmatix, Digital Applied, SearchPilot, ALM Corp, Advanced Web Ranking, Schemavalidator, W3Techs, Google Merchant Center, Shopware Release Notes 6.7.9.0, and Atwix. Numbers cited are snapshots and can vary by industry and reporting period.
An immediate upgrade is typically not mandatory but recommended. Microdata will, according to the Shopware forum, be removed in 6.8.0 — those who migrate early have more time to adapt their own templates and can test the feature flag calmly on staging. The switch to 6.7.9.0 is a patch release and is generally backward-compatible.
A direct ranking loss from the format change is not documented according to SearchPilot — both formats are indexed equally by Google. Risks typically arise only when custom schema extensions are not migrated along, leaving markup gaps. Accompanying validation with the Rich Results Test reduces this risk.
Generally, Product, Offer, AggregateRating, and BreadcrumbList are the revenue-critical types, since they drive star snippets, price display, and category paths in the SERP. Additionally WebSite/SearchAction for the Sitelinks Searchbox, Organization for the Knowledge Panel logo, and FAQPage for AI Overview citations.
For standard shops with well-maintained master data, the feature flag is typically enough. Adjustments are usually needed if you want to emit custom fields (e.g., extra GTINs, manufacturer info, videos) in schema, or if you maintain existing Microdata extensions in your own plugins. In those cases, a template override under storefront/layout/structured-data/ is, in our experience, the cleanest path.
Duration depends on complexity. Standard shops without custom schema extensions can typically be migrated within a few days — including staging tests, validation, and go-live. For shops with individual plugins, custom fields, and multilingual storefronts, an effort of one to three weeks is, in our experience, realistic.
Studies show that schema-markup-compliant content is typically cited 2.5x more frequently in LLM answers (Stackmatix), and FAQPage markup reaches a 67% citation rate in AI answers (Frase.io/Stackmatix). Visibility cannot be guaranteed, but the data clearly supports the case that structured data is an important lever for Generative Engine Optimization.