FAQ Schema.org Generator — Documentation
Install and configure the DfFaqSchema plugin: FAQ entries per product, category and CMS page, Shopping Experiences CMS element and FAQPage JSON-LD markup on Shopware 6.5 to 6.7.
Overview
DfFaqSchema adds editable question and answer blocks to product pages, category pages and Shopping Experiences layouts in Shopware 6. Each block renders as a Bootstrap accordion and comes with Schema.org FAQPage markup in JSON-LD, automatically injected into the page. The plugin supports Shopware 6.5, 6.6 and 6.7 and requires no changes to your theme.
Installation
Through the administration
- Open Extensions, then My extensions, and upload the plugin ZIP file.
- Click Install, then activate the plugin.
Through the console
bin/console plugin:refresh
bin/console plugin:install --activate DfFaqSchema
bin/console cache:clear
Building the administration
The administration module and the CMS element require a one-time asset build:
./bin/build-administration.sh
Without this step the FAQ Schema.org menu and the CMS element do not appear in the administration. The storefront works immediately after activation.
Configuration
Open Extensions, My extensions, then the DfFaqSchema configuration. Two options are available, globally or per sales channel:
- Show FAQs on product pages: enables the accordion and the JSON-LD on product pages (enabled by default).
- Show FAQs on category pages: enables the accordion and the JSON-LD on navigation pages (enabled by default).
Creating FAQ entries
Open Content, then FAQ Schema.org. The listing shows every entry with its question, assignment, position and status.
Entry fields
- Question: the question text (translated field).
- Answer: the rich text answer through the built-in editor (translated field).
- Position: the display order in the accordion, ascending.
- Active: only active entries are displayed and marked up.
- Assignment: product, category or CMS page. The type selector shows the matching search field.
Translating an entry
Use the language switch at the top of the detail page to change language, then enter the translated question and answer. Each storefront language shows its own content and the JSON-LD follows automatically.
An entry without a translation in a given language falls back to the system default language, following Shopware’s standard mechanism.
Product and category display
Entries assigned to a product render below the main content of the product page. Entries assigned to a category render below the listing of the navigation page. In both cases the matching FAQPage JSON-LD is injected into the document head. The first accordion question is expanded by default.
CMS element for Shopping Experiences
- Create your entries in the module without assigning them to a product or category (CMS page assignment).
- Open Content, then Shopping Experiences, and edit a layout.
- Add a text block, then replace its element with the FAQ (Schema.org) element.
- In the element configuration, select the entries to display.
The accordion and its JSON-LD render exactly where the element is placed. You can use several FAQ elements on the same layout.
JSON-LD markup and validation
The plugin generates a FAQPage object with one Question entity per displayed entry, the answer being carried as HTML in the text field of the Answer entity, which Google accepts. The markup only covers content actually visible on the page, in line with the rich results guidelines.
To validate a page, use Google’s Rich Results Test: paste the URL of your product page and check that the FAQ item is detected without errors.
Whether rich results actually appear remains at Google’s discretion, and since 2023 they are mostly shown for authoritative government and health sites. The markup remains valuable for how search engines and AI assistants understand your pages.
Troubleshooting
- The FAQ Schema.org menu does not appear: run the administration build, then clear your browser cache.
- The accordion does not show on a product page: check that the entry is active, assigned to that product, and that the product display option is enabled for the relevant sales channel.
- The JSON-LD is missing: the markup is only generated when at least one active entry is displayed on the page. Check the page source for application/ld+json.
- The CMS element shows nothing: check that entries are selected in the element configuration and that they are active.
Uninstall
Uninstalling removes the plugin tables and its configuration. Tick the keep user data option during uninstall to preserve your questions and answers for a later reinstall.