Canonical per i filtri

Il canonical per i filtri è una strategia per gestire il contenuto duplicato nelle pagine di elenco filtrate. Le combinazioni popolari (con domanda di ricerca) usano un canonical autoreferenziale; quelle impopolari puntano alla pagina della categoria padre. Si risparmia crawl budget e si evitano penalizzazioni per contenuto duplicato.

Cos'è il canonical per i filtri

Negli e-commerce e nelle directory i filtri generano un numero enorme di URL con contenuti identici o parzialmente modificati. Per esempio, la categoria «Scarpe» può avere filtri per brand, taglia, colore, prezzo. Le combinazioni di parametri possono creare centinaia di migliaia di varianti di pagina. Il problema: i bot sprecano crawl budget su tutti questi duplicati, mentre gli utenti visitano raramente le combinazioni impopolari. La soluzione è impostare dinamicamente il canonical in base alla domanda per la combinazione.

Strategia decisionale

Dividi tutte le combinazioni di filtri in tre categorie:

  • Domanda alta: combinazioni con query di ricerca regolari (per esempio «scarpe Nike»). Imposta un canonical autoreferenziale.
  • Domanda media: combinazioni cercate a volte ma non spesso. Possono mantenere il self-canonical, ma monitora il crawl budget.
  • Domanda bassa o zero: combinazioni che nessuno cerca. Imposta il canonical verso la categoria padre (senza filtri).
txt
Example decision table for the /shoes/ category:

URL                                                    Demand     Canonical
/shoes/                                                High       self
/shoes/?brand=nike                                     High       self
/shoes/?brand=nike&color=red                           Medium     self
/shoes/?brand=nike&color=red&size=42                   Low        /shoes/
/shoes/?brand=nike&color=red&size=42&sort=price_asc    Low        /shoes/

Implementazione tecnica

Devi determinare lato server se l'attuale combinazione di filtri è popolare. Il modo più semplice è mantenere una whitelist di combinazioni nel codice o in un database.

php
<?php
// Example PHP logic
$popularCombinations = [
    'brand=nike',
    'brand=adidas',
    'color=black',
    'brand=nike&color=black'
];

$currentFilters = http_build_query($_GET); // 'brand=nike&color=red&size=42'

if (in_array($currentFilters, $popularCombinations)) {
    $canonical = 'https://example.com/shoes/?' . $currentFilters;
} else {
    $canonical = 'https://example.com/shoes/';
}
?>

<link rel="canonical" href="<?= htmlspecialchars($canonical) ?>" />

Un approccio più avanzato usa i dati di Google Search Console e Analytics. Le combinazioni che portano clic e impression mantengono il self-canonical; le altre puntano alla pagina di categoria.

Approcci alternativi

  • Filtri JavaScript senza cambio di URL: il filtraggio avviene lato client e l'URL resta lo stesso. Nessun problema di duplicati, ma non puoi indicizzare le combinazioni popolari come pagine separate.
  • noindex per le combinazioni impopolari: blocca l'indicizzazione via meta robots. Svantaggio: perdita di valore dei link.
  • nofollow sui link dei filtri: dice ai bot di non seguire i link verso combinazioni impopolari (con rel="nofollow"). Non sempre efficace, perché i bot possono comunque trovarle.
Best practice: combina il canonical per i filtri con la paginazione (rel="prev/next") e link interni impostati bene. Aggiorna anche la sitemap includendo solo le pagine popolari di categoria e filtro.

FAQ

Devo proprio permettere l'indicizzazione delle pagine filtro?
Sì, se quelle combinazioni hanno domanda di ricerca (per esempio «scarpe Nike»). Indicizzarle può portare traffico extra. Le pagine impopolari vanno canonicalizzate o noindexate.
Come determino la domanda per una combinazione di filtri?
Usa Yandex Wordstat, Google Keyword Planner, Ahrefs o i dati di GSC. Guarda la frequenza delle query in combinazione con la categoria. Per esempio, quasi nessuno cerca «compra scarpe Nike rosse taglia 42», quindi quella pagina è inutile.
Canonicalizzare i filtri può causare perdita di traffico?
No, se identifichi correttamente le combinazioni popolari: per loro il canonical resta autoreferenziale. Le pagine impopolari comunque non riceverebbero traffico, e il canonical aiuta a concentrare il valore sulla categoria principale.
È meglio il canonical o noindex per le pagine indesiderate?
Il canonical è preferibile se vuoi consolidare il valore dei link sulla pagina principale. noindex rimuove semplicemente la pagina dall'indice ma non consolida il valore.
Quanto spesso aggiornare l'elenco delle combinazioni popolari?
Almeno una volta al mese, analizzando le query di ricerca e il comportamento degli utenti. L'elenco può cambiare con stagioni, promozioni e tendenze.