WordPress

Plugin de código, tema hijo o encolado, y plugins de caché.

En WordPress hay tres formas de instalar la etiqueta. Elige según quién mantiene el sitio.

Opción 1 — plugin de código (recomendada)

Con WPCode, Insert Headers and Footers o equivalente:

  1. Plugins → añadir nuevo → instala y activa el plugin.
  2. Abre su pantalla de ajustes y busca el campo Header / <head>.
  3. Pega:
<script
  src="https://cdn.growthlab.ecomlabs.dev/sdk/v1/bootstrap.js"
  data-site-id="site_TU_ID_PUBLICO"
  async
></script>
  1. Guarda.

Es la opción recomendada porque sobrevive a las actualizaciones del tema, que es donde se pierde la mayoría de las instalaciones hechas a mano.

Opción 2 — tema hijo

Si prefieres no añadir un plugin, usa un tema hijo y añade en su functions.php:

add_action('wp_head', function () {
    ?>
    <script
      src="https://cdn.growthlab.ecomlabs.dev/sdk/v1/bootstrap.js"
      data-site-id="site_TU_ID_PUBLICO"
      async
    ></script>
    <?php
}, 1);

La prioridad 1 coloca la etiqueta lo más arriba posible del <head>, que es lo que reduce el parpadeo.

No edites el functions.php del tema principal. La siguiente actualización lo sobrescribe y la instalación desaparece sin aviso.

Opción 3 — encolado correcto

La forma canónica en WordPress, si controlas el tema:

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_script(
        'growthlab',
        'https://cdn.growthlab.ecomlabs.dev/sdk/v1/bootstrap.js',
        [],
        null,
        false // en el head, no en el footer
    );
});

add_filter('script_loader_tag', function ($tag, $handle) {
    if ($handle !== 'growthlab') {
        return $tag;
    }
    return str_replace(
        '<script ',
        '<script async data-site-id="site_TU_ID_PUBLICO" ',
        $tag
    );
}, 10, 2);

El filtro es necesario porque wp_enqueue_script no permite atributos personalizados, y data-site-id es obligatorio: sin él el SDK no sabe a qué sitio pertenece y no envía nada.

Plugins de caché

WP Rocket, LiteSpeed Cache, W3 Total Cache y similares suelen ofrecer «combinar» o «diferir» JavaScript. Excluye la etiqueta de Growth Lab de ambas cosas:

En WP Rocket: File Optimization → Excluded JavaScript files → añade cdn.growthlab.ecomlabs.dev.

Consentimiento

Si usas un plugin de consentimiento (Complianz, CookieYes, Borlabs), configura la etiqueta como categoría analítica y llama al SDK cuando el visitante decida:

<script>
  window.GrowthLab?.setConsent({ analytics: true, replay: false });
</script>

Consulta Consentimiento para el comportamiento exacto con y sin permiso.