Módulo Magento 2 — SEO Rich Data (JSON-LD)
- SKU
- M2-SEO-RICH-DATA
Descrição / Módulo Magento 2 — SEO Rich Data (JSON-LD)
O que é SEO Rich Data?
O módulo SEO Rich Data para Magento 2 adiciona à sua loja dados estruturados completos, em conformidade com o padrão schema.org, no formato JSON-LD, suportado pela Google. Desta forma, os seus produtos, categorias, separadores e conteúdos podem ser apresentados no motor de pesquisa sob a forma de resultados enriquecidos (rich snippets), o que tem impacto direto na visibilidade, no CTR e no SEO.
Principais funcionalidades do módulo:
Tipos de dados suportados:
Product
Descrição detalhada do produto: nome, descrição, preço, moeda, disponibilidade em stock, fabricante, marca, SKU, MPN.
Offer
Informações sobre a disponibilidade e as condições da oferta (novidade, disponibilidade, data de validade do preço).
Brand / Manufacturer
Marcação automática da marca e do fabricante com base nos dados do produto.
Organization
Dados da sua empresa (nome do vendedor, contacto, website).
BreadcrumbList
Breadcrumbs que ajudam a Google a compreender melhor a estrutura da página.
SearchAction (WebSite)
Indicação para a Google sobre o funcionamento do motor de pesquisa interno da loja.
ItemList (para páginas de categoria)
Lista de produtos na categoria (nome, imagem, ligação) — acelera a indexação e dá contexto à Google.
Avaliações (Review + AggregateRating)
Geração automática de dados estruturados com base nas avaliações dos clientes: classificação (rating), número de avaliações, conteúdo da recensão e dados do autor. O módulo cria tanto entradas individuais Review como um resumo agregado AggregateRating, permitindo apresentar estrelas nos resultados da Google (rich snippets) e aumentar significativamente o CTR.
VideoObject (NOVIDADE)
Deteta vídeos na galeria do produto e adiciona-os como dados estruturados (miniatura, ligação, data).
FAQPage (INTEGRAÇÃO COM O MÓDULO ‘Perguntar sobre o produto’)
Se tiver instalado o nosso módulo Perguntar sobre o produto, todas as perguntas com respostas relativas a um determinado produto são convertidas automaticamente em dados FAQPage. Isto permite à Google apresentar uma secção de perguntas e respostas diretamente nos resultados de pesquisa!
Integração com o módulo Perguntar sobre o produto
Se utiliza o nosso outro módulo — ‘Perguntar sobre o produto’, os dados estruturados FAQ são gerados dinamicamente com base em perguntas e respostas reais, fornecidas pelo vendedor. Isto aumenta a autenticidade dos dados e o valor de SEO.
Além disso, as perguntas e respostas podem ficar visíveis como um separador na ficha do produto — com possibilidade de ativação e definição do título ao nível da configuração.
Porque vale a pena usar Rich Data no Magento?
Maior visibilidade nos resultados da Google – os seus produtos serão apresentados com preço, disponibilidade, avaliações e outras informações.
Melhor CTR – os utilizadores clicam mais frequentemente em resultados enriquecidos.
Maior indexabilidade – a Google compreende melhor a estrutura da página e indexa novidades mais rapidamente.
Qualidade de conteúdo incomparável – mostra à Google dados que anteriormente estavam ocultos apenas no HTML.
Configuração
Possibilidade de ativar/desativar componentes individuais (por exemplo, FAQ, VideoObject).
Título próprio para o separador de perguntas (para o módulo ‘Perguntar sobre o produto’).
Mecanismo de deteção e geração automática de dados JSON-LD.
Requisitos
Magento 2.4.x (testado em 2.4.7)
PHP 8.1+
Recomendado: módulo Perguntar sobre o produto para funcionalidades completas (FAQ)
O que recebe:
Módulo pronto a instalar via Composer
Documentação completa
Código em conformidade com as diretrizes do Magento
Suporte técnico na implementação
Quer destacar a sua loja na Google? Este módulo é o seu SEO na versão PRO. Encomende já e aumente a sua visibilidade!
More Information
Change Log
Versão: 1.0.17
19.05.2026
Adicionado
- Adicionado suporte para o campo
shippingDetailsna estruturaofferspara dados de produto JSON-LD. - Adicionado suporte para o campo
hasMerchantReturnPolicyna estruturaofferspara dados de produto JSON-LD. - Adicionada configuração dos dados de envio:
- ativação/desativação da geração de
shippingDetails, - país de envio,
- custo de envio,
- tempo mínimo e máximo de processamento da encomenda,
- tempo mínimo e máximo de transporte.
- ativação/desativação da geração de
- Adicionada configuração da política de devoluções:
- ativação/desativação da geração de
hasMerchantReturnPolicy, - país de aplicação da política,
- tipo de política de devolução,
- número de dias para devolução,
- método de devolução,
- taxas de devolução,
- montante opcional da taxa de envio da devolução.
- ativação/desativação da geração de
- Adicionada seleção do atributo EAN / GTIN na configuração do produto.
- Adicionado mapeamento automático dos valores EAN / GTIN para as propriedades
gtin8,gtin12,gtin13,gtin14ougtin, consoante o comprimento do número. - Adicionados modelos source para as opções de configuração da política de devoluções:
ReturnPolicyCategory,ReturnMethod,ReturnFees.
Alterado
- Melhorada a obtenção dos valores dos atributos
brandemanufacturerpara JSON-LD. - Adicionado fallback para obter valores de atributos a partir de raw EAV value quando
getAttributeText()ougetData()não devolvem valor. - Para produtos configuráveis e agrupados, foi adicionado fallback para obter valores brand / GTIN a partir de produtos simples.
- O método obsoleto
Block\Product::getResultArray()foi substituído pela lógica comumModel\JsonLd\ProductInfo, para que a geração de dados do produto seja consistente na página do produto e nas listas de categorias. - Expandida a chave de cache das ofertas com a configuração de envio e da política de devoluções, para que as alterações de configuração afetem o JSON-LD gerado.
Corrigido
- Corrigido o caso em que o atributo configurado
Brandnão aparecia no JSON-LD do produto. - Completados os dados em falta exigidos pelo Google Search Console para merchant listing:
shippingDetails,hasMerchantReturnPolicy,- identificador global do produto através de EAN / GTIN.
Manual de instalação do módulo
SEO Rich Data - instalação e configuração
Objetivo do módulo
O módulo Kowal_SeoRichData adiciona ao Magento 2 dados estruturados schema.org em formato JSON-LD. Os dados gerados podem incluir produtos, ofertas, preços, disponibilidade, classificações, avaliações, breadcrumbs, dados da organização, nome do site, search box, perfis de redes sociais, FAQ e vídeo.
A configuração do módulo encontra-se no painel de administração do Magento:
Stores > Configuration > Kowal > SEO Rich Data
Requisitos
- Magento 2.
- Acesso à CLI do Magento.
- Acesso ao repositório Composer com o pacote
kowal/module-seo-rich-data. - Pacote base obrigatório:
kowal/base. - Permissões para executar comandos
bin/magento.
Instalação através do Composer
- Adicione o repositório do pacote:
Receberá por e-mail, após a compra, os dados de acesso ao repositório Composer, ou seja, o endereço de e-mail do cliente e o token de licença. Também estão disponíveis na área de cliente após iniciar sessão em kowal.store. Substitua TWOJ_EMAIL_KLIENTA pelo endereço de e-mail da sua conta e TWOJ_TOKEN pelo token recebido. Execute os comandos no diretório raiz do Magento.
composer config repositories.kowal composer https://repo.kowal.store- Configure os dados de acesso ao repositório Composer Kowal:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'- Instale o módulo:
composer require kowal/module-seo-rich-data- Ative o módulo:
php bin/magento module:enable Kowal_SeoRichData- Execute a atualização do Magento:
php bin/magento setup:upgrade- Em ambiente de produção, execute a compilação DI:
php bin/magento setup:di:compile- Em ambiente de produção, se o projeto o exigir, gere os ficheiros estáticos:
php bin/magento setup:static-content:deploy- Limpe a cache:
php bin/magento cache:flushInstalação manual
- Copie o módulo para o diretório:
app/code/Kowal/SeoRichData- Ative o módulo:
php bin/magento module:enable Kowal_SeoRichData- Execute a atualização do Magento:
php bin/magento setup:upgrade- Limpe a cache:
php bin/magento cache:flushAções após a instalação
Após a instalação, o módulo adiciona o atributo de produto:
| Atributo | Significado |
|---|---|
offer_item_condition | Estado do produto utilizado para gerar itemCondition em offers. |
O atributo suporta os valores:
| Valor no Magento | Valor JSON-LD |
|---|---|
DamagedCondition | https://schema.org/DamagedCondition |
NewCondition | https://schema.org/NewCondition |
RefurbishedCondition | https://schema.org/RefurbishedCondition |
UsedCondition | https://schema.org/UsedCondition |
Se o produto não tiver um valor de atributo definido, o módulo trata-o como NewCondition.
Âmbito da configuração
Todos os campos de configuração estão disponíveis para os âmbitos Default, Website e Store View, de acordo com as definições do Magento.
Os campos do tipo Enabled, Show ... e semelhantes utilizam os valores padrão do Magento:
| Valor | Significado |
|---|---|
Yes | A funcionalidade está ativa e pode gerar dados JSON-LD. |
No | A funcionalidade está desativada. |
Breadcrumbs
A secção é responsável pelos dados estruturados do percurso de navegação.
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de dados BreadcrumbList. | Yes, No |
Fixed Category Path | Na página do produto, utiliza o percurso de categoria mais específico quando o Magento não fornece o contexto completo da categoria. | Yes, No |
Type | Define o comprimento do percurso de breadcrumbs gerado para o motor de pesquisa. | Default (Long), Short |
Valores do campo Type:
| Valor | Significado |
|---|---|
Default (Long) | Percurso completo, por exemplo Store > Category > Subcategory > Product. |
Short | Percurso abreviado, por exemplo Store > Subcategory > Product. |
Incluir o nome do seu site nos resultados de pesquisa
A secção é responsável pelos dados do tipo WebSite, que podem ajudar o Google a reconhecer o nome do site.
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de dados WebSite. | Yes, No |
Website Name | Nome do site/loja transmitido nos dados estruturados. | Texto, por exemplo o nome da loja. |
Organization
A secção é responsável pelos dados do tipo Organization.
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de dados da organização. | Yes, No |
Organization Name | Nome da empresa ou da loja. | Texto; campo obrigatório após ativar a secção. |
Logo Url | URL completo do logótipo da organização. | URL para o ficheiro gráfico. |
Description | Descrição da organização. | Texto. |
Description Length | Número máximo de caracteres da descrição. | Número; vazio significa sem encurtamento. |
Country | País da organização. | Código de país da lista do Magento. |
Region/State | Região ou distrito. | Texto. |
ZIP/Postal Code | Código postal. | Texto. |
City | Cidade. | Texto. |
Street Address | Rua e número. | Texto. |
Sales | Telefone do departamento de vendas. | Número em formato internacional, por exemplo +48.... |
Technical Support | Telefone do suporte técnico. | Número em formato internacional. |
Customer Service | Telefone do serviço de apoio ao cliente. | Número em formato internacional. |
O país desta secção pode ser utilizado como fallback para o país de envio e o país da política de devoluções, se os respetivos campos na secção do produto permanecerem vazios.
Social Profiles
A secção adiciona os perfis de redes sociais da organização. Para que os dados façam sentido, a secção Organization deve estar ativada.
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de links para perfis de redes sociais. | Yes, No |
Facebook | URL do perfil Facebook. | URL completo. |
Twitter | URL do perfil Twitter / X. | URL completo. |
Google+ | URL do perfil Google+. | URL completo; campo de configuração histórico. |
Instagram | URL do perfil Instagram. | URL completo. |
YouTube | URL do canal YouTube. | URL completo. |
LinkedIn | URL do perfil LinkedIn. | URL completo. |
Myspace | URL do perfil Myspace. | URL completo; campo de configuração histórico. |
Pinterest | URL do perfil Pinterest. | URL completo. |
SoundCloud | URL do perfil SoundCloud. | URL completo. |
Tumblr | URL do perfil Tumblr. | URL completo. |
Os campos vazios são ignorados.
Search Box
A secção é responsável pelos dados SearchAction, que podem permitir a apresentação da caixa de pesquisa da loja nos resultados do Google.
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de dados do motor de pesquisa do site. | Yes, No |
Category Rich Data
A secção é responsável pela geração de dados de produtos nas páginas de categoria.
| Campo | Significado | Valores |
|---|---|---|
Show Products Data | Adiciona dados estruturados para os produtos visíveis na página de categoria. | Yes, No |
Ativar esta opção pode prejudicar o desempenho das páginas de categoria, porque o módulo tem de recolher dados para muitos produtos.
Product Rich Data
A secção é responsável pelos principais dados de produto do tipo Product e pelos dados offers.
Campos básicos do produto
| Campo | Significado | Valores |
|---|---|---|
Enabled | Ativa a geração de JSON-LD do produto na página do produto. | Yes, No |
Show Availability | Adiciona availability em offers. | Yes, No |
priceValidUntil Default Value | Data predefinida de validade do preço. | Data. |
Use “Special Price To” Value for priceValidUntil Snippet | Se o produto tiver um preço especial ativo e uma data Special Price To, essa data substitui o valor predefinido. | Yes, No |
Show Condition | Adiciona itemCondition em offers. | Yes, No |
Description | Define a origem da descrição do produto em JSON-LD. | None, Product Short Description, Product Full Description, Page Meta Description |
Valores do campo Description:
| Valor | Significado |
|---|---|
None | Não obtém a descrição a partir da configuração; o código pode utilizar o nome do produto como fallback se a descrição estiver vazia. |
Product Short Description | Utiliza a descrição breve do produto. |
Product Full Description | Utiliza a descrição completa do produto. |
Page Meta Description | Utiliza a meta description da página. |
Produtos configuráveis e agrupados
| Campo | Significado | Valores |
|---|---|---|
Show Configurable Products as | Define a forma de geração de ofertas para produtos configuráveis. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Show Grouped Products as | Define a forma de geração de ofertas para produtos agrupados. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Valores:
| Valor | Significado |
|---|---|
Main Offer | Gera uma única oferta para o produto principal. |
List of Associated Products Offers | Gera uma oferta separada para cada produto simples ou associado. |
Aggregate Offer | Gera AggregateOffer com o preço mais baixo, o preço mais alto e o número de ofertas. |
Classificações e avaliações
| Campo | Significado | Valores |
|---|---|---|
Show Rating | Adiciona aggregateRating e review aos dados do produto. | Yes, No |
Use Yotpo Reviews instead of Magento Reviews | Obtém avaliações do Yotpo em vez de Magento Reviews. | Yes, No |
Rating Format | Define a escala de classificações. | Percentage Scale, Numeric Scale |
Number of Reviews | Limite do número das avaliações mais recentes adicionadas ao JSON-LD. | Número; vazio significa todas as avaliações. |
Valores do campo Rating Format:
| Valor | Significado |
|---|---|
Percentage Scale | As classificações são interpretadas numa escala percentual. |
Numeric Scale | As classificações são interpretadas numa escala numérica. |
A integração com Yotpo exige a disponibilidade do módulo que suporta Yotpo. Se o módulo não estiver instalado, a configuração Yotpo não deve ser ativada.
Brand, manufacturer e identificadores de produto
| Campo | Significado | Valores |
|---|---|---|
Brand | Atributo do produto utilizado para gerar a propriedade brand. | Qualquer atributo de produto da lista. |
EAN / GTIN Attribute | Atributo do produto utilizado como identificador global do produto. | Qualquer atributo de produto da lista. |
Manufacturer | Atributo do produto utilizado para gerar a propriedade manufacturer. | Qualquer atributo de produto da lista. |
O campo EAN / GTIN Attribute gera a propriedade em função do número de dígitos:
| Número de dígitos | Propriedade JSON-LD |
|---|---|
| 8 | gtin8 |
| 12 | gtin12 |
| 13 | gtin13 |
| 14 | gtin14 |
| Outro número positivo de dígitos | gtin |
O módulo remove caracteres que não sejam dígitos do valor EAN / GTIN antes de gerar o JSON-LD.
Shipping details
A secção de envio é responsável por gerar shippingDetails em offers. Os dados são adicionados apenas quando a secção está ativa e tem todos os valores obrigatórios.
| Campo | Significado | Valores |
|---|---|---|
Show Shipping Details | Ativa a geração de shippingDetails. | Yes, No |
Shipping Country | País de entrega. | Código de país da lista do Magento; se estiver vazio, é utilizado o país da secção Organization. |
Shipping Price | Custo de envio. | Número igual ou superior a 0; 0 significa envio gratuito. |
Handling Time Min Days | Tempo mínimo de processamento da encomenda. | Número inteiro, dias. |
Handling Time Max Days | Tempo máximo de processamento da encomenda. | Número inteiro, dias. |
Transit Time Min Days | Tempo mínimo de transporte. | Número inteiro, dias. |
Transit Time Max Days | Tempo máximo de transporte. | Número inteiro, dias. |
A moeda do custo de envio é obtida a partir da moeda da oferta do produto.
Exemplo do significado dos valores:
| Campo | Exemplo | Significado |
|---|---|---|
Shipping Price | 0 | Envio gratuito. |
Handling Time Min Days | 0 | A encomenda pode ser processada no mesmo dia. |
Handling Time Max Days | 1 | O processamento da encomenda demora, no máximo, 1 dia. |
Transit Time Min Days | 1 | A entrega demora, pelo menos, 1 dia. |
Transit Time Max Days | 5 | A entrega demora, no máximo, 5 dias. |
Merchant return policy
A secção da política de devoluções é responsável por gerar hasMerchantReturnPolicy em offers. Os dados são adicionados apenas quando a secção está ativa e tem os valores obrigatórios.
| Campo | Significado | Valores |
|---|---|---|
Show Merchant Return Policy | Ativa a geração de hasMerchantReturnPolicy. | Yes, No |
Return Policy Country | País de aplicação da política de devoluções. | Código de país da lista do Magento; se estiver vazio, é utilizado o país da secção Organization. |
Return Policy Category | Tipo de política de devolução. | Finite Return Window, Returns Not Permitted, Unlimited Return Window |
Merchant Return Days | Número de dias para devolução. | Número inteiro; obrigatório para Finite Return Window. |
Return Method | Método de devolução suportado. | -- Empty --, Return By Mail, Return In Store, Return At Kiosk |
Return Fees | Informação sobre taxas de devolução. | -- Empty --, Free Return, Customer Responsibility, Return Shipping Fees |
Return Shipping Fee | Montante da taxa de envio da devolução. | Número superior a 0; obrigatório apenas para Return Shipping Fees. |
Valores do campo Return Policy Category:
| Valor | Valor JSON-LD | Significado |
|---|---|---|
Finite Return Window | https://schema.org/MerchantReturnFiniteReturnWindow | Devolução possível durante um número definido de dias. Requer Merchant Return Days. |
Returns Not Permitted | https://schema.org/MerchantReturnNotPermitted | As devoluções não são permitidas. |
Unlimited Return Window | https://schema.org/MerchantReturnUnlimitedWindow | Devolução sem limite de dias definido. |
Valores do campo Return Method:
| Valor | Valor JSON-LD | Significado |
|---|---|---|
-- Empty -- | sem valor | O método de devolução não é adicionado ao JSON-LD. |
Return By Mail | https://schema.org/ReturnByMail | Devolução por envio postal. |
Return In Store | https://schema.org/ReturnInStore | Devolução em loja física. |
Return At Kiosk | https://schema.org/ReturnAtKiosk | Devolução num ponto/quiosque. |
Valores do campo Return Fees:
| Valor | Valor JSON-LD | Significado |
|---|---|---|
-- Empty -- | sem valor | A informação sobre taxas não é adicionada ao JSON-LD. |
Free Return | https://schema.org/FreeReturn | A devolução é gratuita. |
Customer Responsibility | https://schema.org/ReturnFeesCustomerResponsibility | O custo da devolução é suportado pelo cliente. |
Return Shipping Fees | https://schema.org/ReturnShippingFees | A devolução tem uma taxa de envio definida. Requer Return Shipping Fee. |
A moeda do campo Return Shipping Fee é obtida a partir da moeda da oferta do produto.
Custom Properties
O campo Custom Properties permite adicionar propriedades personalizadas ao JSON-LD do produto.
Formato:
wlasciwosc_jsonld,kod_atrybutuSe for indicado apenas um elemento, o módulo trata-o simultaneamente como o nome da propriedade JSON-LD e o código do atributo.
Valor predefinido:
skumpn,skuSignificado do valor predefinido:
| Linha | Efeito |
|---|---|
sku | Adiciona sku com base no atributo sku. |
mpn,sku | Adiciona mpn com base no atributo sku. |
Exemplo de adição de um atributo personalizado:
color,colormaterial,materialConfiguração mínima recomendada para produtos
Para limitar os avisos do Google Search Console relativos a dados de produto, configure pelo menos:
| Campo | Recomendação |
|---|---|
Product Rich Data > Enabled | Yes |
Show Availability | Yes |
Brand | Selecione o atributo com a marca do produto. |
EAN / GTIN Attribute | Selecione o atributo com EAN / GTIN, se os produtos tiverem um identificador global. |
Show Shipping Details | Yes, se a loja tiver uma política de envio uniforme que possa ser descrita na configuração. |
Show Merchant Return Policy | Yes, se a loja tiver uma política de devoluções uniforme que possa ser descrita na configuração. |
Custom Properties | Mantenha, pelo menos, sku; opcionalmente, adicione mpn, se a loja tiver esse identificador. |
Limpeza da cache após alterações de configuração
Após alterar a configuração, execute:
php bin/magento cache:flushSe a loja utilizar cache HTTP adicional, Varnish ou CDN, limpe também essas camadas de cache.
Verificação do funcionamento
- Abra a página do produto no frontend.
- Verifique o código-fonte da página e encontre:
- Verifique se o JSON-LD contém os campos esperados, por exemplo:
{ '@type': 'Product', 'brand': { '@type': 'Brand', 'name': 'Example Brand' }, 'gtin13': '5901234123457', 'offers': [ { '@type': 'Offer', 'shippingDetails': {}, 'hasMerchantReturnPolicy': {} } ]}- Teste o URL do produto na ferramenta Google Rich Results Test ou no Google Search Console.
Notas de implementação
- Não ative
shippingDetailsnemhasMerchantReturnPolicyse os valores na configuração não corresponderem à política real da loja. - Se as políticas de envio ou de devolução variarem por produto, região, método de entrega ou carrinho, uma única configuração global pode não ser suficiente.
- Após alterar os atributos
Brand,ManufacturerouEAN / GTIN Attribute, é recomendável reindexar os dados do produto se a loja utilizar cache ou índices que afetem a leitura dos atributos. - Em lojas multilingues e multimoeda, verifique a configuração separadamente para cada Store View.