**TL;DR.** PLP SEO tem três regras. (1) Canonicalize a categoria base e abençoe combinações de filtros específicas que mapeiam para consultas de busca reais. (2) Noindex combinações de facetas arbitrárias e resultados de busca para controlar o orçamento de rastreamento. (3) Renderize no lado do servidor e emita o schema CollectionPage. O padrão de "faceta abençoada" é a alavanca estratégica para capturar consultas de cauda longa.

## Por que o SEO de categoria é importante

As páginas de categoria capturam as consultas comerciais de maior intenção:

- "bolsas de couro" (1,2M de buscas mensais no Google globalmente)
- "bolsa mensageiro de couro marrom" (40k mensais)
- "bolsa de laptop de couro vegano para mulheres" (8k mensais)

Cada uma dessas é uma consulta moldada por categoria. Classificar a URL certa para cada uma é a diferença entre tráfego de meio de funil e topo de funil.

## Hierarquia de URL

Estrutura recomendada:

```
/categories/leather-bags                       (pai)
/categories/leather-bags/messenger             (filho)
/categories/leather-bags/messenger/work        (neto — apenas se necessário)
```

Ou com prefixo de localidade:

```
/en/categories/leather-bags
/de/categorien/leder-taschen
```

Limite a profundidade a 3 níveis. Além disso, a navegação se torna frágil e a equidade de links se dilui.

## O problema da navegação facetada

Um PLP típico tem:

- 5 filtros de cor
- 4 filtros de tamanho
- 8 filtros de faixa de preço
- 3 ordens de classificação
- N páginas de paginação

Combinações: 5 × 4 × 8 × 3 × N = 480N URLs por categoria. Com 50 categorias, você tem 24.000N URLs apenas de combinações de facetas. Orçamento de rastreamento destruído.

A solução:

| Padrão de URL                                         | Decisão de indexação         |
| --------------------------------------------------- | ------------------------- |
| `/categories/leather-bags`                            | Indexar                     |
| `/categories/leather-bags?page=2`                     | Indexar, auto-canonical     |
| `/categories/leather-bags?sort=price-asc`              | **Canonical para base** + noindex |
| `/categories/leather-bags?color=brown`                 | Depende — veja "facetas abençoadas" |
| `/categories/leather-bags?color=brown&size=m`           | Canonical para base + noindex |
| `/search?q=leather+bag`                                | **Noindex** sempre        |

## Facetas abençoadas

Algumas combinações de filtros mapeiam para consultas de busca reais que os usuários digitam. Essas merecem sua própria URL indexável.

Como decidir o que abençoar:

1. **Dados de consulta crowdsourced**: Google Search Console → Relatório de Consultas. Filtrar por página de categoria. Procure consultas que impliquem uma faceta específica ("bolsa de couro marrom", "bolsa de couro pequena").
2. **Dados de volume de busca**: Ferramentas de palavras-chave confirmam que "bolsa de couro marrom" é pesquisada. "Bolsa de couro vintage desbotada tamanho médio entre $80 e $120" não é.
3. **Dados de conversão**: quais combinações de filtros levam a compras? Combinações de alta conversão com volume de busca são candidatas abençoadas.

Implementação de faceta abençoada:

```ts
// Pseudocódigo
interface BlessedFacet {
  facet: { name: string; value: string }; // e.g., { name: "color", value: "brown" }
  category: string; // e.g., "leather-bags"
  seoTitleTemplate: string; // e.g., "Bolsas de Couro Marrom — Coleção {brand}"
  seoDescription: string;
  ogImageUrl?: string;
  noIndex?: boolean; // substituição
}
```

Para uma faceta abençoada, renderize em uma URL limpa com metadados otimizados:

```
URL:     /categories/leather-bags/color-brown
Título:   Bolsas de Couro Marrom | Acme Leather Goods
Meta:    Descubra nossa coleção de bolsas de couro marrom — feitas à mão a partir de couro de grão integral. Frete grátis em pedidos acima de $50.
Canonical: self
Index: sim
```

Combinações não abençoadas (por exemplo, color=brown + size=medium + sort=price-asc):

```
URL:     /categories/leather-bags?color=brown&size=medium&sort=price-asc
Título:   Bolsas de Couro | Acme Leather Goods  (retornar à base)
Canonical: /categories/leather-bags
Index: não
```

## URLs de consulta de busca

Os resultados de busca quase sempre:

- Mapeiam para muitas URLs semelhantes.
- Têm baixa qualidade intrínseca de conteúdo (apenas uma lista de produtos).
- São altamente variáveis (cada erro de digitação cria uma nova URL).

Noindex them:

```html
<meta name="robots" content="noindex, follow" />
```

`follow` porque links internos de páginas de busca ainda passam equidade.

## Paginação

A melhor prática de 2026:

- Cada página (página 2, 3, ...) é auto-canonical.
- `rel="next"` e `rel="prev"` estão obsoletos, mas ainda são analisados como dicas — emita-os se for fácil.
- O conteúdo completo de cada página deve ser renderizado no servidor.
- Contagem total de resultados e página atual visíveis no H1 ou acima da dobra para clareza do usuário.

```html
<head>
  <link rel="canonical" href="https://example.com/categories/leather-bags?page=2" />
  <link rel="prev" href="https://example.com/categories/leather-bags" />
  <link rel="next" href="https://example.com/categories/leather-bags?page=3" />
</head>
```

## Renderização no servidor

As páginas de categoria devem renderizar seu conteúdo no lado do servidor. PLPs renderizados no cliente com React onde você busca produtos em `useEffect` recebem uma resposta HTML quase vazia do rastreador do Google.

Use Next.js Server Components (ou o SSR/SSG do framework equivalente) para a grade de produtos. Paginação, classificação e filtros podem ser limites de Suspense que são transmitidos após a estrutura estática.

## Schema CollectionPage

Envolva o PLP em `CollectionPage` com `ItemList` embutido:

```json
{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "name": "Bolsas de Couro",
  "description": "Explore nossa coleção de bolsas de couro feitas à mão.",
  "url": "https://example.com/categories/leather-bags",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "url": "https://example.com/products/brown-messenger-bag"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "url": "https://example.com/products/black-leather-tote"
      }
    ]
  },
  "breadcrumb": {
    "@type": "BreadcrumbList",
    "itemListElement": [
      { "@type": "ListItem", "position": 1, "name": "Início", "item": "https://example.com" },
      { "@type": "ListItem", "position": 2, "name": "Categorias", "item": "https://example.com/categories" },
      { "@type": "ListItem", "position": 3, "name": "Bolsas de Couro", "item": "https://example.com/categories/leather-bags" }
    ]
  }
}
```

Para URLs de facetas abençoadas, emita também `CollectionPage` com o título/descrição específico da faceta e um `ItemList` dos produtos filtrados.

## Título e descrição por faceta abençoada

Os títulos e descrições são como facetas abençoadas ganham suas consultas.

Categoria base:

```
<title>Bolsas de Couro | Acme — Couro Italiano Feito à Mão</title>
<meta name="description" content="Explore nossa coleção de bolsas de couro feitas à mão da Itália. Materiais de grão integral, hardware de latão sólido, frete grátis acima de $50.">
```

Faceta abençoada (color=brown):

```
<title>Bolsas de Couro Marrom | Acme — Couro Italiano Feito à Mão</title>
<meta name="description" content="Descubra bolsas de couro marrom feitas à mão da Itália. Materiais de grão integral, hardware de latão sólido, frete grátis acima de $50.">
```

Faceta abençoada (color=brown + style=messenger):

```
<title>Bolsas de Couro Mensageiro Marrom | Acme</title>
<meta name="description" content="Explore nossa coleção de bolsas de couro mensageiro marrom. Feitas à mão na Itália com couro de grão integral e hardware de latão sólido. Frete grátis acima de $50.">
```

## Como a Ordiko lida com SEO de categoria

- Padrão de URL `/categories/{slug}` com suporte a hierarquia.
- Tabela `BlessedFacet` por loja: faceta, categoria, substituições de modelo SEO.
- Facetas abençoadas renderizam em URLs limpas (`/categories/leather-bags/color-brown`); não abençoadas canonical para base com noindex.
- Páginas de consulta de busca auto-noindex.
- Paginação auto-canonical.
- Schema CollectionPage + ItemList + Breadcrumb em cada PLP.
- Renderizado no servidor com React Server Components.

## FAQ

**Devo noindex URLs facetadas completamente?**
Noindex combinações não abençoadas (combinações de filtros + classificação arbitrárias). Permita a indexação da categoria base e das facetas 'abençoadas' que mapeiam para consultas de busca reais. A lista de permissões é a alavanca estratégica — é assim que 'bolsas de couro', 'bolsas de couro marrom', 'bolsas de couro mensageiro marrom' cada uma obtém sua própria oportunidade de classificação.

**Como decido quais facetas abençoar?**
Faça uma referência cruzada dos seus valores de filtro com dados de consulta de busca (Google Search Console + seu próprio registro de busca + ferramentas de palavras-chave). Valores de filtro que correspondem a buscas reais se tornam abençoados. Combinações de valores arbitrários permanecem noindex.

**E quanto a combinações de cor + tamanho + preço?**
Essas se acumulam. 'bolsa de couro marrom' é pesquisável; 'bolsa de couro marrom tamanho médio abaixo de $200' não é. Abençoe combinações de um único atributo e de dois atributos no máximo; noindex combinações de 3+ atributos.

**Como a Ordiko lida com facetas?**
As configurações de SEO da Ordiko expõem um array de blessedFacets por loja. Cada entrada especifica a faceta (por exemplo, color=brown), seu modelo SEO (título, descrição, substituição de imagem OG) e emite uma URL limpa como /categories/leather-bags/color-brown que é indexada. Outras combinações noindex automaticamente.