**TL;DR.** SEO multilíngue em 2026 tem três regras. (1) Escolha uma estrutura de URL e use-a em todos os lugares. (2) Emita clusters hreflang recíprocos que incluam apenas locais realmente traduzidos por entidade. (3) Traduza toda a jornada do usuário, não apenas os títulos dos produtos. Acertando isso, você superará concorrentes de um único local em cada mercado traduzido.

## Por que isso importa em 2026

O comércio eletrônico transfronteiriço continua a crescer. De acordo com estimativas do setor, cerca de 28% dos pedidos globais de comércio eletrônico cruzaram fronteiras em 2025. Comerciantes que atendem várias regiões nativamente têm melhor classificação nessas regiões e convertem melhor porque a experiência é localizada.

Motores de busca de IA (Perplexity, ChatGPT, Claude, Google AI Overviews) lidam com conteúdo multilíngue de forma menos elegante do que a SERP clássica do Google. Páginas com sinais de local fortes — URLs limpas, hreflang precisos, metadados no idioma, JSON-LD específico para o local — são citadas de forma mais confiável do que páginas bilíngues ambíguas.

## Passo 1: Escolha uma estrutura de URL

| Estrutura       | Exemplo                | Prós                                              | Contras                                       |
| --------------- | ---------------------- | ------------------------------------------------- | --------------------------------------------- |
| ccTLD           | `example.de`           | Sinal geográfico mais forte; claro para os usuários | Divide a autoridade do domínio; múltiplos certificados SSL |
| Subdomínio      | `de.example.com`       | Fácil de configurar hospedagem por região         | Tratado como site separado por alguns sinais  |
| Prefixo de caminho | `example.com/de/`      | Consolida a autoridade; barato para configurar     | Sinal geográfico ligeiramente mais fraco do que ccTLD |
| Parâmetro de consulta | `example.com/?lang=de` | Mais fácil de adicionar                            | **Não use.** O Google trata como duplicado.   |

O padrão de 2026 é **prefixo de caminho**. É o que a Ordiko usa por padrão (`example.com/de/`, `example.com/fr/`, etc.).

## Passo 2: Emita um cluster hreflang completo

Para cada URL traduzida, emita:

```html
<link rel="alternate" hreflang="en" href="https://example.com/en/products/leather-bag" />
<link rel="alternate" hreflang="de" href="https://example.com/de/products/leather-bag" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/products/leather-bag" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/products/leather-bag" />
```

Regras:

1. Cada URL deve se autorreferenciar (a URL `en` emite `hreflang="en"` para si mesma).
2. Cada URL deve listar todas as outras variantes.
3. `x-default` aponta para o local que você atende quando nenhuma língua corresponde (tipicamente inglês ou seu padrão).
4. Use códigos de idioma ISO 639-1 (`en`, `de`, `fr`), opcionalmente combinados com a região ISO 3166-1 (`en-GB`, `en-US`).
5. Não inclua uma variante que retorne um status HTTP não-200.

## Passo 3: Filtrar para entidades realmente traduzidas

Um erro comum: emitir o conjunto completo de locais para cada URL, mesmo quando muitas entidades são traduzidas apenas para um subconjunto.

**Errado**:

```html
<!-- produto só tem traduções em en + de -->
<link rel="alternate" hreflang="en" href=".../en/products/x" />
<link rel="alternate" hreflang="de" href=".../de/products/x" />
<link rel="alternate" hreflang="fr" href=".../fr/products/x" />  <!-- retorna 404 -->
```

**Certo**:

```html
<link rel="alternate" hreflang="en" href=".../en/products/x" />
<link rel="alternate" hreflang="de" href=".../de/products/x" />
<link rel="alternate" hreflang="x-default" href=".../en/products/x" />
```

A Ordiko implementa isso através de `EntityForSeo.availableLocales` — cada produto, categoria, marca e página pode especificar quais locais estão traduzidos, e `alternates.languages` é a interseção de `store.supportedLocales` e `availableLocales`.

## Passo 4: Traduza toda a jornada do cliente

Lacunas comuns que prejudicam classificações e conversões:

| Superfície               | Traduzido?                                |
| ------------------------ | ------------------------------------------ |
| Meta título              | Sim (por local)                            |
| Meta descrição           | Sim                                        |
| H1                       | Sim                                        |
| Rótulos de breadcrumb     | Sim                                        |
| Nomes de categoria       | Sim                                        |
| Campos de schema de produto | Sim (`name`, `description`, `category`)     |
| Texto alternativo de imagem | Sim                                      |
| Mensagens de erro (404/410) | Sim                                      |
| Texto de checkout        | Sim                                        |
| Modelos de e-mail       | Sim                                        |

Uma página que é 80% alemã com mensagens de erro em inglês e texto alternativo em inglês é um sinal para usuários e para o Google.

## Passo 5: Configure moeda e envio por local

Moeda e local não são a mesma coisa (a Suíça usa CHF e atende alemão/francês/italiano), mas geralmente estão correlacionados. No schema de Produto de 2026:

```json
{
  "@type": "Offer",
  "priceCurrency": "EUR",
  "price": "49.00",
  "availability": "https://schema.org/InStock",
  "shippingDetails": [{
    "@type": "OfferShippingDetails",
    "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "DE" },
    "shippingRate": { "@type": "MonetaryAmount", "value": "4.99", "currency": "EUR" },
    "deliveryTime": {
      "@type": "ShippingDeliveryTime",
      "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
      "transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
    }
  }]
}
```

Os preços e envios por região devem corresponder ao que o usuário vê na página. Desvios entre o schema e o preço visível fazem com que o Google suprimam o resultado rico.

## Passo 6: Envie sitemaps

Dois padrões viáveis:

**Padrão A — um sitemap por local:**

```
/sitemap.xml (índice)
/sitemap-en.xml
/sitemap-de.xml
/sitemap-fr.xml
```

**Padrão B — sitemap único com anotações hreflang:**

```xml
<url>
  <loc>https://example.com/en/products/x</loc>
  <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/products/x" />
  <xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/products/x" />
</url>
```

O Padrão A é mais fácil de depurar. O Padrão B é mais compacto. A Ordiko usa o Padrão A por padrão.

## Passo 7: Verifique

No Google Search Console:

1. **Configurações → Segmentação Internacional → Aba de Idioma** — mostra erros hreflang.
2. **Cobertura → Páginas** — confirma que cada variante de local está indexada.
3. **Desempenho → Filtros → País** — confirma que cada local classifica em sua região alvo.

Para busca de IA:

```bash
curl -A "PerplexityBot" https://example.com/de/products/x
# deve retornar 200 com conteúdo em alemão e cluster hreflang em alemão
```

## Armadilhas comuns

- Hreflang não recíproco. Sempre emita um cluster completo.
- Códigos de idioma errados. Use ISO 639-1 (`zh-Hans` não `zh-CN` para chinês simplificado).
- Incluir URLs inacessíveis. Filtre alvos 404/410.
- Misturar estruturas. Não coloque conteúdo em alemão em `/products/x?lang=de` *e* `/de/products/x`.
- Ignorar motores de IA. Adicione gêmeos Markdown e `inLanguage` explícito em JSON-LD.

## FAQ

**Devo usar ccTLDs, subdomínios ou prefixos de caminho?**
Prefixos de caminho (example.com/de/) são o padrão moderno — eles consolidam a autoridade do domínio, são fáceis de configurar e o Google os lida bem. ccTLDs (example.de) dão o sinal geográfico mais forte, mas dividem a autoridade. Subdomínios (de.example.com) ficam entre os dois. Escolha prefixos de caminho, a menos que você tenha um motivo específico para não fazê-lo.

**O hreflang afeta a classificação diretamente?**
Não diretamente. O hreflang controla qual variante de local o Google serve a um determinado usuário — não aumenta as classificações. Feito corretamente, evita que a variante de idioma errado supere a correta em uma determinada região, o que se traduz em um aumento mensurável na conversão.

**Como os motores de IA lidam com conteúdo multilíngue?**
Perplexity, ChatGPT Search e Claude indexam páginas independentemente por local, com menor consciência de hreflang do que o Google. A melhor prática em 2026: emita um gêmeo Markdown por local (por exemplo, /de/blog/slug.md), marque explicitamente inLanguage em JSON-LD e considere entradas llms.txt por local.

**Qual é o erro mais comum de hreflang?**
Links não recíprocos. Se a página A linka para a página B, mas B não linka de volta para A, o Google ignora todo o cluster. Sempre emita um cluster completo, incluindo a autorreferência.