(venerdì 16 marzo)
A livello di programmazione una “Query” non è altro che una “ricerca”; sto facendo una richiesta di codice ad una sorgente dati (la più classica è ad un database con istruzioni SQL).
Mediante una Query String URL dei parametri inseriti nell’URL con lo scopo di filtrare o estrapolare determinati valori o semplicemente passare dei dati in più, necessari per raggiungere poi la “risorsa”.

In informatica una query–string o stringa di ricerca è la parte di un URL che contiene dei dati da passare in input ad un programma, nella fattispecie il destinatario è l’indirizzo di un server con specificato il percorso al suo interno per arrivare alla directory nella quale è localizzata la risorsa che si intende raggiungere. Al termine di tale indirizzo, il segno di “?” il quale la delimita dalla parte contenente i parametri url nella loro strutturazione (“nomeparametro”, “=”, “valoreparametro”, “&” – separatore -, “nomeparametro”, “=”, “valoreparametro”, …).
In particolare, dopo la parte iniziale che possiamo chiamare “url di base”, nella parte a destra la query string include due campi: il parametro ed il suo valore. Questi campi vengono aggiunti all’ URL di base, ad esempio quando si invia un form compilato oppure applicando un filtro ad un listato di prodotti all’interno di un sito eCommerce.
Così, ogniqualvolta l’utente inoltra una richiesta da un terminale mediante un costrutto http (vedi sintassi completa URL), il web server può derivare un file system (u f.s. può essere pensato come una indicizzazione vettoriale mediante cui si arriva direttamente alla localizzazione della risorsa da raggiungere), dettato dal percorso dell’URL, oppure può gestire la richiesta utilizzando una query string (parametro), in forza della parte terminale dell’URL.
La sintassi del parametro URL pur non essendo sintatticamente definita, si può tuttavia standardizzare (perché implementata in tutti i browser e nei linguaggi di scripting) con il seguente schema:
?colore=verde
L’URL completo è composto dai seguenti elementi:
[protocollo (HTTP/HTTPS)] + [(sotto)dominio ((www.)esempio.com)] + [URL path (/scarpe)] + [parametro (&colore=verde)]
Si possono concatenare più parametri con l’utilizzo del carattere “&”.
?colore=verde&ordinamento=prezzo
Perché vanno gestiti i parametri url per una corretta SEO
La gestione dei parametri URL assume un’importanza strategica in ottica SEO.
Poggiando sull’univocità di un indirizzo URL e riprendendo la nozione di indirizzo canonico, infatti, se consideriamo due indirizzi “simili” mediante cui vengono raggiunte due pagine identiche, il motore di ricerca sarebbe portato ad indicizzarle entrambe, con scadenza di risultato. L’indirizzo http://www.esempio.com/scarpe è diverso da http://www.esempio.com/scarpe?colore=verde : Googlebot, navigando il sito e trovando link su entrambi gli URL, potrebbe decidere di indicizzare tutte e due le pagine. Il risultato non sarebbe buono dato che avremmo due pagine identiche indicizzate.
Attraverso i parametri così definiti è possibile effettuare diverse funzioni all’interno del sito (database) di riferimento. Per una buona SEO è importante gestire i parametri per migliorare indicizzazione e crawl budget ed evitare in questo modo che i motori di ricerca indicizzino pagine errate e duplicate. Il crawl budget verrà dedicato alla scansione di pagine canoniche (e utili).
Funzioni tipiche dei parametri URL
Come anticipato, i parametri IUR vengono utilizzati per diverse finalità dagli operatori.
Vediamo nel dettaglio tutte le possibili funzioni che può avere una query string, quale deve essere indicizzato e quale escluso.
Ordinare
Una delle funzioni più comuni per un parametro è l’ordinamento dei risultati in una pagina di listing, come ad esempio quando si vogliono ordinare i prodotti per prezzo.
URL: http://www.esempio.com/scarpe?ordina=prezzo
Canonical: http://www.esempio.com/scarpe
Considerazioni: l’obiettivo è non intasare il database di Google con pagine uguali, che non aggiungono alcun valore a quanto già indicizzato.
Una categoria di un sito eCommerce, con o senza i prodotti ordinati per prezzo, contiene sempre gli stessi elementi. Non avrebbe senso far indicizzare la pagina con il parametro, dato che risulterebbe una pagina duplicata. Per questo motivo i parametri di ordinamento solitamente non si fanno indicizzare, quindi vanno esclusi dalla tag rel canonical.
Circoscrivere
I parametri si possono usare per circoscrivere i risultati, ad esempio per una specifica categoria o caratteristica.
URL: http://www.esempio.com/scarpe?brand=nike
Canonical: http://www.esempio.com/scarpe?brand=nike
Considerazioni: i parametri che circoscrivono sono molto importanti, in diversi casi si preferisce usare una struttura URL a cartelle invece del parametro. Nel caso in cui questo tipo di URL crei contenuti utili e ricercati dagli utenti, conviene farli indicizzare.
URL con parametro che circoscrive si fanno indicizzare quando la pagina filtrata che si genera corrisponde a ricerche frequenti online, ad esempio “scarpe nike”. Per assicurare che la pagina venga indicizzata, la tag rel canonical deve includere il parametro nell’URL.
Specificare
Un altro utilizzo comune per i parametri è specificare un elemento da visualizzare, che può essere una scheda prodotto, un articolo del blog, una categoria, un profilo utente o qualsiasi altra cosa.
URL: http://www.esempio.com/scarpe?id=123
Canonical: http://www.esempio.com/scarpe?id=123
Considerazioni: i parametri che specificano generalmente vengono fatti indicizzare dato che definiscono univocamente un elemento. Verifica che title tag e meta description siano unici per ogni valore di id.
Tradurre
Per questa funzione l’utilizzo de i parametri URL rappresenta una alternativa a i ccTLD dedicati oppure un gTLD con un sistema di URL a cartelle per gestire un sito multi lingua. Qual’è il metodo migliore di gestire questi parametri di traduzione per la SEO?
URL: http://www.esempio.com/scarpe?lang=it
Canonical: http://www.esempio.com/scarpe?lang=it
Considerazioni: i parametri di traduzione devono essere indicizzati se vuoi far indicizzare il sito multi-lingua. La tag rel canonical deve includere il parametro di traduzione e la stessa logica deve essere rispettata nella tag alternate hreflang.
Numerare le pagine
I parametri possono venire usati anche per gestire la paginazione di un archivio.
URL: http://www.esempio.com/scarpe?page=3
Canonical: http://www.esempio.com/scarpe?page=3
Considerazioni: i parametri di paginazione devono essere indicizzati altrimenti i motori di ricerca si perderebbero tutte le pagine dell’archivio. La tag rel canonical deve includere il parametro e occorre implementare anche la tag rel next e rel prev per una corretta indicizzazione e posizionamento dell’archivio.
Tracciare le visite
I parametri vengono spesso usati per tracciare le visite in piattaforme di web analytics, ad esempio quando si condivide un contenuto sui social, per email oppure in campagne PPC.
URL: http://www.esempio.com/scarpe?utm_source=ppc
Canonical: http://www.esempio.com/scarpe
Considerazioni: i parametri di tracciamento, come quelli generati con Campaign URL Builder di Google, non modificano il contenuto visto dall’utente, pertanto questi URL parametrizzati non dovrebbero essere indicizzati dai motori di ricerca.
Parametri multipli
In alcuni casi possono essere attivi due o più parametri contemporaneamente. Il webmaster deve decidere, come visto sopra, quali parametri mantenere nella tag rel canonical, quali escludere, ed in questo caso anche l’ordine di priorità dei parametri – ovvero l’ordine con cui vanno appesi all’URL.
URL: http://www.esempio.com/scarpe?brand=nike&page=2&utm_source=ppc
Canonical: http://www.esempio.com/scarpe?brand=nike&page=2
.
Come si gestiscono parametri
Il miglior metodo per gestire i parametri è implementare correttamente la tag rel canonical. Esistono peraltro altri metodi per trattare i parametri.
Rel canonical
Rel canonical è una tag che si posiziona nella sezione <head> dell’HTML. Questa tag definisce l’URL univoco di riferimento, l’URL che i motori di ricerca devono usare in fase di indicizzazione e posizionamento della risorsa
Quando Googlebot incontra un URL come questo http://www.esempio.com/scarpe?utm_source=ppc e scansionandolo legge una tag rel canonical http://www.esempio.com/scarpe assegnerà all’URL canonico l’indicizzazione ed il posizionamento. Il parametro non presente nella tag rel canonical non verrà indicizzato ma comunque scansionato dai bot.
La tag rel canonical è accettata da tutti i motori di ricerca.
Google Search Console
Google Search Console ha una sezione dedicata alla gestione dei parametri in “Scansione > Parametri URL”. Con questo strumento è possibile istruire Googlebot, spiegandogli la funzione di ciascun parametro che ha incontrato durante la scansione del sito web. Per istruire Googlebot clicca su “modifica” a lato di ciascun parametro individuato e spuntare le voci a seconda che il parametro in considerazione sia da attivare o meno.
Rel nofollow
La tag rel nofollow applicata ad un link interno chiede ai motori di ricerca di non seguire quel link e non passare PageRank, di conseguenza l’URL di destinazione verrà ignorato e non verrà scansionato. Attenzione se l’URL è linkato da altre parti ‘nofollow’ allora quell’url verrà scansionato ed indicizzato.
Disallow robots.txt
La direttiva Disallow del robots.txt chiede agli spider dei motori di ricerca di non scansionare la cartella oppure l’URL definito. Il Disallow non preclude l’indicizzazione ma impatta solo sulla scansione.