Iubenda logo
Genera tus documentos

Documentación

Tabla de contenidos

Caché, velocidad y otras optimizaciones de la Cookie Solution de iubenda

Estos son nuestros consejos sobre cómo optimizar aún más el rendimiento de nuestra Cookie Solution:

  1. Incluye los scripts de la Cookie Solution directamente en el HTML del documento, no utilices un tag manager ni ningún otro script
  2. Si has habilitado la opción TCF, deberías incluir la Cookie Solution en el body, no en el head
  3. Precarga los archivos js lo antes posible en el head
  4. La Cookie Solution se debe integrar después de al menos una etiqueta de texto o imagen para evitar influir en First Contentful Paint. Sin embargo, ten en cuenta que, si has habilitado la opción TCF, cuanto más abajo coloques los scripts de la Cookie Solution, más tarde se activarán los anuncios.
  5. safe.js y safe-tcf-v2.js afectan la puntuación de PageSpeed. Idealmente, deberías usarlos solo si puedes escribir código en el lado del servidor (mira nuestro ejemplo php):
    • incluye safe.js solo cuando exista la cookie _iub_cs_xxx
    • incluye safe-tcf-v2.js solo cuando exista la cookie euconsent-v2
  6. Disminuye el valor de inlineDelay (entero, milisegundos, default 500) para reducir el tiempo total de activación. Ten en cuenta que inlineDelay solo funciona con el bloque “-inline”, por lo que está limitado solo a ese tipo de fragmento de código. No recomendamos un valor inferior a 300.

La Cookie Solution está configurada para evitar que se ejecute cuando detectamos arañas o bots; por lo tanto, su uso no genera ningún efecto negativo al posicionamiento SEO.

Carga directa

Además de las sugerencias anteriores, si quieres, puedes utilizar una versión específica de la Cookie Solution de iubenda. Para hacerlo, en tu fragmento de código, en lugar de:

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Tendrás:

<script type="text/javascript" src="//cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js" charset="UTF-8" async></script>

El valor “1.30.3” se debe reemplazar por el número de la versión que se va a utilizar. Las versiones disponibles son las publicadas desde la versión 1.29.0 en adelante (consulta la lista de cambios de todas las versiones publicadas de la Cookie Solution. Para utilizar una versión anterior a la 1.29.0, lee aquí).

A diferencia del enlace predeterminado (//cdn.iubenda.com/cs/iubenda_cs.js), el enlace //cdn.iubenda.com/cs/versions/iubenda_cs-1.30.3.js tiene una configuración de caché muy extensa, ya que apunta a una versión específica que no requiere modificaciones futuras.

Si optas por bloquear la Cookie Solution de iubenda en una versión específica, te recomendamos que la actualices manualmente de forma periódica para que puedas seguir beneficiándote de nuestras actualizaciones.

Al aplicar la modificación descrita anteriormente a la Cookie Solution, el recurso js cargará un nuevo archivo que contiene la versión deseada.

Es una práctica recomendada, también adoptada por Google para la carga de Google Analytics, dictada por la necesidad de garantizar el mejor compromiso entre la posibilidad de actualizar la Cookie Solution y la velocidad de carga/almacenamiento en caché.

El archivo js es de hecho un archivo con una caché breve de pocos bytes, que a su vez llama a la Cookie Solution real, cuya caché es mucho más extensa.

Carga directa para versiones anteriores a 1.29.0

Si el análisis realizado por Google PageSpeed ​​te ha mostrado esta sugerencia, podemos ayudarte a resolver el problema:

Aprovecha el almacenamiento en caché del navegador: si se establece una fecha de vencimiento o una edad máxima en los encabezados HTTP para los recursos estáticos, el navegador cargará los recursos descargados previamente desde el disco local en lugar que desde la red.

Para las versiones anteriores a la 1.29.0 (pero posteriores a la 1.3.11), para omitir iubenda_cs.js, tienes que recuperar el hash de la versión deseada. De esta forma puedes:

  • Eliminar un paso intermedio, con una ganancia, en realidad muy pequeña, en términos de velocidad de carga (unas milésimas de segundo)
  • Acceder a una versión del archivo con una caché muy larga

Por ejemplo, en el caso de la versión “1.23.2” visitando la página https://cdn.iubenda.com/cs/versions/iubenda_cs-1.23.2.js tendremos e.src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" que es, efectivamente, la URL del archivo con el hash de la versión deseada.

Por lo tanto, en el fragmento de código de tu Cookie Solution, en lugar de:

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Tendrás:

<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>

Marco de Transparencia y Consentimiento de IAB

Si has habilitado la compatibilidad con el Marco de Transparencia y Consentimiento (TCF) de IAB para la gestión de preferencias de seguimiento publicitario y deseas aprovechar al máximo la caché, tienes que recuperar el valor de _iub.GVL2 de https://cdn.iubenda.com/cs/iubenda_cs.js y agregarlo a tu script.

Entonces, continuando con el ejemplo anterior, en lugar de:

<script src="//cdn.iubenda.com/cs/iubenda_cs.js" async></script>

Tendrás:

<script>
  _iub.csConfigLegacy = !1, _iub.GVL2 = _iub.GVL2 || 54;
</script>
<script src="//cdn.iubenda.com/cookie_solution/iubenda_cs/core-03369fd53df171f29d94bfed207eedaa.js" async></script>

Sin embargo, ten en cuenta que deberás actualizar el valor de _iub.GVL2 semanalmente (para que coincida con el incluido en https://cdn.iubenda.com/cs/iubenda_cs.js), ya que la Lista Global de Proveedores se actualiza periódicamente.

Por este motivo, desaconsejamos la carga directa para el TCF. En cambio, recomendamos usar el activador inline y no bloquear directamente los scripts del proveedor (revisa nuestros ejemplos).

Inclusión directa del activador en la página

Es posible incluir directamente en la página (inline) la parte del código que se ocupa de la activación de los scripts. Este código se conoce como activador inline. Con el activador inline, los scripts se pueden activar incluso si el recurso principal iubenda_cs.js no está disponible genéricamente o tiene un error.

El activador inline para safe.js está disponible en:

El activador inline para safe-tcf-v2.js está disponible en:

Para obtener más información y ejemplos de código, consulta Cómo configurar tu Cookie Solution (Guía avanzada).

Ejemplos de optimización

Sin TCF

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/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

<?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>

Con TCF habilitado

HTML – TCF y activador inline

<!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 – TCF y activador inline

<?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>

Más información