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:
- Plugins → añadir nuevo → instala y activa el plugin.
- Abre su pantalla de ajustes y busca el campo Header /
<head>. - Pega:
<script
src="https://cdn.growthlab.ecomlabs.dev/sdk/v1/bootstrap.js"
data-site-id="site_TU_ID_PUBLICO"
async
></script>
- 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.phpdel 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:
- Combinarla la mueve a un archivo servido desde tu dominio, y el atributo
data-site-idse pierde en el proceso. - Diferirla la retrasa hasta después del primer render, que es cuando el parpadeo se hace visible.
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.