SEO para páginas de produto no WooCommerce
Uma página de produto no WooCommerce é, ao mesmo tempo, a peça que ranqueia e a peça que vende. Este guia é procedural: cada seção descreve o que preencher, onde clicar e como validar, para que a página tenha título e meta description únicos, schema.org/Product válido, imagens nomeadas e leves, variações tratadas sem duplicação, avaliações estruturadas e um corpo de texto que não seja cópia do fabricante.
1. Título do produto: estrutura e onde preencher
O WooCommerce usa o campo Product name como <title> padrão. Quando há Yoast SEO ou RankMath instalados, o SEO title substitui esse padrão apenas na tag <title> do HTML — o nome do produto continua sendo o que aparece na loja, no carrinho e no checkout. Preencha os dois campos: o nome interno para o cliente, o SEO title para o buscador.
Template recomendado
`` [Marca] [Modelo] [Atributo diferenciador] | [Categoria] ``
Exemplos:
Tênis Nike Air Zoom Pegasus 40 Masculino | CorridaCafeteira Nespresso Vertuo Next Preta | Cápsulas
Regras práticas
- Limite de 60 caracteres no SEO title. Acima disso, o Google trunca com reticências na SERP e a marca ou a categoria pode ser cortada.
- Palavra-chave principal no início, antes do separador. Modelos e atributos vêm antes de categoria genérica.
- Separadores: pipe (
|) ou hífen (-). Evite mistura no mesmo template. - Não repita palavras ("Tênis Tênis Nike") — o WooCommerce já adiciona a categoria em breadcrumb; não duplique.
- Sem promoções no título ("MEGA OFERTA", "50% OFF"): quando a promoção acaba, o título fica desatualizado.
Onde preencher
- Editor do produto → campo "Nome do produto" (topo): usado na loja.
- Snippet do Yoast/RankMath (rolar até o final do editor) → Editar snippet → SEO title: usado só na
<title>HTML. - Slug: gerar automaticamente a partir do nome e mantê-lo curto (
nike-pegasus-40-masculino), sem stopwords soltas.
2. Descrição curta e descrição longa
O WooCommerce oferece dois campos distintos, e cada um cumpre uma função de SEO diferente.
Short description (Descrição curta)
Campo lateral no editor. Aparece ao lado da galeria, acima do botão de compra. É a primeira coisa que o usuário lê depois do preço.
- 3 a 5 bullets com benefícios, não com especificações técnicas.
- 80 a 200 palavras no total.
- Uma palavra-chave secundária pode entrar em um dos bullets, sem forçar.
Exemplo: ```
- Amortecimento Zoom Air no antepé para arrancadas mais rápidas
- Cabedal Flyknit respirável que reduz o peso do tênis
- Solado com borracha carbono para maior durabilidade
- Indicado para treinos de rua entre 5 e 15 km
```
Long description (Descrição longa)
Campo principal do editor. Aparece na aba "Descrição" abaixo da ficha do produto.
Estrutura recomendada com headings:
```markdown
Sobre o [Produto]
Parágrafo introdutório com a palavra-chave principal e o problema que o produto resolve.
Características principais
Bullets ou parágrafos com features.
Especificações técnicas
Tabela: dimensões, peso, material, voltagem, compatibilidade.
Como usar
Passo a passo, cuidados, dicas de manutenção.
Perguntas frequentes
O produto é compatível com X?
Resposta direta.
Qual a garantia?
Resposta direta. ```
- Mínimo funcional: 300 palavras. Produtos técnicos costumam pedir 600–1.000 para cobrir uso, comparações e FAQ.
- H2/H3 estruturados (não H1 — o H1 é o nome do produto).
- FAQ dentro da long description habilita o schema
FAQPageopcional (ver seção 3) e responde dúvidas que reduzem devolução.
3. Schema.org/Product
O schema.org/Product transforma dados da página em rich snippets: preço, disponibilidade, estrelas e faixa de avaliações direto na SERP.
Propriedades obrigatórias
| Propriedade | O que preencher | |---|---| | name | Nome do produto | | image | URL absoluta da imagem principal (idealmente 1200×1200 ou maior) | | description | Long description limpa, sem HTML | | sku | Código único do produto | | brand | Objeto Brand com name (ver atributo global brand abaixo) | | offers | Objeto Offer com price, priceCurrency (BRL), availability (InStock, OutOfStock, PreOrder), url |
Propriedades recomendadas
aggregateRating(ratingValue,reviewCount) — puxada automaticamente das reviews da loja.review(array de objetosReview).gtin13/mpn— quando o produto tem código de barras global.priceValidUntil— obrigatório para promoções datadas.
Como implementar
Via Yoast SEO WooCommerce ou RankMath: ambos geram JSON-LD automaticamente a partir dos campos nativos do WooCommerce (nome, preço, disponibilidade, avaliações). Basta:
- Instalar o plugin e o addon WooCommerce (no caso do Yoast).
- Cadastrar SKU em cada produto (aba Inventário do editor).
- Criar o atributo global
brandem Produtos → Atributos, marcá-lo como atributo global e associá-lo ao produto (aba Atributos do editor). O plugin lê esse atributo e preenchebrand.nameno schema. - Verificar em Configurações do plugin → Schema que o tipo padrão para páginas de produto é
Product.
Via código (functions.php do tema filho): útil se o site não usa plugin SEO. Registrar um wp_head que imprime JSON-LD montado com get_post_meta, wc_get_product, $product->get_regular_price(), $product->get_stock_status() e escapar com wp_json_encode.
Validar
- Rich Results Test do Google (search.google.com/test/rich-results): cole a URL do produto e confirme que aparece "Products válidos" sem erros. Warnings sobre
priceValidUntilsão aceitáveis quando não há promoção. - Search Console → Aprimoramentos → Snippets de produtos: monitora produtos indexados com schema válido e erros ao longo do tempo.
4. Imagens de produto
Antes do upload — nome do arquivo
Renomear cada arquivo antes de enviar para a biblioteca de mídia:
`` Ruim: IMG_20240315_182344.jpg Bom: tenis-nike-pegasus-40-preto-lateral.jpg ``
Padrão: [produto]-[atributo]-[modelo]-[angulo].jpg. Minúsculas, sem acentos, separadas por hífen.
Alt text
Preencher um por imagem, direto na Biblioteca de mídia ou no painel lateral ao inserir na galeria do produto.
- Descritivo, não repetitivo. A imagem lateral não tem o mesmo alt da imagem frontal.
- Palavra-chave sim, keyword stuffing não.
Tênis Nike Pegasus 40 preto vista lateralé melhor queTênis Nike Pegasus 40 preto Nike tênis corrida masculino. - Fotos de detalhe descrevem o detalhe:
Solado em borracha carbono do Nike Pegasus 40.
Dimensões da galeria WooCommerce
Em Personalizar → WooCommerce → Imagens do produto:
- Imagem única do produto: 600 px de largura (ou 800 px em temas modernos).
- Miniaturas da galeria: 300×300 px, corte fixo (
Cropped 1:1). - Thumbnails de catálogo: 300×300 px.
Depois de alterar essas dimensões, rodar Ferramentas → WP-CLI → Regenerar miniaturas ou o plugin Regenerate Thumbnails. Sem regenerar, o WooCommerce serve os tamanhos antigos.
Formato WebP e lazy loading
- WebP via ShortPixel, Imagify, EWWW Image Optimizer ou Smush. Ativar conversão automática no upload e reprocessamento em lote da biblioteca já existente.
- Lazy loading já é nativo do WordPress 5.5+ (
loading="lazy"no HTML). Confirmar que o plugin de cache/otimização não está removendo o atributo. - Imagem principal do produto sem lazy (
fetchpriority="high"idealmente): é o LCP da página e o navegador precisa priorizá-la. Plugins como Perfmatters permitem excluir a primeira imagem do lazy.
Compressão
Usar o mesmo plugin de WebP para comprimir. Meta: imagem principal < 150 KB, miniaturas de galeria < 40 KB cada.
5. Produtos variáveis e variações
Produto variável é o principal ponto de duplicação em lojas WooCommerce, porque cada variação pode gerar uma URL com querystring (?attribute_cor=preto&attribute_tamanho=42) que compete com o pai.
Atributos globais primeiro
- Produtos → Atributos: criar
cor,tamanho,voltagem,brand, etc. como atributos globais. - Marcar "Ativar arquivos" apenas nos atributos que fazem sentido virar página (ex.:
corpode não fazer sentido,brandcostuma fazer). - No editor do produto, aba Atributos, selecionar cada atributo global e marcar "Usado para variações".
- Aba Variações → Gerar variações de todos os atributos: WooCommerce cria uma variação por combinação. Preencher SKU, preço e imagem de cada uma.
Canonical apontando para o pai
As URLs ?attribute_cor=preto não devem ranquear individualmente — canibalizam o produto pai. Duas formas de resolver:
- Yoast/RankMath: por padrão, o canonical de variação aponta para o pai. Confirmar em Configurações do plugin → Search Appearance → Product e no HTML de uma URL de variação (
<link rel="canonical">deve mostrar a URL limpa, sem querystring). - Código: hook
wpseo_canonical(Yoast) para forçarget_permalink( $product->get_id() )em qualquer requisição com querystring de atributo.
Indexação de atributos
- Atributos que fazem sentido como página de arquivo (marca, categoria de material): manter indexados, gerar
/marca/nike/e/material/couro/. - Atributos que só variam produto (cor, tamanho): marcar
noindexno arquivo do atributo em Yoast → Search Appearance → Taxonomias.
Schema com múltiplas offers
Para produtos variáveis, offers deve ser um array de Offer (uma por variação em estoque), ou um objeto AggregateOffer com lowPrice, highPrice, offerCount. Yoast e RankMath fazem essa decisão automaticamente: se a variação de menor preço estiver esgotada, o schema atualiza sozinho.
6. Avaliações estruturadas
Ativar
- WooCommerce → Configurações → Produtos → Geral:
- Marcar "Habilitar avaliações".
- Marcar "Mostrar rótulo 'compra verificada' para clientes que compraram o produto".
- Marcar "Somente compradores verificados podem deixar avaliações".
- Definir avaliação padrão de estrelas: obrigatório.
Por que exigir compra verificada
- Reduz spam sem depender de captcha adicional.
- Reviews falsas violam as políticas do Google para rich snippets. Avaliações verificadas dão base honesta ao
aggregateRating.
Schema Review/AggregateRating
Quando as avaliações estão ativas e o produto tem ao menos uma nota, o plugin SEO adiciona automaticamente:
``json { "@type": "Product", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "128" }, "review": [ { "@type": "Review", "reviewRating": { "@type": "Rating", "ratingValue": "5" }, "author": { "@type": "Person", "name": "João S." } } ] } ``
Sem review nenhuma, o schema não inclui aggregateRating — o que é correto. Nunca invente notas para preencher o campo.
Rich snippet na SERP
Depois que o produto tem avaliações verificadas e o schema válido, o Google costuma passar a mostrar estrelas na SERP dentro de dias ou semanas — não é garantido, e depende dos critérios internos de qualidade do buscador. Não prometa isso ao cliente como certeza.
7. Conteúdo único por produto
Copiar a descrição do fabricante é o erro mais comum e o mais penalizante: dezenas de lojas publicam o mesmo texto do mesmo release, e o algoritmo escolhe uma para ranquear. Normalmente, não é a menor.
Como reescrever com foco em unicidade
Cada descrição de produto deve ter, no mínimo:
- Parágrafo próprio de introdução — quem é o público, que problema resolve.
- Bloco de uso real — quando/como usar, em que cenários funciona melhor, para quem não é indicado.
- Comparação interna — como se diferencia de outros modelos da mesma loja (link interno para variações ou modelos correlatos).
- FAQ com dúvidas reais — extraídas do SAC, chat ou avaliações. Não são as mesmas do fabricante.
Identificar duplicação
- Screaming Frog SEO Spider: crawl completo do site, aba Content → Near Duplicates (requer ativar em Configuration → Content → Duplicates → Enable Near Duplicates). Threshold recomendado: 90%.
- Também usar Page Titles → Duplicate e Meta Description → Duplicate para achar títulos/descrições repetidos entre produtos diferentes.
- Siteliner (siteliner.com): scan gratuito até 250 URLs, aponta % de conteúdo duplicado entre páginas internas do próprio domínio.
- Copyscape: verifica duplicação externa — se a descrição foi copiada do fabricante ou de concorrente.
Priorizar a reescrita nos produtos com mais tráfego potencial (maior volume de busca, maior margem) primeiro.
8. Diagnóstico: checklist para páginas de produto que não ranqueiam
Quando um produto está publicado mas não aparece nas buscas, rodar esta sequência antes de suspeitar de fatores externos ao produto:
8.1 Indexação
site:seudominio.com.br/produto/slug-do-produtono Google. Se não retornar, o produto não foi indexado.- Search Console → Inspeção de URL: verifica motivo (bloqueado por robots,
noindex, canonical apontando para outra URL, descoberto mas não rastreado). - Confirmar no HTML da página:
<meta name="robots" content="index, follow">e nãonoindex.
8.2 Canonical
view-source:na URL do produto → buscar<link rel="canonical".- Deve apontar para a URL limpa do próprio produto, sem querystring, sem apontar para categoria, sem apontar para outro produto.
- Em produtos variáveis, testar uma URL com
?attribute_cor=Xe confirmar que o canonical continua apontando para o pai.
8.3 Schema
- Rich Results Test com a URL. Deve reconhecer tipo
Productse não retornar erros críticos (warnings sobrepriceValidUntilsão aceitáveis quando não há promoção). - Search Console → Snippets de produtos: verificar produtos com erro e clicar para ver a causa exata.
8.4 Título e meta description
- Screaming Frog: aba Page Titles → Duplicate e Meta Description → Missing/Duplicate. Qualquer produto com título duplicado precisa ser reescrito.
- Verificar se o SEO title do plugin está sendo respeitado — alguns temas sobrescrevem o
<title>via template.
8.5 Imagens
- Screaming Frog → Images → Missing Alt Text: lista imagens sem alt no site inteiro.
- Aba Images → Over 100 KB: identificar imagens pesadas.
- Confirmar que o formato WebP está sendo servido (DevTools → Network → filtrar por Img → coluna Type deve mostrar
webp).
8.6 Submeter sitemap
- Yoast/RankMath geram automaticamente
/sitemap_index.xmlcom um sub-sitemap por CPT (product-sitemap.xml). - Search Console → Sitemaps: enviar
sitemap_index.xmle confirmar que oproduct-sitemap.xmlfoi lido, com número de URLs enviadas e indexadas.
8.7 Canibalização com a categoria
Quando o produto e a categoria disputam a mesma busca (tenis-nike-pegasus-40 vs /categoria/tenis-nike/), o Google alterna entre os dois e nenhum estabiliza. A resolução envolve decidir qual URL deve ranquear para o termo e ajustar títulos, internal links e conteúdo dos dois — isso pertence ao território de canibalização produto/categoria, não à página em si.
---
Cada bloco acima descreve uma configuração isolada da página de produto. A ordem prática de implementação é: (1) atributos globais e SKU → (2) título, short e long description → (3) imagens nomeadas com alt → (4) plugin SEO com schema ativo → (5) avaliações verificadas → (6) validação no Rich Results Test → (7) submissão do sitemap → (8) auditoria Screaming Frog para duplicações. Nada disso substitui o inventário limpo e a nomenclatura consistente: página de produto boa é a que tem dado de produto bom por trás.