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

  1. Go to Modules > Module Manager
  2. Click Upload a module
  3. Select the module ZIP archive (e.g., wepresta_schema_pro.zip)
  4. Wait for the installation to finish
  5. Click Configure

FTP installation

  1. Unzip the archive
  2. Upload the module folder to /modules/
  3. In the back office, search for the module
  4. 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:

  1. Install the module and open Configure
  2. In General, enable at least: Product, Organization, WebSite, BreadcrumbList
  3. Enable native markup disabling if you don’t use another JSON-LD generator
  4. In Organization, fill: name, logo, email, phone, address, social profiles
  5. In Products, enable ProductGroup if you have variants and verify mapping (Color → color, Size → size)
  6. (Optional) Add shipping & return policies to enrich Offers
  7. Run an Audit and fix missing data (images, EAN, brand, descriptions)
  8. 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.

Loading...