**TL;DR.** La SEO multilingue nel 2026 ha tre regole. (1) Scegli una struttura URL e usala ovunque. (2) Emmetti cluster hreflang reciproci che includano solo le località effettivamente tradotte per entità. (3) Traduci l'intero percorso dell'utente, non solo i titoli dei prodotti. Se fai queste cose bene, supererai i concorrenti a singola località in ciascun mercato tradotto.

## Perché è importante nel 2026

L'ecommerce transfrontaliero continua a crescere. Secondo le stime del settore, circa il 28% degli ordini globali di ecommerce ha attraversato i confini nel 2025. I commercianti che servono più regioni nativamente si posizionano meglio in quelle regioni e convertono meglio perché l'esperienza è localizzata.

I motori di ricerca AI (Perplexity, ChatGPT, Claude, Google AI Overviews) gestiscono i contenuti multilingue meno elegantemente rispetto al classico SERP di Google. Le pagine con forti segnali di località — URL puliti, hreflang accurati, metadati nella lingua, JSON-LD specifico per la località — vengono citate in modo più affidabile rispetto alle pagine bilingue ambigue.

## Passo 1: Scegli una struttura URL

| Struttura       | Esempio                | Vantaggi                                          | Svantaggi                                      |
| --------------- | ---------------------- | ------------------------------------------------- | ----------------------------------------------- |
| ccTLD           | `example.de`           | Segnale geografico più forte; chiaro per gli utenti | Divide l'autorità del dominio; più certificati SSL |
| Sottodominio     | `de.example.com`       | Facile da impostare per l'hosting per regione     | Trattato come sito separato da alcuni segnali   |
| Prefisso di percorso | `example.com/de/`      | Consolida l'autorità; economico da impostare      | Segnale geografico leggermente più debole rispetto a ccTLD |
| Parametro di query | `example.com/?lang=de` | Più facile da aggiungere                          | **Non usare.** Google lo tratta come duplicato. |

Il predefinito del 2026 è **prefisso di percorso**. È ciò che Ordiko utilizza per impostazione predefinita (`example.com/de/`, `example.com/fr/`, ecc.).

## Passo 2: Emmetti un cluster hreflang completo

Per ogni URL tradotto, emetti:

```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" />
```

Regole:

1. Ogni URL deve auto-riferirsi (l'URL `en` emette `hreflang="en"` per se stesso).
2. Ogni URL deve elencare ogni altra variante.
3. `x-default` punta alla località che servi quando nessuna lingua corrisponde (tipicamente inglese o il tuo predefinito).
4. Usa codici lingua ISO 639-1 (`en`, `de`, `fr`), eventualmente combinati con la regione ISO 3166-1 (`en-GB`, `en-US`).
5. Non includere una variante che restituisce uno stato HTTP non-200.

## Passo 3: Filtra per entità effettivamente tradotte

Un errore comune: emettere l'intero set di località per ogni URL anche quando molte entità sono tradotte solo in un sottoinsieme.

**Sbagliato**:

```html
<!-- il prodotto ha solo traduzioni 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" />  <!-- restituisce 404 -->
```

**Giusto**:

```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" />
```

Ordiko implementa questo tramite `EntityForSeo.availableLocales` — ogni prodotto, categoria, marchio e pagina può specificare in quali località è tradotto, e `alternates.languages` è l'intersezione di `store.supportedLocales` e `availableLocales`.

## Passo 4: Traduci l'intero percorso del cliente

Gaps comuni che danneggiano i posizionamenti e la conversione:

| Superficie               | Tradotto?                                   |
| ------------------------ | ------------------------------------------- |
| Meta titolo              | Sì (per località)                           |
| Meta descrizione         | Sì                                          |
| H1                       | Sì                                          |
| Etichette breadcrumb      | Sì                                          |
| Nomi delle categorie     | Sì                                          |
| Campi dello schema prodotto | Sì (`name`, `description`, `category`)     |
| Testo alt delle immagini  | Sì                                          |
| Messaggi di errore (404/410) | Sì                                      |
| Testo di checkout        | Sì                                          |
| Modelli di email         | Sì                                          |

Una pagina che è per l'80% in tedesco con messaggi di errore in inglese e testo alt in inglese è un segnale per gli utenti e per Google.

## Passo 5: Configura valuta e spedizione per località

Valuta e località non sono la stessa cosa (la Svizzera usa CHF e serve tedesco/francese/italiano) ma sono solitamente correlate. Nel 2026, lo schema prodotto:

```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" }
    }
  }]
}
```

I prezzi e le spedizioni per regione dovrebbero corrispondere a ciò che l'utente vede sulla pagina. Le discrepanze tra schema e prezzo visibile causano a Google di sopprimere il risultato ricco.

## Passo 6: Invia sitemap

Due modelli validi:

**Modello A — una sitemap per località:**

```
/sitemap.xml (indice)
/sitemap-en.xml
/sitemap-de.xml
/sitemap-fr.xml
```

**Modello B — sitemap singola con annotazioni 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>
```

Il Modello A è più facile da debug. Il Modello B è più compatto. Ordiko utilizza il Modello A per impostazione predefinita.

## Passo 7: Verifica

In Google Search Console:

1. **Impostazioni → Targeting internazionale → Scheda Lingua** — mostra errori hreflang.
2. **Copertura → Pagine** — conferma che ogni variante di località sia indicizzata.
3. **Prestazioni → Filtri → Paese** — conferma che ogni località si posizioni nella sua regione target.

Per la ricerca AI:

```bash
curl -A "PerplexityBot" https://example.com/de/products/x
# dovrebbe restituire 200 con contenuti in tedesco e cluster hreflang in tedesco
```

## Errori comuni

- Hreflang non reciproci. Emmetti sempre un cluster completo.
- Codici lingua errati. Usa ISO 639-1 (`zh-Hans` non `zh-CN` per il cinese semplificato).
- Inclusione di URL irraggiungibili. Filtra i target 404/410.
- Mischiare strutture. Non mettere contenuti in tedesco su `/products/x?lang=de` *e* `/de/products/x`.
- Ignorare i motori AI. Aggiungi gemelli Markdown e `inLanguage` esplicito in JSON-LD.

## FAQ

**Dovrei usare ccTLD, sottodomini o prefissi di percorso?**
I prefissi di percorso (example.com/de/) sono il predefinito moderno — consolidano l'autorità del dominio, sono facili da configurare e Google li gestisce bene. I ccTLD (example.de) danno il segnale geografico più forte ma dividono l'autorità. I sottodomini (de.example.com) si trovano a metà strada. Scegli i prefissi di percorso a meno che tu non abbia un motivo specifico per non farlo.

**L'hreflang influisce direttamente sul posizionamento?**
Non direttamente. L'hreflang controlla quale variante di località Google serve a un dato utente — non aumenta i posizionamenti. Se fatto correttamente, impedisce che la variante in lingua errata superi quella giusta in una data regione, il che si traduce in un aumento misurabile della conversione.

**Come gestiscono i motori AI i contenuti multilingue?**
Perplexity, ChatGPT Search e Claude indicizzano le pagine in modo indipendente per località, con una consapevolezza hreflang più debole rispetto a Google. La migliore pratica nel 2026: emetti un gemello Markdown per località (ad es. /de/blog/slug.md), contrassegna esplicitamente inLanguage in JSON-LD e considera le voci llms.txt per località.

**Qual è l'errore hreflang più comune?**
Link non reciproci. Se la pagina A collega la pagina B ma B non collega di nuovo a A, Google ignora l'intero cluster. Emmetti sempre un cluster completo, incluso il riferimento a se stesso.