Query string e parametri URL sono elementi molto diffusi nella struttura degli indirizzi dei siti Web; in genere, si ritiene che siano amati dagli sviluppatori e da chi studia i dati degli strumenti di analytics, mentre invece creano più problemi sul versante user experience, perché infinite combinazioni possono creare migliaia di varianti di URL a partire dallo stesso contenuto.

In effetti, parliamo di aspetti centrali nel più ampio discorso sugli URL di un sito e sulle modalità di gestire questi aspetti in modo efficace per la SEO, che possono creare qualche difficoltà se non trattati in modo adeguato, ma che svolgono un ruolo importante nella gestione del sito: insomma, andiamo a scoprire cosa sono i parametri URL e le query string, perché sono utili e quali sono le accortezze da adottare per usarli in modo SEO-friendly.

Cosa sono i parametri URL

Noti anche come variabili URL o query string, i parametri sono la parte di un URL che contiene i dati da passare in input a un programma, che non possono adattarsi a una struttura gerarchica di percorsi e che sono generati sulla base delle richieste dell’utente.

Dal punto di vista tecnico, sono la porzione dell’indirizzo che segue l’URL di base il punto interrogativo ? (che propriamente è l’ultimo elemento escluso dalla query string) e include due campi, il parametro stesso e il suo valore.

Rispetto al format dell’URL, e vista la natura variabile delle stringhe, la sintassi del parametro non è definita in modo formale, univoco e preciso, ma segue uno schema adottato da tutti i browser e linguaggi di scripting, con il carattere = (uguale) che introduce il valore e il carattere & (e commerciale) che svolge la funzione di concatenare parametri diversi nello stesso indirizzo.

Esempi di query string più usate

Queste variabili dell’indirizzo sono aggiunte a URL di base e portano a una visualizzazione personalizzata della pagina; si generano ad esempio quando si compila un form compilato o, in modo molto comune, quando applichiamo un filtro a un elenco di prodotti su un eCommerce.

Tra i parametri più usati sui siti ci sono quelli che servono per:

  • Tracciare le visite. Non modificano il contenuto visualizzato dall’utente ma servono appunto per monitorare e tenere traccia delle visite e le informazioni sui clic in piattaforme di web analytics (a seguito di condivisione dei contenuti su social, via email o campagne PPC). Il consiglio base è di escludere l’indicizzazione di questi URL parametrizzati dai motori di ricerca e di non includere il canonical su questi indirizzi.
  • Ordinare. Forse l’utilizzo più noto, che serve a organizzare l’ordinamento dei risultati di un elenco, come nel caso del filtro del prezzo. Come nel caso precedente, sarebbe conveniente non far indicizzare le pagine con tale parametro, che in pratica contiene gli stessi elementi degli URL non parametrizzati, ed escluderle dal tag rel canonical.
  • Filtrare. Servono a circoscrivere i risultati sulla base di una caratteristica, come il colore di un prodotto, il brand o l’anno di pubblicazione degli articoli. Sono una stringa molto importante su cui bisogna ragionare, monitorandone gli effetti: se dà vita a contenuti utili e ricercati può essere consigliabile consentire l’indicizzazione delle pagine generate e anche la canonicalizzazione. In questo caso, sarà necessario anche ottimizzare titolo, meta description e contenuto onpage. Al contrario, se dal filtro nascono pagine che offrono solo contenuti duplicati e senza reale valore aggiunto in termini di ricerche è opportuno non indicizzare e non prevedere canonical.
  • Identificazione. Con le query string si possono specificare precisamente gli elementi da visualizzare, come articoli, categorie, profili utenti o schede prodotto: in genere si fanno indicizzare questi URL perché definiscono univocamente un elemento, curando anche l’ottimizzazione dei contenuti così generati (title tag e meta description innanzitutto). Se però ci sono degli URL friendly alternativi si può valutare l’opzione di non indicizzare le pagine parametrizzate.
  • Paginazione. I parametri URL possono essere impiegati per numerare le pagine e gestire la paginazione di un archivio; per non perdere le relative pagine, questi URL devono essere lasciati liberi e aperti per i crawler.
  • Traduzione. Altro caso frequente è l’uso delle query string per le versioni multilingua dei siti (alternativa ai metodi gTLD con un sistema di URL a cartelle o ccTLD dedicati), che genera quindi pagine alternative con traduzione del contenuto in un’altra lingua.
  • Ricerca. Sono gli URL che si generano dalle query digitate attraverso il comando “cerca” del sito.

Come gestire in modo SEO friendly i parametri URL

Come si comprende dallo specchietto precedente, il primo problema per la SEO che deriva dall’uso dei parametri URL è quello dei contenuti duplicati, che si verifica quando le query string non apportano modifiche significative al contenuto di una pagina. Ad esempio, un URL con tag di tracking o un ID sessione è identico all’originale.

Primo rischio, la cannibalizzazione delle keyword

Chiaramente, tale criticità assume portata preoccupante per siti di grandi dimensioni che ripetono l’uso dei parametri per vari tipi di filtri e funzioni, motivo per il quale è fondamentale gestire in modo appropriato l’indicizzazione e la canonicalizzazione delle risorse generate. In caso contrario, si rischia facilmente di andare incontro alla cannibalizzazione delle keyword e a un peggioramento delle valutazioni di Google sulla qualità complessiva del sito, perché i nuovi URL non aggiungono alcun valore reale all’utente.

Spreco di crawl budget

Dal punto di vista tecnico, poi, la scansione di pagine di parametri ridondanti fa consumare crawl budget verso risorse non strategiche, riducendo quindi la capacità del sito di sottoporre ai crawler come Googlebot pagine pertinenti e rilevanti e aumentando nello stesso tempo il carico del server.

Inoltre, le variazioni identiche o similari dello stesso contenuto della pagina potrebbe rendere disponibili versioni differenti anche di link e condivisioni social: il crawler, in questo caso, potrebbe avere incertezze sulle pagine corrette da indicizzare per la query di ricerca e il pagerank della pagina si diluisce in modo improduttivo.

Indirizzo meno user friendly

Come dicevamo in un precedente approfondimento, l’URL ha anche un valore per l’user experience e tra le best practices SEO si consiglia di usare indirizzi brevi e semplici: i parametri URL creano invece stringhe lunghe, difficili da leggere e, spesso, apparentemente sospette e meno convincenti per un clic da email, social media e così via. Caratteristiche che possono influire negativamente sul CTR del sito e sulle prestazioni della pagina e che, alla lunga, possono contribuire a ridurre il brand engagement.

Parametri URL, consigli per gestire in modo SEO friendly le query string

Abbiamo quindi visto cosa sono le query string e quali rischi comporta una loro gestione non efficace sui siti, e quindi è il momento di scoprire quali sono le best pratices per non avere problemi. Ci sono (almeno) sei strade per cercare di migliorare i parametri URL e renderli più SEO friendly, continuando così a sfruttare i vantaggi di filtri e stringhe senza intoppi per usabilità, crawl budget e ottimizzazione SEO.

Eliminare i parametri URL non necessari

Limitare i parametri URL non necessari: il percorso più semplice è individuare come e perché vengono generati i parametri e capire quali sono quelli che offrono un valore a utenti e sito e quali, invece, si rivelano inutili se non dannosi per la SEO.

Possiamo quindi eliminare le query string non necessarie (filtri usati raramente dagli utenti, parametri che non svolgono funzioni utili, tracciamento che può essere reso in modo più agevole dai cookies), evitare che si realizzino valori vuoti, fare attenzione a non applicare più parametri con stesso nome e valore differente, curare l’ordinamento di questi elementi.

Usare il rel canonical per dare gerarchia alle pagine

Sull’uso del rel canonical ci siamo già soffermati, e quindi possiamo aggiungere solo che questo intervento ha dei vantaggi (come la semplicità di implementazione, la garanzia elevata di evitare problemi di duplicazione dei contenuti e la possibilità di consolidare i segnali di ranking sull’URL preferito), ma anche degli aspetti negativi. Anche con il canonical, infatti, si può sprecare crawl budget sulle pagine dei parametri, e a volte Google potrebbe non usare l’indicazione (ne parlavamo qualche tempo fa); inoltre, non è applicabile a tutti i tipi di parametri.

Impostare direttive Noindex nei Meta Robots

Il terzo tipo di intervento riguarda i meta robots e la possibilità di bloccare l’indicizzazione della ricerca con un tag “noindex”, che come sappiamo è il metodo consigliato da Google per questo obiettivo, che ha ufficialmente pensionato il noindex nel file robots.txt!).

Possiamo così impostare una direttiva noindex per ogni pagina basata su parametri che non aggiunga valore SEO, evitando quindi che possa essere inserita nell’indice del motore di ricerca; inoltre, c’è anche la probabilità che gli URL con un tag “noindex” siano sottoposti a scansione meno frequentemente e, nel lungo periodo, Google potrebbe decidere in autonomia di mettere in nofollow i link della pagina.

Il vantaggio di questa soluzione sta nella sua semplicità e nella sua efficacia nel prevenire la duplicazione dei contenuti; inoltre, è applicabile a tutti i tipi di parametri URL che vogliamo escludere dall’Indice e consente anche di rimuovere le pagine già indicizzate da Google. Allo stesso tempo, però, la direttiva Noindex nei Meta Robots è vista dal motore di ricerca come un forte hint, ma non un obbligo e non evita che Googlebot e gli altri crawler scansionino le pagine, assicurando solo che lo facciano meno frequentemente; ovviamente, poi, non si consolidano i segnali di ranking forniti dal sito.

Utilizzare il Disallow nel file Robots.txt

Un’altra strada possibile è quella di utilizzare la direttiva Disallow nel file robots.txt, che rappresenta il primo elemento che i search engine cercano sul sito prima della scansione: trovando questa specifica, si tengono alla larga dalle pagine. In questo modo è possibile bloccare l’accesso dei crawler a qualsiasi pagina con parametro URL oppure specificare singolarmente le query string che non vogliamo far indicizzare.

Anche in questo caso parliamo di una implementazione tecnica semplice, dagli effetti positivi immediati e adatta a ogni tipo di paramentro: con il disallow si genera una gestione più efficiente del crawl budget e si evitano contenuti duplicati. I punti a sfavore sono invece l’impossibilità di consolidare segnali per il posizionamento e, soprattutto, di rimuovere gli URL esistenti dall’Indice.

Scegliere solo URL statici

L’ultima soluzione è molto drastica e richiede tempo: si tratta di convertire tutti i parametri URL in URL statici riscrivendo gli indirizzi server-side e utilizzando i redirect 301. D’altra parte, secondo molti il modo migliore di gestire le query string è evitarle del tutto, anche perché i subfolder aiutano Google a comprendere la struttura del sito e gli URL statici basati su keyword sono stati una pietra miliare della SEO on page.

Un approccio con vantaggi e limiti

Questo approccio funziona bene con parametri descrittivi basati su parole chiave, come quelli che identificano categorie, prodotti o filtri per gli attributi rilevanti per i motori di ricerca, ed è efficace anche per i contenuti tradotti. Tuttavia, diventa problematico per gli elementi in cui la parole chiave non è rilevante, come il prezzo, dove avere un filtro come un URL statico e indicizzabile non offre alcun valore SEO. Inoltre, è ostico anche per i parametri di ricerca, poiché ogni query generata dall’utente creerebbe una pagina statica che può degenerare in cannibalizzazione rispetto alla canonica, o ancora presentare ai crawler pagine di contenuto di bassa qualità ogni volta che un utente cerca un articolo non presente.

Questa strada non funziona molto neppure con il tracking (Google Analytics non riconoscerà una versione statica del parametro UTM), e soprattutto sostituire i parametri dinamici con URL statici per cose come l’impaginazione, i risultati della casella di ricerca onsite o l’ordinamento non risolvono il contenuto duplicato, il crawl budget o la diluizione della link juice.

Arrivando al punto, per molti siti Web non è possibile né consigliabile eliminare del tutto i parametri se l’obiettivo è fornire una user experience ottimale, né sarebbe la migliore pratica SEO. Quindi, un compromesso potrebbe essere implementare query string per i parametri che non devono essere indicizzati nella Ricerca di Google, e usare invece URL statici per i parametri più rilevanti.

Specchietto con vantaggi e svantaggi delle soluzioni SEO per i parametri URL

Non c’è una sola soluzione perfetta per gestire i parametri URL

Già da quanto scritto dovrebbe esser chiaro che non esiste una soluzione perfetta per gestire i parametri URL in modo efficace per la user experience e per la SEO, perché tutto dipende dalle valutazioni legate al sito: in certi casi potrebbe essere più importante ottimizzare il crawl budget rispetto al consolidamento dei segnali di ranking, mentre in altri le priorità sono opposte.

Ottimizzazione SEO delle query string, il percorso

In linea di massima, un percorso standard di ottimizzazione SEO friendly delle query string potrebbe essere il seguente, proposto da Jes Scholz su Search Engine Journal (da cui abbiamo attinto anche l’immagine consuntiva su pro e contro di tutte le soluzioni descritte):

  1. Lanciare una keyword research per capire quali parametri dovrebbero essere URL statici e potenzialmente posizionabili sui motori di ricerca.
  2. Implementare la corretta gestione della paginazione con Rel=prev/next.
  3. Per tutti gli altri Url con parametri, implementare regole di ordinamento coerenti, che utilizzano le chiavi una sola volta e impediscono valori vuoti per limitare il numero di URL.
  4. Aggiungere un canonical alle pagine dei parametri che possono avere possibilità di classificazione.
  5. Configurare la gestione dei parametri URL sia in Google che in Bing come salvaguardia per aiutare i motori di ricerca a comprendere la funzione di ciascun parametro.
  6. Controllare che non vengano inviati URL basati su parametri nella Sitemap.