Avete effettuato un test delle performance del vostro sito su Google PageSpeed Insight e vi è stato restituito l’avviso Serve Static Content From a Cookieless Domain? In questo articolo vi spiegherò cos’è questo errore, perché compare e come risolverlo in modo efficace.
Prima di iniziare, tuttavia, è necessario chiarire cos’è un dominio cookieless.
Indice
Cos’è un dominio cookieless (o cookie-free)?
Un dominio cookieless o cookie-free è un dominio web privo di cookie; “cookie-less” può essere tradotto in italiano come “senza cookie”.
Se il server imposta un cookie per un determinato dominio, tutte le successive richieste HTTP per quel dominio dovranno includere il cookie. In un dominio cookieless, viceversa, non transitano cookie tra il server ed il client.
Un dominio si dice quindi cookieless quando il server non trasmette alcun cookie all’interno delle intestazioni HTTP presenti nelle risposte verso i client e questi ultimi, di conseguenza, non (ri)trasmettono il cookie nei successivi scambi.
Qual è il vantaggio di un dominio cookieless?
Un dominio privo di cookie consente un dialogo “più leggero” con il client, in quanto non vi è trasmissione di cookie, a tutto vantaggio delle performance. La velocità di caricamento delle pagine è un fattore cruciale per il SEO e per l’esperienza utente.
Ovviamente i cookie non possono essere eliminati del tutto (inutile spendere parole sulla loro importanza), ma in determinati contesti disporre di un dominio cookie-free può rivelarsi utile, specialmente per l’erogazione di contenuti statici.
Questo è quanto ci ricordano diversi speed-test per siti web con messaggi del tipo:
- “use cookie-free domains” (“utilizza domini senza cookie”);
- “serve the following static resources from a domain that doesn’t set cookies” (“fornire le seguenti risorse statiche da un dominio che non utilizza i cookie”);
- “serve static content from a cookieless domain” (“servire contenuti statici da un dominio senza cookie”).
Risorse statiche e domini senza cookie
Certain types of resources available online do not require cookies. These are the so-called static resources, meaning files that do not change based on interaction with the client but remain constant. Examples of static resources include images (such as JPG or PNG files), CSS stylesheets, JavaScript files, documents (PDF, DOC, etc.), and multimedia files (MP3, MP4, WAV, etc.).
Tutti questi contenuti non necessitano di cookie per svolgere i loro compiti, quindi la modalità ottimale per distribuirli in rete è attraverso un dominio cookieless. Così facendo, l’accesso a queste risorse sarà più veloce e verranno risparmiati numerosi dati inutilmente scambiati tra server e client.
Come risolvere il problema?
Abbiamo detto che le risorse statiche dovrebbero essere fornite tramite un dominio senza cookie. Ma come possiamo fare – in concreto – a risolvere il problema?
Le soluzioni sono due:
- Utilizzo di una CDN: per ottimizzare il content delivery, potrebbe essere una buona idea far ricorso a una CDN (Content Delivery Network) come KeyCDN. Questi particolari provider forniscono strumenti idonei alla distribuzione delle risorse statiche su scala globale, adottando, tra le altre cose, la rimozione dei cookie inutili.
- Creazione di un dominio cookieless: se non vogliamo sostenere il costo di una CDN, possiamo creare da soli il nostro dominio senza cookie. Vediamo di seguito come procedere, avendo a disposizione i normali strumenti forniti dai tradizionali hosting provider.
Creare un dominio senza cookie
Per creare un dominio cookieless, possiamo decidere di registrare un nuovo nome oppure optare per un dominio di terzo livello. Quest’ultima possibilità appare la più logica e pratica.
La prima cosa da fare sarà accedere al DNS del nostro dominio e creare un terzo livello (ad esempio “static.miosito.it”). La procedura per la creazione di un dominio di terzo livello cambia da provider a provider, ma solitamente si tratta di un processo molto semplice che, una volta concluso, creerà una nuova cartella all’interno dello spazio web associato al dominio principale.
All’interno di questa cartella inseriamo un semplice file .htaccess avente il seguente contenuto:
Header unset Set-Cookie
Header unset Cookie
In pratica, mediante il file .htaccess, abbiamo rimosso dalle intestazioni (Header) le direttive Set-Cookie e Cookie, precludendo, pertanto, l’invio di cookie al client.
Per essere più precisi:
- Set-Cookie è l’intestazione HTTP con la quale il server invia i cookie al client (quest’ultimo li reinvierà al server in ogni successiva comunicazione);
- Cookie è l’intestazione HTTP che contiene tutti i cookie HTTP memorizzati, precedentemente inviati dal server tramite l’intestazione Set-Cookie.
Rimuovendo queste due direttive, la comunicazione server-client sarà, quindi, priva di cookie!
Non resta che trasferire tutte le risorse statiche del sito su questo nuovo dominio e, di conseguenza, modificare i link originali puntandoli sulla nuova destinazione dei file.
Dopo aver concluso le modifiche, proviamo nuovamente ad effettuare il test delle performance del sito su Google PageSpeed Insight: se abbiamo svolto correttamente i vari passaggi descritti, il tool non dovrebbe più restituirci il messaggio in oggetto.