- Product structured data (Product)
- Variant products (ProductGroup + variants)
- Brand & store entity (Organization / LocalBusiness)
- WebSite + SearchAction, BreadcrumbList, FAQPage, CollectionPage
- Shipping & returns (OfferShippingDetails, MerchantReturnPolicy)
- Built-in audit and performance (cache)
- Will the module slow down my store?
- Can I use it with another SEO module?
- Do structured data guarantee rich snippets?
Schema Pro
Overview
Schema Pro is a PrestaShop module designed to automatically generate clean, complete, Google-friendly Schema.org structured data in JSON-LD. While PrestaShop’s native markup is often limited (and can sometimes produce fragile JSON), Schema Pro builds JSON-LD on the PHP side with json_encode() to prevent formatting issues and ensure consistent output across all pages. The goal is simple: help search engines understand your content and increase your chances of showing rich results (price, availability, ratings, breadcrumbs, FAQs, and more), improving both visibility and click-through rate.
Key benefits:
- Full, compliant JSON-LD markup (e-commerce + content pages)
- ProductGroup + variants support (Google spec 2024)
- Shipping & return policies (OfferShippingDetails, MerchantReturnPolicy)
- Built-in audit (score, errors, warnings, export)
- Smart cache with automatic invalidation
Why this module
Structured data is a practical SEO lever for PrestaShop stores: it helps Google interpret your product pages, category listings, brand identity (Organization/LocalBusiness), and navigation elements (BreadcrumbList). In reality, many stores run incomplete or duplicated markup (multiple modules), or inconsistent product data (variants not declared correctly, missing product identifiers, lack of shipping/returns info). Schema Pro centralizes everything into a single, configurable, Google-readable markup, improving quality while reducing validation errors.
Features
Product structured data (Product)
Schema Pro generates an enriched Product schema on your product pages: name, description, images (all images, not just the cover), SKU/reference, brand/manufacturer, identifiers (EAN/GTIN, MPN, ISBN/UPC when available), category, URL, condition, and Offers (price, currency, availability, seller, price validity). The objective is to provide Google with a clear and complete signal about your offer. The module can also include ratings and reviews (AggregateRating and Reviews) via a compatible review source, reinforcing trust when enough data is available.
Variant products (ProductGroup + variants)
For products with size, color, or other attributes, Schema Pro can generate a ProductGroup aligned with Google’s recommendations (2024). Variants are declared using hasVariant, each with its own data (SKU, EAN, price, stock, image, variant URL). The module automatically detects variation axes via variesBy (e.g., color, size) and can limit the number of variants included to keep JSON-LD performant and reasonable. This is especially useful for fashion, accessories, furniture, and any catalog with many combinations.
Brand & store entity (Organization / LocalBusiness)
Schema Pro generates an Organization schema (or LocalBusiness, Store, OnlineStore, etc.) across the site: business name, legal name, description, email, phone number, VAT, logo, address, and social profiles (sameAs). For businesses with physical locations, LocalBusiness fields (opening hours, geo coordinates, price range) strengthen consistency between your store, local presence, and Google results. A proper configuration also improves entity understanding (Knowledge Graph) and user trust.
WebSite + SearchAction, BreadcrumbList, FAQPage, CollectionPage
The module can add:
- WebSite + SearchAction (sitelinks search box) to strengthen Google integration.
- Dynamic BreadcrumbList (product, category, CMS, brand/manufacturer) for consistent breadcrumb rich results.
- FAQPage via a back-office FAQ manager, attachable to products, categories, CMS pages, or custom URLs.
- CollectionPage + ItemList on category pages, listing products from the current page (pagination respected) to help listing indexation without overloading markup.
Shipping & returns (OfferShippingDetails, MerchantReturnPolicy)
Schema Pro lets you define shipping and return policies and reference them inside each Offer via @id (avoids massive duplication within JSON-LD). You can configure destination countries, costs, handling time, transit time, and return window, fees, method, and policy URL. This improves transparency and can support eligibility for richer results and Shopping surfaces depending on Google’s criteria.
Built-in audit and performance (cache)
The Audit tab scans your catalog (products, categories, organization) and highlights missing data (images, price, EAN/GTIN, brand, SKU, descriptions, etc.) with a score and categories (error, warning, info). On performance, Schema Pro includes JSON-LD caching with automatic invalidation whenever relevant data changes (product, category, CMS, reviews, configuration), keeping the store fast even with large catalogs.
Requirements
Schema Pro is built for modern PrestaShop versions and an up-to-date server stack to ensure compatibility and performance.
- PrestaShop: 8.0.0 minimum (compatible with 8.x and 9.x)
- PHP: 8.1 minimum (compatible 8.1 to 8.4 depending on configuration)
- MySQL 5.7+ or MariaDB 10.3+
- HTTPS recommended (SEO and security best practices)
No CRON is required: JSON-LD is generated on the fly, and cache (if enabled) improves response times in production.
Installation
Back-office installation (recommended)
- Go to Modules > Module Manager
- Click Upload a module
- Select the module ZIP archive (e.g.,
wepresta_schema_pro.zip) - Wait for the installation to finish
- Click Configure
FTP installation
- Unzip the archive
- Upload the module folder to
/modules/ - In the back office, search for the module
- Click Install, then Configure
What the installation does
The module installs its tables (FAQ, attribute mapping, cache), registers its hooks (front injection, cache invalidation), adds its back-office menu entry, and can disable PrestaShop native markup to prevent duplicates. After installation, it’s recommended to configure your Organization and enable the required schema types before running an audit.
Quick start
To get clean markup in under 10 minutes:
- Install the module and open Configure
- In General, enable at least: Product, Organization, WebSite, BreadcrumbList
- Enable native markup disabling if you don’t use another JSON-LD generator
- In Organization, fill: name, logo, email, phone, address, social profiles
- In Products, enable ProductGroup if you have variants and verify mapping (Color →
color, Size →size) - (Optional) Add shipping & return policies to enrich Offers
- Run an Audit and fix missing data (images, EAN, brand, descriptions)
- Test a product page with Google Rich Results Test and ensure there are no duplicates
Configuration
General tab
Centralizes global settings: schema types activation, disabling PrestaShop native structured data (to avoid duplication), and cache activation. During initial setup, it’s often best to keep cache disabled to see changes immediately. Once configuration is stable, enable cache in production to reduce generation cost.
Organization tab
Choose the entity type (Organization, OnlineStore, LocalBusiness, Store, etc.) and fill essential information: name, legal name, description, logo, VAT, full address, and social profile URLs. For LocalBusiness, add opening hours, geo coordinates, and price range when possible. Empty fields are not output in JSON-LD (better to omit than publish blank values).
Products tab
Enable ProductGroup if your catalog contains variants, set a variant limit if needed, and configure default condition. Verify your review source and define a minimum review threshold to avoid weak AggregateRating (commonly recommended). Then configure mapping from PrestaShop attributes to Schema.org properties (color, size, material, pattern, gender) to feed variesBy and enrich variants.
FAQ tab
Create Question/Answer pairs in the back office and attach them to products, categories, CMS pages, or custom URLs. FAQs are multilingual and sortable. FAQPage schema is only generated when active FAQs exist for the current page to avoid unnecessary markup. Questions should remain natural and genuinely helpful; Google often ignores artificial FAQs.
Audit tab
The audit identifies blocking errors (e.g., product without image, zero price), warnings (missing EAN/GTIN, no brand, thin descriptions), and information (no reviews, ProductGroup disabled, etc.). Use it to prioritize fixes, export the report when needed, and re-run scans to measure score improvements.
Multistore and multilingual
Schema Pro supports multistore: each shop can have its own configuration (enabled types, organization, shipping/return policies, FAQs, cache). In multistore mode, select the shop first using PrestaShop’s context selector before editing settings. Multilingual is native: JSON-LD is generated in the visitor’s language (products, categories, FAQs, organization), avoiding mismatched signals (e.g., French FAQs on an English page).
Compatibility
PrestaShop versions
- PrestaShop 8.0.x: compatible
- PrestaShop 8.1.x: compatible
- PrestaShop 8.2.x: compatible
- PrestaShop 9.0.x: compatible
PHP versions
- PHP 8.1: compatible
- PHP 8.2: compatible
- PHP 8.3: compatible
- PHP 8.4: compatible
Databases
- MySQL 5.7+
- MySQL 8.0
- MariaDB 10.3+
FAQ
Will the module slow down my store?
No. JSON-LD is injected into the <head> and remains lightweight. With cache enabled, typical impact is around 1–2 ms per page. Without cache, impact depends on product complexity (variants, reviews), but is generally negligible. Automatic cache invalidation prevents stale data while keeping the front office fast.
Can I use it with another SEO module?
Yes, but avoid duplicates. If another module also generates JSON-LD Product/Organization/Breadcrumb/FAQ, Google may ignore or degrade interpretation. Best practice: disable the structured data part in the other module, or enable native markup disabling and ensure only one JSON-LD generator stays active.
Do structured data guarantee rich snippets?
No. They significantly increase your chances, but Google decides. A store with valid, complete, non-duplicated markup and strong product data (images, price, stock, identifiers, real reviews) maximizes eligibility and often improves CTR even without guaranteed rich results.
Troubleshooting
No JSON-LD visible
- Make sure the module is installed and enabled
- Enable at least one schema type in General
- Ensure the front injection hook is active (e.g.,
displayHeader) - Clear PrestaShop cache (Smarty) and, if needed, module cache
Duplicate schema output
- Enable native markup disabling if needed
- Disable other JSON-LD generators
- Re-check page source and re-test with Google Rich Results Test
Errors in Google validators
- Add at least one image per product
- Verify price/currency/availability
- Use the audit to fix EAN/GTIN, brand, SKU, descriptions
- Review shipping/return configuration if enabled
Changelog
Version 1.0.0
- Full JSON-LD generation: Product, ProductGroup, Organization/LocalBusiness, WebSite, BreadcrumbList, FAQPage, CollectionPage
- ProductGroup + variants support (
hasVariant,variesBy,productGroupID) - Shipping (OfferShippingDetails) and returns (MerchantReturnPolicy) policies referenced via
@id - PrestaShop attribute mapping to Schema.org properties
- Built-in audit with scoring and CSV export
- Smart cache with automatic invalidation
- Modern back office (Symfony controllers), multistore and multilingual support
Support
Support is available via your WePresta customer area / support channel. To speed up diagnosis, provide:
- PrestaShop and PHP versions
- Affected URL + Rich Results Test output
- Page source (search for
application/ld+json) - Exported audit report (CSV)
- PrestaShop logs if available
License
Distributed under the Academic Free License (AFL 3.0).
Copyright © WePresta (ADAMAS GROUP SA). All rights reserved.