---
title: "SEO tecnica su Shopify: cosa si sistema nel codice del tema"
seo_title: "SEO tecnica Shopify: cosa sistemare nel codice del tema"
description: "SEO tecnica su Shopify: title, canonical, H1, dati strutturati in Liquid, immagini e pagine filtrate. Cosa fa già Shopify e cosa va sistemato nel tema."
url: "https://salvatorepitone.it/seo-tecnica-shopify-liquid/"
type: "BlogPosting"
language: "it-IT"
published: "2026-10-26T17:33:56+01:00"
updated: "2026-10-26T19:03:56+01:00"
author: "Salvatore Pitone"
categories:
  - "Shopify"
tags:
  - "Shopify"
  - "eCommerce"
  - "seo shopify"
image: "https://salvatorepitone.it/wp-content/uploads/2026/10/seo-tecnica-shopify-liquid-copertina.webp"
---

# SEO tecnica su Shopify: cosa si sistema nel codice del tema

Il negozio è online, i prodotti ci sono, ma su Google si vede poco. Prima di parlare di contenuti e di link, conviene controllare una cosa più concreta: il codice del tema. Una buona parte della **SEO di Shopify** dipende da come il tema stampa titoli, descrizioni, intestazioni e dati strutturati.

**In breve:** Shopify genera da solo sitemap.xml, robots.txt e, con i Mercati, i tag hreflang. Nel codice del tema restano da controllare: title, meta description e canonical in `theme.liquid`, un solo H1 per pagina, i dati strutturati dei prodotti, i link verso i prodotti nelle collezioni e il testo alternativo delle immagini.

Questo articolo parla solo di codice del tema. Per la parte di contenuti, campagne e promozione c’è l’articolo sulle [strategie di marketing per vendere di più su Shopify](https://salvatorepitone.it/strategie-di-marketing-per-aumentare-le-vendite-su-shopify/).

## Cosa fa già Shopify per la SEO

Partiamo da quello che non devi fare tu, così non perdi tempo con app che promettono di “attivarlo”:

- **sitemap.xml**: Shopify la genera e la aggiorna da sola, con prodotti, collezioni, pagine e articoli del blog, come spiega la guida su come [trovare e inviare la sitemap](https://help.shopify.com/it/manual/promoting-marketing/seo/find-site-map);
- **robots.txt**: c’è già, e blocca carrello, checkout, ricerca interna, gli URL ordinati con `sort_by` e le combinazioni di più filtri. Puoi leggerlo aprendo `iltuonegozio.it/robots.txt`;
- **hreflang**: se vendi in più lingue o paesi con i Mercati, i tag vengono creati in automatico in base alla configurazione, come indica la guida sulla [SEO internazionale per i mercati](https://help.shopify.com/it/manual/markets/seo);
- **title e description** di prodotti, collezioni e pagine si scrivono nell’admin, nel riquadro dell’anteprima nei motori di ricerca;
- **canonical**: l’oggetto `canonical_url` fornisce l’indirizzo principale di ogni pagina; tocca al tema stamparlo.

Questa base tecnica è uno dei motivi per cui una migrazione fatta bene non perde posizioni: il resto lo fanno URL e redirect, come racconto in [migrare da WooCommerce a Shopify senza perdere SEO](https://salvatorepitone.it/migrare-da-woocommerce-a-shopify-senza-perdere-seo/).

## Title, description e canonical nel tema

Il primo file da aprire è `layout/theme.liquid`. Nella parte `<head>` devono esserci queste righe; questa è la versione di Dawn, il tema di riferimento di Shopify:

`layout/theme.liquid (estratto da Dawn)`

```
<link rel="canonical" href="{{ canonical_url }}">
<title>
{{ page_title }}
{%- if current_tags %} &ndash; tagged "{{ current_tags | join: ', ' }}"{% endif -%}
{%- if current_page != 1 %} &ndash; Page {{ current_page }}{% endif -%}
{%- unless page_title contains shop.name %} &ndash; {{ shop.name }}{% endunless -%}
</title>
{% if page_description %}
<meta name="description" content="{{ page_description | escape }}">
{% endif %}
```

Riga per riga: il canonical usa l’indirizzo che Shopify considera principale. Il title parte da `page_title`, cioè il titolo SEO scritto nell’admin o, se manca, il nome della pagina. Poi aggiunge i tag filtrati e il numero di pagina, così la pagina 2 di una collezione non ha lo stesso titolo della pagina 1, e in fondo il nome del negozio, se non c’è già. La description usa `page_description` con `escape`, che neutralizza le virgolette.

![Codice Liquid per canonical, title e meta description nel file theme.liquid di Shopify, dal tema Dawn](https://salvatorepitone.it/wp-content/uploads/2026/10/seo-tecnica-shopify-liquid-jsonld.webp)

_Canonical, title e meta description: le righe da controllare in theme.liquid._

Le parole “tagged” e “Page” in Dawn sono in inglese: in un negozio italiano le traduco con chiavi nei file `locales/` e il filtro `t`. Gli errori che trovo più spesso nei temi modificati sono altri: canonical assente, title scritto a mano uguale per tutte le pagine, description senza `escape`, o un secondo `<title>` aggiunto da un’app.

## Un solo H1 per pagina

L’H1 è il titolo principale della pagina. Non è una regola rigida per Google, ma un H1 chiaro e unico aiuta chi legge, chi usa un lettore di schermo e chi deve capire di cosa parla la pagina. Nei temi però succede di tutto.

- in Dawn il logo è un H1 solo nella home; nella pagina prodotto l’H1 è il nome del prodotto, in `sections/main-product.liquid`;
- in alcuni temi il logo è un H1 in tutte le pagine, e la pagina prodotto finisce con due H1;
- molte sezioni banner permettono di scegliere la dimensione del titolo, e qualcuno sceglie H1 per farlo più grande;
- alcune pagine collezione non hanno nessun H1, perché il titolo è nascosto dalle impostazioni.

Per controllare apri la pagina, visualizza il sorgente e cerca `<h1>`. Se ne trovi più di uno, la correzione è quasi sempre nel file della sezione: cambi il tag in `<h2>` o in un `<p>` con la classe di stile, senza cambiare l’aspetto.

## Dati strutturati dei prodotti

I dati strutturati sono un blocco JSON nascosto che descrive il prodotto a Google: nome, immagine, prezzo, disponibilità. Servono per le schede prodotto arricchite nei risultati di ricerca, descritte nella guida di Google sui [dati strutturati dei prodotti](https://developers.google.com/search/docs/appearance/structured-data/product).

### Il filtro structured\_data

Shopify ha un filtro che li genera da solo, partendo dall’oggetto prodotto. È il metodo che preferisco, perché si aggiorna con prezzi e varianti senza manutenzione:

`sections/main-product.liquid`

```
<script type="application/ld+json">
{{ product | structured_data }}
</script>
```

Secondo la [documentazione del filtro structured\_data](https://shopify.dev/docs/api/liquid/filters/structured_data), il risultato è un `Product` per i prodotti senza varianti e un `ProductGroup` per quelli con varianti. Dawn lo usa già in fondo alla sezione prodotto. Il problema tipico è il doppione: il tema stampa i suoi dati, un’app di recensioni aggiunge i propri, e Google trova due prodotti con informazioni diverse. Ne deve restare uno coerente.

### Quando scriverli a mano

Li scrivo a mano solo su temi vecchi senza il filtro, o quando servono campi che il filtro non dà. Una base minima, corretta per valute con i centesimi come l’euro:

`snippets/dati-prodotto.liquid`

```
{%- assign v = product.selected_or_first_available_variant -%}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"image": {{ product.featured_image | image_url: width: 1200 | prepend: 'https:' | json }},
"description": {{ product.description | strip_html | truncate: 300 | json }},
"sku": {{ v.sku | json }},
"offers": {
"@type": "Offer",
"url": {{ request.origin | append: v.url | json }},
"price": {{ v.price | divided_by: 100.0 | json }},
"priceCurrency": {{ cart.currency.iso_code | json }},
"availability": "https://schema.org/{% if v.available %}InStock{% else %}OutOfStock{% endif %}"
}
}
</script>
```

Il filtro `json` è fondamentale: mette le virgolette e gestisce i caratteri speciali, così un titolo con le virgolette non rompe il JSON. I prezzi sono in centesimi, quindi divido per `100.0`. E una regola che vale sempre: i dati devono corrispondere a quello che il cliente vede nella pagina. Dopo ogni modifica provo la pagina con lo strumento di test dei risultati multimediali di Google e controllo i rapporti in Search Console.

## Collezioni, filtri e contenuti duplicati

### URL dei prodotti dentro le collezioni

Lo stesso prodotto può avere due indirizzi: `/products/sneaker-bianca` e `/collections/scarpe/products/sneaker-bianca`. Il secondo nasce quando il tema crea i link con il filtro `within`, che la documentazione stessa invita a usare pensando alle conseguenze SEO. Shopify mette nel canonical l’indirizzo `/products/…`, quindi non è un disastro, ma Google deve comunque scansionare più indirizzi per la stessa pagina.

Nei temi recenti, come Dawn, le schede prodotto delle collezioni puntano direttamente a `/products/…`. Se nel tuo tema trovi `| within: collection` nello snippet della scheda prodotto, valuta di toglierlo: i link interni puliti sono un vantaggio semplice da ottenere.

### robots.txt.liquid

Il robots.txt predefinito è già ragionevole. Se ti serve una regola in più, crei il template `templates/robots.txt.liquid` partendo dal codice della guida ufficiale su come [personalizzare robots.txt](https://shopify.dev/docs/storefronts/themes/seo/robots-txt), che mantiene le regole di Shopify e ne aggiunge altre:

`templates/robots.txt.liquid`

```
{% for group in robots.default_groups %}
{{- group.user_agent }}

{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}

{%- if group.user_agent.value == '*' -%}
{{ 'Disallow: /*?q=*' }}
{%- endif -%}

{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
```

Prima di pubblicare salvo una copia del robots.txt attuale e la confronto con il nuovo, come consiglia Shopify. E ricordo sempre la differenza: robots.txt impedisce la scansione, non l’indicizzazione. Per le pagine filtrate Google suggerisce `noindex` o il blocco nel robots.txt a seconda dell’obiettivo, e per le pagine della paginazione un canonical proprio per ogni pagina, come spiega la guida di Google su [paginazione e caricamento progressivo](https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading). Shopify lo fa già: la pagina 2 di una collezione ha come canonical sé stessa.

## Immagini e testo alternativo

Il testo alternativo si scrive nell’admin, su ogni immagine del prodotto. Il tema deve solo usarlo: il filtro `image_tag` mette da solo nell’attributo `alt` il testo dell’immagine, e imposta il caricamento differito per le immagini più in basso nella pagina, come indica la pagina del [filtro image\_tag](https://shopify.dev/docs/api/liquid/filters/image_tag).

```
{{ product.featured_image | image_url: width: 1200 | image_tag: sizes: '(min-width: 990px) 50vw, 100vw' }}
```

Il problema che trovo più spesso è il contrario: temi o sezioni personalizzate con `alt=""` scritto a mano, o con il nome del file. Cerca `alt=` negli snippet delle schede prodotto e della galleria. Su come scrivere un buon testo alternativo e alleggerire le immagini c’è la guida su [come ottimizzare le immagini per la SEO](https://salvatorepitone.it/come-ottimizzare-le-immagini-del-tuo-sito-web-per-la-seo/). Se vuoi mostrare informazioni tecniche del prodotto come testo vero e non dentro le foto, i [metafield di Shopify](https://salvatorepitone.it/metafield-metaobject-shopify/) sono la strada giusta.

## Checklist SEO del tema

Questa è la lista che uso quando controllo il tema di un negozio. Ogni voce si verifica in pochi minuti con il sorgente della pagina e Search Console:

![Checklist della SEO tecnica di un tema Shopify: canonical, title, description, H1, dati strutturati, link, robots.txt, alt e paginazione](https://salvatorepitone.it/wp-content/uploads/2026/10/seo-tecnica-shopify-liquid-checklist.webp)

_I controlli SEO che faccio sul codice di ogni tema Shopify._

- canonical presente in `theme.liquid`, con `canonical_url`;
- un solo `<title>`, con numero di pagina sulle pagine successive;
- meta description da `page_description`, con `escape`;
- un H1 per pagina: prodotto, collezione, pagina, articolo;
- dati strutturati del prodotto presenti una volta sola e coerenti con la pagina;
- link delle schede prodotto verso `/products/…`;
- robots.txt predefinito, o personalizzato con `robots.default_groups`;
- testo alternativo stampato da `image_tag`, mai `alt=""` sulle foto prodotto;
- paginazione con link veri, non solo “carica altri” in JavaScript.

Per leggere i dati e vedere l’effetto delle correzioni ti serve Search Console: se non l’hai ancora collegata, segui la guida su [come collegare Google Search Console e leggere i dati SEO](https://salvatorepitone.it/come-collegare-google-search-console-al-tuo-sito-e-leggere-i-dati-seo/). Per tutto quello che non è codice del tema c’è la [checklist completa per ottimizzare un sito già online](https://salvatorepitone.it/come-ottimizzare-un-sito-gia-online-checklist-completa-per-il-2026/). Se vuoi capire meglio i file che hai appena visto, parti dalla [guida pratica a Liquid](https://salvatorepitone.it/liquid-shopify-guida/).

## Domande frequenti

### Shopify è buono per la SEO?

Sì, la base tecnica è solida: sitemap, robots.txt, canonical, HTTPS e hreflang sono gestiti dalla piattaforma. I limiti sono pochi e noti, come la struttura fissa degli URL con /products/, /collections/ e /pages/. Il resto dipende dal tema, che deve stampare bene titoli e dati strutturati, e soprattutto dai contenuti delle pagine.

### Posso modificare il robots.txt su Shopify?

Sì, creando il template robots.txt.liquid nella cartella templates del tema. Conviene partire dal codice della documentazione Shopify, che mantiene le regole predefinite e aggiunge le tue. È una modifica delicata: un errore può bloccare la scansione di parti importanti del negozio, quindi va confrontata con la versione attuale prima di pubblicare.

### Perché gli URL hanno /collections/ davanti?

Perché il tema crea i link ai prodotti dentro il contesto della collezione, con il filtro within. Shopify indica comunque nel canonical l’indirizzo /products/, quindi Google sa qual è quello principale. Nei temi recenti le schede prodotto puntano già a /products/; nei temi più vecchi basta togliere within dallo snippet della scheda.

### Servono app SEO su Shopify?

Per la parte tecnica di solito no: quello che serve è già nella piattaforma o si sistema nel tema. Un’app può essere utile per lavori in blocco, come scrivere molte meta description o importare tanti redirect. Attenzione alle app che aggiungono dati strutturati: se il tema li ha già, crei un doppione con informazioni diverse.

## Conclusione

La SEO tecnica di Shopify è più semplice che su altre piattaforme, perché molte cose sono già fatte. Proprio per questo gli errori che restano sono quasi sempre nel tema: titoli, H1, dati strutturati doppi, link alle collezioni, testi alternativi. Si trovano in poco tempo e si correggono con poche righe.

Se il negozio è nuovo o va migrato, la SEO del tema la imposto dall’inizio nella [realizzazione e migrazione Shopify](https://salvatorepitone.it/realizzazione-e-migrazione-shopify/); per i controlli periodici c’è l’[assistenza e manutenzione del negozio online](https://salvatorepitone.it/assistenza-e-manutenzione-negozio-online/).

Vuoi un controllo SEO del tema del tuo negozio? [**Mandami il link**](https://salvatorepitone.it/contatti/): te lo faccio io, con l’elenco delle correzioni. Ti rispondo io.
