Ecco i nostri suggerimenti per ottimizzare ulteriormente le performance della nostra Cookie Solution:
body
, non nell’head
head
safe.js
e safe-tcf-v2.js
hanno un impatto sul punteggio di PageSpeed. Idealmente, dovresti usarli solo se puoi scrivere codice lato server (vedi il nostro esempio php):
safe.js
solo quando esiste il cookie _iub_cs_xxx
safe-tcf-v2.js
solo quando esiste il cookie euconsent-v2
inlineDelay
(intero, millisecondi, default 500) puoi ridurre il tempo totale di attivazione. Tieni presente che inlineDelay
funziona solo con il blocco “-inline”, quindi si limita esclusivamente a quel tipo di snippet. Il suo valore predefinito è 500, sconsigliamo un valore inferiore a 300. Privacy Controls and Cookie Solutionn è configurata per evitare l’esecuzione in caso di spider o bot – il suo uso non comporta quindi alcun effetto negativo lato SEO.
In aggiunta ai suggerimenti di cui sopra, volendo puoi usare una specifica versione di Privacy Controls and Cookie Solution. Per farlo, nello snippet di integrazione, al posto di:
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
Dovrai usare:
<script type="text/javascript" src="//cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js" charset="UTF-8" async></script>
Il valore “1.30.3” va sostituito col numero relativo alla versione da utilizzare. Le versioni disponibili sono quelle rilasciate a partire dalla versione 1.29.0 in poi (consulta il changelog per una lista di tutte le versioni rilasciate. Per usare una versione precedente la 1.29.0, leggi qui).
Se scegli di bloccare Privacy Controls and Cookie Solution di iubenda a una specifica versione, ti consigliamo di aggiornarla manualmente con una certa regolarità, così da beneficiare dei nostri aggiornamenti periodici.
A differenza del link di base alla nostra risorsa (//cdn.iubenda.com/cs/iubenda_cs.js), il link //cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js ha una configurazione di cache molto estesa, in quanto punta ad una versione specifica che non necessiterà di modifiche nel tempo.
Più in dettaglio, applicando la modifica sopra descritta al codice di Privacy Controls and Cookie Solution, il js a sua volta caricherà un nuovo file contenente la versione desiderata.
Si tratta di una best practice – adottata anche da Google per il caricamento di Google Analytics – dettata dall’esigenza di garantire il miglior compromesso fra possibilità di aggiornamento di Privacy Controls and Cookie Solution e velocità di caricamento/caching.
Il file js in oggetto ha una cache breve di pochi byte, che a sua volta richiama la vera e propria Privacy Controls and Cookie Solution, il cui file ha invece una cache molto estesa.
Se l’analisi effettuata da Google PageSpeed ti ha mostrato questo suggerimento, allora sei nel posto giusto per risolvere il tuo problema:
Sfrutta il caching del browser: se viene impostata una data di scadenza o un’età massima nelle intestazioni HTTP per le risorse statiche, il browser carica le risorse precedentemente scaricate dal disco locale invece che dalla rete.
Per le versioni precedenti la 1.29.0 (ma successive la 1.3.11), per bypassare iubenda_cs.js bisogna recuperare l’hash della versione desiderata. In questo modo puoi:
Nel caso della versione “1.23.2” ad esempio, visitando la pagina https://cdn.iubenda.com/cs/versions/iubenda_cs-1.23.2.js avremo e.src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js"
, di fatto l’URL del file con l’hash della versione desiderata.
Ecco quindi che nel tuo snippet di integrazione di Privacy Controls and Cookie Solution anziché:
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
Userai:
<script>
_iub.csConfigLegacy = !1;
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" charset="UTF-8" async></script>
Se poi hai abilitato il supporto al Transparency and Consent Framework (TCF) per la gestione delle preferenze pubblicitarie e vuoi sfruttare al meglio la cache, dovresti recuperare il valore di _iub.GVL2
da https://cdn.iubenda.com/cs/iubenda_cs.js e aggiungerlo al tuo script.
Ecco che, continuando l’esempio precedente, al posto di:
<script src="//cdn.iubenda.com/cs/iubenda_cs.js" async></script>
Avrai:
<script>
_iub.csConfigLegacy = !1, _iub.GVL2 = _iub.GVL2 || 54;
</script>
<script src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" async></script>
Tieni però presente che dovrai aggiornare il valore di _iub.GVL2
su base settimanale (così che corrisponda a quello contenuto in https://cdn.iubenda.com/cs/iubenda_cs.js), essendo la Global Vendor List aggiornata periodicamente. Ecco perché, nel caso del TCF, anziché il caricamento di una versione specifica ti consigliamo di sfruttare l’attivatore inline e di non bloccare direttamente gli script dei vendor.
È inoltre possibile includere direttamente in pagina (inline) la parte di codice che si occupa dell’attivazione degli script; definiamo questo codice attivatore inline. Tramite l’attivatore inline gli script potranno essere attivati anche nel caso in cui la risorsa principale iubenda_cs.js risulti essere genericamente non disponibile o in errore.
safe.js
è disponibile ai seguenti indirizzi:
safe-tcf-v2.js
è disponibile ai seguenti indirizzi:
Per maggiori informazioni leggi Come configurare Privacy Controls and Cookie Solution (guida avanzata).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Preload resources beforehand -->
<link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
<!-- The ID (e.g. 12345) should be the same as cookiePolicyId -->
<link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/12345.js" as="script">
<!-- other stuff in head tag -->
</head>
<body>
<script>
var _iub = _iub || [];
_iub.csConfiguration = {
"lang": "en",
"siteId": 67890, //use your siteId
"cookiePolicyId": 12345, //use your cookiePolicyId
"enableTcf": true,
"inlineDelay": 300, //default value: 500
// ...
};
</script>
<!-- inline activator - safe.js (optional) -->
<script type="text/javascript">
//<![CDATA[
//copy content from cdn.iubenda.com/cs/safe.js (current channel) and paste here
//]]>
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>
</html>
<?php
$cookie_policy_id = 12345; //use your cookiePolicyId
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Preload resources beforehand -->
<link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
<link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/<?php echo $cookie_policy_id; ?>.js" as="script">
<!-- other stuff in head tag -->
</head>
<body>
<script>
var _iub = _iub || [];
_iub.csConfiguration = {
"lang": "en",
"siteId": 67890, //use your siteId
"cookiePolicyId": <?php echo $cookie_policy_id; ?>,
"inlineDelay": 300, //default value: 500
// ...
};
</script>
<!-- Only include safe.js if the consent cookie is found -->
<?php if (isset($_COOKIE["_iub_cs-{$cookie_policy_id}"])) { ?>
<script>
/* inline safe.js */
</script>
<?php } ?>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Preload resources beforehand -->
<link rel="preload" href="//cdn.iubenda.com/cs/tcf/stub-v2.js" as="script">
<link rel="preload" href="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js" as="script">
<link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
<!-- The ID (e.g. 12345) should be the same as cookiePolicyId -->
<link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/12345.js" as="script">
<!-- other stuff in head tag -->
</head>
<body>
<script>
var _iub = _iub || [];
_iub.csConfiguration = {
"lang": "en",
"siteId": 67890, //use your siteId
"cookiePolicyId": 12345, //use your cookiePolicyId
"enableTcf": true,
"inlineDelay": 300, //default value: 500
// ...
};
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script>
<!-- inline activator - safe.js -->
<script type="text/javascript">
//<![CDATA[
//copy content from cdn.iubenda.com/cs/safe.js (current channel) and paste here
//]]>
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>
</html>
<?php
$cookie_policy_id = 12345; //use your cookiePolicyId
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Preload resources beforehand -->
<link rel="preload" href="//cdn.iubenda.com/cs/tcf/stub-v2.js" as="script">
<!-- Only preload safe-tcf-v2.js if the euconsent-v2 cookie is found -->
<?php if (isset($_COOKIE['euconsent-v2'])) { ?>
<link rel="preload" href="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js" as="script">
<?php } ?>
<link rel="preload" href="//cdn.iubenda.com/cs/iubenda_cs.js" as="script">
<link rel="preload" href="//www.iubenda.com/cookie-solution/confs/js/<?php echo $cookie_policy_id; ?>.js" as="script">
<!-- other stuff in head tag -->
</head>
<body>
<script>
var _iub = _iub || [];
_iub.csConfiguration = {
"lang": "en",
"siteId": 67890, //use your siteId
"cookiePolicyId": <?php echo $cookie_policy_id; ?>,
"enableTcf": true,
"inlineDelay": 300, //default value: 500
// ...
};
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script>
<!-- Only include safe-tcf-v2.js if the TCF cookie euconsent-v2 is found -->
<?php if (isset($_COOKIE['euconsent-v2'])) { ?>
<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script>
<?php } ?>
<!-- Only include safe.js if the consent cookie is found -->
<?php if (isset($_COOKIE["_iub_cs-{$cookie_policy_id}"])) { ?>
<script>
/* inline safe.js */
</script>
<?php } ?>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
</body>
</html>