Module Magento 2 — SEO Rich Data (JSON-LD)
Qu’est-ce que SEO Rich Data ?
Le module SEO Rich Data pour Magento 2 ajoute à votre boutique des données structurées complètes, conformes au standard schema.org, au format JSON-LD pris en charge par Google. Vos produits, catégories, onglets et contenus peuvent ainsi s’afficher dans le moteur de recherche sous forme de résultats enrichis (rich snippets), ce qui influence directement la visibilité, le CTR et le SEO.
Principales fonctionnalités du module :
Types de données pris en charge :
Product
Description détaillée du produit : nom, description, prix, devise, stock, fabricant, marque, SKU, MPN.
Offer
Informations sur la disponibilité et les conditions de l’offre (nouveauté, disponibilité, date de validité du prix).
Brand / Manufacturer
Marquage automatique de la marque et du fabricant à partir des données produit.
Organization
Données de votre entreprise (nom du vendeur, contact, site web).
BreadcrumbList
Fil d’Ariane aidant Google à mieux comprendre la structure de la page.
SearchAction (WebSite)
Indication pour Google sur le fonctionnement du moteur de recherche interne de la boutique.
ItemList (pour les pages de catégories)
Liste des produits d’une catégorie (nom, image, lien) — accélère l’indexation et donne du contexte à Google.
Avis (Review + AggregateRating)
Génération automatique de données structurées à partir des avis clients : notes (rating), nombre d’avis, contenu de l’avis et données de l’auteur. Le module crée à la fois des entrées individuelles Review et un récapitulatif global AggregateRating, ce qui permet l’affichage d’étoiles dans les résultats Google (rich snippets) et augmente considérablement le CTR.
VideoObject (NOUVEAUTÉ)
Détecte les vidéos dans la galerie produit et les ajoute en tant que données structurées (miniature, lien, date).
FAQPage (LIEN AVEC LE MODULE Zapytaj o produkt)
Si vous avez installé notre module Zapytaj o produkt, toutes les questions avec réponses pour un produit donné sont automatiquement converties en données FAQPage. Cela permet à Google d’afficher une section de questions-réponses directement dans les résultats de recherche !
Intégration avec le module Zapytaj o produkt
Si vous utilisez notre second module — Zapytaj o produkt, les données structurées FAQ sont générées dynamiquement à partir de véritables questions et réponses fournies par le vendeur. Cela renforce l’authenticité des données ainsi que leur valeur SEO.
De plus, les questions et réponses peuvent être visibles sous forme d’onglet sur la fiche produit — avec la possibilité de l’activer et de définir son titre depuis la configuration.
Pourquoi utiliser Rich Data dans Magento ?
Meilleure visibilité dans les résultats Google – vos produits apparaîtront avec le prix, la disponibilité, les avis et d’autres informations.
Meilleur CTR – les utilisateurs cliquent plus souvent sur les résultats enrichis.
Indexabilité accrue – Google comprend mieux la structure du site et indexe plus rapidement les nouveautés.
Qualité de contenu incomparable – vous présentez à Google des données qui étaient auparavant masquées uniquement dans le HTML.
Configuration
Possibilité d’activer/désactiver différents composants (par exemple FAQ, VideoObject).
Titre personnalisé de l’onglet des questions (pour le module Zapytaj o produkt).
Mécanisme de détection et de génération automatiques des données JSON-LD.
Prérequis
Magento 2.4.x (testé sur 2.4.7)
PHP 8.1+
Recommandé : module Zapytaj o produkt pour profiter de toutes les possibilités (FAQ)
Ce que vous recevez :
Module prêt à installer via Composer
Documentation complète
Code conforme aux recommandations Magento
Support technique lors du déploiement
Vous souhaitez démarquer votre boutique dans Google ? Ce module, c’est votre SEO en version PRO. Commandez dès maintenant et augmentez votre visibilité !
SEO Rich Data - instalacja i konfiguracja
Cel modułu
Moduł Kowal_SeoRichData dodaje do Magento 2 dane strukturalne schema.org w formacie JSON-LD. Generowane dane mogą obejmować produkty, oferty, ceny, dostępność, oceny, recenzje, breadcrumbs, dane organizacji, nazwę strony, search box, profile społecznościowe, FAQ oraz wideo.
Konfiguracja modułu znajduje się w panelu administracyjnym Magento:
Stores > Configuration > Kowal > SEO Rich Data
Wymagania
- Magento 2.
- Dostęp do CLI Magento.
- Dostęp do Composer repository z pakietem
kowal/module-seo-rich-data. - Wymagany pakiet bazowy:
kowal/base. - Uprawnienia do uruchamiania komend
bin/magento.
Instalacja przez Composer
- Dodaj repozytorium pakietu:
composer config repositories.seo.rich.data vcs https://github.com/kowalco/magento-2-seo-rich-data
- Jeśli repozytorium jest prywatne, dodaj token dostępu GitHub:
composer config --global --auth github-oauth.github.com <YOUR_TOKEN>
- Zainstaluj moduł:
composer require kowal/module-seo-rich-data
- Włącz moduł:
php bin/magento module:enable Kowal_SeoRichData
- Uruchom aktualizację Magento:
php bin/magento setup:upgrade
- W środowisku produkcyjnym wykonaj kompilację DI:
php bin/magento setup:di:compile
- W środowisku produkcyjnym, jeśli projekt tego wymaga, wygeneruj statyczne pliki:
php bin/magento setup:static-content:deploy
- Wyczyść cache:
php bin/magento cache:flush
Instalacja ręczna
- Skopiuj moduł do katalogu:
app/code/Kowal/SeoRichData
- Włącz moduł:
php bin/magento module:enable Kowal_SeoRichData
- Uruchom aktualizację Magento:
php bin/magento setup:upgrade
- Wyczyść cache:
php bin/magento cache:flush
Czynności po instalacji
Po instalacji moduł dodaje atrybut produktu:
| Atrybut | Znaczenie |
|---|---|
offer_item_condition |
Stan produktu używany do wygenerowania itemCondition w offers. |
Atrybut obsługuje wartości:
| Wartość w Magento | Wartość JSON-LD |
|---|---|
DamagedCondition |
https://schema.org/DamagedCondition |
NewCondition |
https://schema.org/NewCondition |
RefurbishedCondition |
https://schema.org/RefurbishedCondition |
UsedCondition |
https://schema.org/UsedCondition |
Jeśli produkt nie ma ustawionej wartości atrybutu, moduł traktuje go jako NewCondition.
Zakres konfiguracji
Wszystkie pola konfiguracyjne są dostępne dla zakresów Default, Website i Store View, zgodnie z ustawieniami Magento.
Pola typu Enabled, Show ... i podobne używają standardowych wartości Magento:
| Wartość | Znaczenie |
|---|---|
Yes |
Funkcja jest włączona i może generować dane JSON-LD. |
No |
Funkcja jest wyłączona. |
Breadcrumbs
Sekcja odpowiada za dane strukturalne ścieżki nawigacji.
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie danych BreadcrumbList. |
Yes, No |
Fixed Category Path |
Na stronie produktu używa najbardziej szczegółowej ścieżki kategorii, gdy Magento nie dostarcza pełnego kontekstu kategorii. | Yes, No |
Type |
Określa długość ścieżki breadcrumbs generowanej dla wyszukiwarki. | Default (Long), Short |
Wartości pola Type:
| Wartość | Znaczenie |
|---|---|
Default (Long) |
Pełna ścieżka, np. Store > Category > Subcategory > Product. |
Short |
Skrócona ścieżka, np. Store > Subcategory > Product. |
Include Your Site Name in Search Results
Sekcja odpowiada za dane typu WebSite, które mogą pomóc Google rozpoznać nazwę witryny.
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie danych WebSite. |
Yes, No |
Website Name |
Nazwa strony/sklepu przekazywana w danych strukturalnych. | Tekst, np. nazwa sklepu. |
Organization
Sekcja odpowiada za dane typu Organization.
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie danych organizacji. | Yes, No |
Organization Name |
Nazwa firmy lub sklepu. | Tekst; pole wymagane po włączeniu sekcji. |
Logo Url |
Pełny URL logo organizacji. | URL do pliku graficznego. |
Description |
Opis organizacji. | Tekst. |
Description Length |
Maksymalna liczba znaków opisu. | Liczba; puste oznacza brak skracania. |
Country |
Kraj organizacji. | Kod kraju z listy Magento. |
Region/State |
Region lub województwo. | Tekst. |
ZIP/Postal Code |
Kod pocztowy. | Tekst. |
City |
Miasto. | Tekst. |
Street Address |
Ulica i numer. | Tekst. |
Sales |
Telefon działu sprzedaży. | Numer w formacie międzynarodowym, np. +48.... |
Technical Support |
Telefon wsparcia technicznego. | Numer w formacie międzynarodowym. |
Customer Service |
Telefon obsługi klienta. | Numer w formacie międzynarodowym. |
Kraj z tej sekcji może być użyty jako fallback dla kraju wysyłki i kraju polityki zwrotów, jeśli odpowiednie pola w sekcji produktu pozostają puste.
Social Profiles
Sekcja dodaje profile społecznościowe organizacji. Aby dane miały sens, sekcja Organization powinna być włączona.
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie linków profili społecznościowych. | Yes, No |
Facebook |
URL profilu Facebook. | Pełny URL. |
Twitter |
URL profilu Twitter / X. | Pełny URL. |
Google+ |
URL profilu Google+. | Pełny URL; historyczne pole konfiguracji. |
Instagram |
URL profilu Instagram. | Pełny URL. |
YouTube |
URL kanału YouTube. | Pełny URL. |
LinkedIn |
URL profilu LinkedIn. | Pełny URL. |
Myspace |
URL profilu Myspace. | Pełny URL; historyczne pole konfiguracji. |
Pinterest |
URL profilu Pinterest. | Pełny URL. |
SoundCloud |
URL profilu SoundCloud. | Pełny URL. |
Tumblr |
URL profilu Tumblr. | Pełny URL. |
Puste pola są pomijane.
Search Box
Sekcja odpowiada za dane SearchAction, które mogą umożliwić wyświetlanie pola wyszukiwania sklepu w wynikach Google.
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie danych wyszukiwarki witryny. | Yes, No |
Category Rich Data
Sekcja odpowiada za generowanie danych produktów na stronach kategorii.
| Pole | Znaczenie | Wartości |
|---|---|---|
Show Products Data |
Dodaje dane strukturalne dla produktów widocznych na stronie kategorii. | Yes, No |
Włączenie tej opcji może pogorszyć wydajność stron kategorii, ponieważ moduł musi zebrać dane dla wielu produktów.
Product Rich Data
Sekcja odpowiada za główne dane produktu typu Product oraz za dane offers.
Podstawowe pola produktu
| Pole | Znaczenie | Wartości |
|---|---|---|
Enabled |
Włącza generowanie JSON-LD produktu na stronie produktu. | Yes, No |
Show Availability |
Dodaje availability w offers. |
Yes, No |
priceValidUntil Default Value |
Domyślna data ważności ceny. | Data. |
Use “Special Price To” Value for priceValidUntil Snippet |
Jeśli produkt ma aktywną cenę specjalną i datę Special Price To, ta data zastępuje wartość domyślną. |
Yes, No |
Show Condition |
Dodaje itemCondition w offers. |
Yes, No |
Description |
Określa źródło opisu produktu w JSON-LD. | None, Product Short Description, Product Full Description, Page Meta Description |
Wartości pola Description:
| Wartość | Znaczenie |
|---|---|
None |
Nie pobiera opisu z konfiguracji; kod może użyć nazwy produktu jako fallback, jeśli opis jest pusty. |
Product Short Description |
Używa krótkiego opisu produktu. |
Product Full Description |
Używa pełnego opisu produktu. |
Page Meta Description |
Używa meta description strony. |
Produkty konfigurowalne i grupowane
| Pole | Znaczenie | Wartości |
|---|---|---|
Show Configurable Products as |
Określa sposób generowania ofert dla produktów konfigurowalnych. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Show Grouped Products as |
Określa sposób generowania ofert dla produktów grupowanych. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Wartości:
| Wartość | Znaczenie |
|---|---|
Main Offer |
Generuje jedną ofertę dla produktu głównego. |
List of Associated Products Offers |
Generuje osobną ofertę dla każdego produktu prostego lub powiązanego. |
Aggregate Offer |
Generuje AggregateOffer z najniższą ceną, najwyższą ceną i liczbą ofert. |
Oceny i recenzje
| Pole | Znaczenie | Wartości |
|---|---|---|
Show Rating |
Dodaje aggregateRating i review do danych produktu. |
Yes, No |
Use Yotpo Reviews instead of Magento Reviews |
Pobiera recenzje z Yotpo zamiast Magento Reviews. | Yes, No |
Rating Format |
Określa skalę ocen. | Percentage Scale, Numeric Scale |
Number of Reviews |
Limit liczby najnowszych recenzji dodawanych do JSON-LD. | Liczba; puste oznacza wszystkie recenzje. |
Wartości pola Rating Format:
| Wartość | Znaczenie |
|---|---|
Percentage Scale |
Oceny są interpretowane w skali procentowej. |
Numeric Scale |
Oceny są interpretowane w skali liczbowej. |
Integracja z Yotpo wymaga dostępności modułu obsługującego Yotpo. Jeśli moduł nie jest zainstalowany, konfiguracja Yotpo nie powinna być włączana.
Brand, manufacturer i identyfikatory produktu
| Pole | Znaczenie | Wartości |
|---|---|---|
Brand |
Atrybut produktu używany do wygenerowania właściwości brand. |
Dowolny atrybut produktu z listy. |
EAN / GTIN Attribute |
Atrybut produktu używany jako globalny identyfikator produktu. | Dowolny atrybut produktu z listy. |
Manufacturer |
Atrybut produktu używany do wygenerowania właściwości manufacturer. |
Dowolny atrybut produktu z listy. |
Pole EAN / GTIN Attribute generuje właściwość zależnie od liczby cyfr:
| Liczba cyfr | Właściwość JSON-LD |
|---|---|
| 8 | gtin8 |
| 12 | gtin12 |
| 13 | gtin13 |
| 14 | gtin14 |
| Inna dodatnia liczba cyfr | gtin |
Moduł usuwa znaki inne niż cyfry z wartości EAN / GTIN przed wygenerowaniem JSON-LD.
Shipping details
Sekcja wysyłki odpowiada za wygenerowanie shippingDetails w offers. Dane są dodawane tylko wtedy, gdy sekcja jest włączona i ma komplet wymaganych wartości.
| Pole | Znaczenie | Wartości |
|---|---|---|
Show Shipping Details |
Włącza generowanie shippingDetails. |
Yes, No |
Shipping Country |
Kraj dostawy. | Kod kraju z listy Magento; jeśli puste, używany jest kraj z sekcji Organization. |
Shipping Price |
Koszt dostawy. | Liczba równa lub większa od 0; 0 oznacza darmową dostawę. |
Handling Time Min Days |
Minimalny czas obsługi zamówienia. | Liczba całkowita, dni. |
Handling Time Max Days |
Maksymalny czas obsługi zamówienia. | Liczba całkowita, dni. |
Transit Time Min Days |
Minimalny czas transportu. | Liczba całkowita, dni. |
Transit Time Max Days |
Maksymalny czas transportu. | Liczba całkowita, dni. |
Waluta kosztu wysyłki jest pobierana z waluty oferty produktu.
Przykład znaczenia wartości:
| Pole | Przykład | Znaczenie |
|---|---|---|
Shipping Price |
0 |
Darmowa wysyłka. |
Handling Time Min Days |
0 |
Zamówienie może zostać obsłużone tego samego dnia. |
Handling Time Max Days |
1 |
Obsługa zamówienia trwa maksymalnie 1 dzień. |
Transit Time Min Days |
1 |
Dostawa trwa co najmniej 1 dzień. |
Transit Time Max Days |
5 |
Dostawa trwa maksymalnie 5 dni. |
Merchant return policy
Sekcja polityki zwrotów odpowiada za wygenerowanie hasMerchantReturnPolicy w offers. Dane są dodawane tylko wtedy, gdy sekcja jest włączona i ma wymagane wartości.
| Pole | Znaczenie | Wartości |
|---|---|---|
Show Merchant Return Policy |
Włącza generowanie hasMerchantReturnPolicy. |
Yes, No |
Return Policy Country |
Kraj obowiązywania polityki zwrotów. | Kod kraju z listy Magento; jeśli puste, używany jest kraj z sekcji Organization. |
Return Policy Category |
Typ polityki zwrotu. | Finite Return Window, Returns Not Permitted, Unlimited Return Window |
Merchant Return Days |
Liczba dni na zwrot. | Liczba całkowita; wymagana dla Finite Return Window. |
Return Method |
Obsługiwana metoda zwrotu. | -- Empty --, Return By Mail, Return In Store, Return At Kiosk |
Return Fees |
Informacja o opłatach za zwrot. | -- Empty --, Free Return, Customer Responsibility, Return Shipping Fees |
Return Shipping Fee |
Kwota opłaty za przesyłkę zwrotną. | Liczba większa od 0; wymagana tylko dla Return Shipping Fees. |
Wartości pola Return Policy Category:
| Wartość | Wartość JSON-LD | Znaczenie |
|---|---|---|
Finite Return Window |
https://schema.org/MerchantReturnFiniteReturnWindow |
Zwrot możliwy przez określoną liczbę dni. Wymaga Merchant Return Days. |
Returns Not Permitted |
https://schema.org/MerchantReturnNotPermitted |
Zwroty nie są dozwolone. |
Unlimited Return Window |
https://schema.org/MerchantReturnUnlimitedWindow |
Zwrot bez określonego limitu dni. |
Wartości pola Return Method:
| Wartość | Wartość JSON-LD | Znaczenie |
|---|---|---|
-- Empty -- |
brak wartości | Metoda zwrotu nie jest dodawana do JSON-LD. |
Return By Mail |
https://schema.org/ReturnByMail |
Zwrot wysyłkowy. |
Return In Store |
https://schema.org/ReturnInStore |
Zwrot w sklepie stacjonarnym. |
Return At Kiosk |
https://schema.org/ReturnAtKiosk |
Zwrot w punkcie/kiosku. |
Wartości pola Return Fees:
| Wartość | Wartość JSON-LD | Znaczenie |
|---|---|---|
-- Empty -- |
brak wartości | Informacja o opłatach nie jest dodawana do JSON-LD. |
Free Return |
https://schema.org/FreeReturn |
Zwrot jest darmowy. |
Customer Responsibility |
https://schema.org/ReturnFeesCustomerResponsibility |
Koszt zwrotu ponosi klient. |
Return Shipping Fees |
https://schema.org/ReturnShippingFees |
Zwrot ma określoną opłatę za wysyłkę zwrotną. Wymaga Return Shipping Fee. |
Waluta pola Return Shipping Fee jest pobierana z waluty oferty produktu.
Custom Properties
Pole Custom Properties pozwala dodać własne właściwości do JSON-LD produktu.
Format:
wlasciwosc_jsonld,kod_atrybutu
Jeśli podany jest tylko jeden element, moduł traktuje go jednocześnie jako nazwę właściwości JSON-LD i kod atrybutu.
Domyślna wartość:
sku
mpn,sku
Znaczenie domyślnej wartości:
| Linia | Efekt |
|---|---|
sku |
Dodaje sku na podstawie atrybutu sku. |
mpn,sku |
Dodaje mpn na podstawie atrybutu sku. |
Przykład dodania własnego atrybutu:
color,color
material,material
Zalecana konfiguracja minimalna dla produktów
Aby ograniczyć ostrzeżenia Google Search Console dla danych produktowych, skonfiguruj co najmniej:
| Pole | Zalecenie |
|---|---|
Product Rich Data > Enabled |
Yes |
Show Availability |
Yes |
Brand |
Wybierz atrybut z marką produktu. |
EAN / GTIN Attribute |
Wybierz atrybut z EAN / GTIN, jeśli produkty mają globalny identyfikator. |
Show Shipping Details |
Yes, jeśli sklep ma jednolitą politykę wysyłki możliwą do opisania w konfiguracji. |
Show Merchant Return Policy |
Yes, jeśli sklep ma jednolitą politykę zwrotów możliwą do opisania w konfiguracji. |
Custom Properties |
Utrzymaj co najmniej sku; opcjonalnie dodaj mpn, jeśli sklep posiada taki identyfikator. |
Czyszczenie cache po zmianach konfiguracji
Po zmianie konfiguracji wykonaj:
php bin/magento cache:flush
Jeśli sklep używa dodatkowego cache HTTP, Varnish lub CDN, wyczyść również te warstwy cache.
Weryfikacja działania
- Otwórz stronę produktu na frontendzie.
- Sprawdź źródło strony i znajdź:
<script type="application/ld+json">
- Zweryfikuj, czy JSON-LD zawiera oczekiwane pola, np.:
{
"@type": "Product",
"brand": {
"@type": "Brand",
"name": "Example Brand"
},
"gtin13": "5901234123457",
"offers": [
{
"@type": "Offer",
"shippingDetails": {},
"hasMerchantReturnPolicy": {}
}
]
}
- Przetestuj adres URL produktu w narzędziu Google Rich Results Test lub w Google Search Console.
Uwagi wdrożeniowe
- Nie włączaj
shippingDetailsanihasMerchantReturnPolicy, jeśli wartości w konfiguracji nie odpowiadają rzeczywistej polityce sklepu. - Jeśli polityki wysyłki lub zwrotów różnią się per produkt, region, metoda dostawy albo koszyk, jedna globalna konfiguracja może nie być wystarczająca.
- Po zmianie atrybutów
Brand,ManufacturerlubEAN / GTIN Attributewarto przeindeksować dane produktu, jeśli sklep używa cache lub indeksów wpływających na odczyt atrybutów. - W sklepach wielojęzycznych i wielowalutowych sprawdź konfigurację osobno dla każdego Store View.
Wersja: 1.0.17
19.05.2026
Added
- Dodano obsługę pola
shippingDetailsw strukturzeoffersdla danych produktu JSON-LD. - Dodano obsługę pola
hasMerchantReturnPolicyw strukturzeoffersdla danych produktu JSON-LD. - Dodano konfigurację danych wysyłki:
- włączanie/wyłączanie generowania
shippingDetails, - kraj wysyłki,
- koszt wysyłki,
- minimalny i maksymalny czas obsługi zamówienia,
- minimalny i maksymalny czas transportu.
- włączanie/wyłączanie generowania
- Dodano konfigurację polityki zwrotów:
- włączanie/wyłączanie generowania
hasMerchantReturnPolicy, - kraj obowiązywania polityki,
- typ polityki zwrotu,
- liczba dni na zwrot,
- metoda zwrotu,
- opłaty za zwrot,
- opcjonalna kwota opłaty za przesyłkę zwrotną.
- włączanie/wyłączanie generowania
- Dodano wybór atrybutu EAN / GTIN w konfiguracji produktu.
- Dodano automatyczne mapowanie wartości EAN / GTIN na właściwości
gtin8,gtin12,gtin13,gtin14albogtin, zależnie od długości numeru. - Dodano source modele dla opcji konfiguracji polityki zwrotów:
ReturnPolicyCategory,ReturnMethod,ReturnFees.
Changed
- Usprawniono pobieranie wartości atrybutów
brandimanufacturerdo JSON-LD. - Dodano fallback pobierania wartości atrybutów z raw EAV value, gdy
getAttributeText()albogetData()nie zwraca wartości. - Dla produktów konfigurowalnych i grupowanych dodano fallback pobierania wartości brand / GTIN z produktów prostych.
- Przepięto przestarzałą metodę
Block\Product::getResultArray()na wspólną logikęModel\JsonLd\ProductInfo, żeby generowanie danych produktu było spójne na stronie produktu i w listach kategorii. - Rozszerzono klucz cache ofert o konfigurację wysyłki i polityki zwrotów, aby zmiany konfiguracji wpływały na wygenerowany JSON-LD.
Fixed
- Naprawiono przypadek, w którym skonfigurowany atrybut
Brandnie pojawiał się w JSON-LD produktu. - Uzupełniono brakujące dane wymagane przez Google Search Console dla merchant listing:
shippingDetails,hasMerchantReturnPolicy,- globalny identyfikator produktu przez EAN / GTIN.




















