# Instalar FlowConsent en WordPress

En WordPress, el fragmento de FlowConsent va en Code Snippets → Header & Footer (WPCode) o un tema hijo; luego se vacía la caché y se quita el gtag de Site Kit.

> Canonical: https://www.flowconsent.com/es/doc/install-wordpress
> Last updated: 2026-10-01
En WordPress, el fragmento de código de FlowConsent se pega en el campo **Header** del plugin WPCode (**Code Snippets → Header & Footer**) o, en sitios desarrollados a medida, en el `functions.php` de un tema hijo. La instalación son tres pasos: copiar el fragmento, pegarlo y vaciar la caché. La trampa principal: los plugins de caché o minificación que mueven o retrasan el script, y los plugins de Google como Site Kit, que inyectan su propio `gtag` por encima del banner.

## Antes de empezar

- Una cuenta en [app.flowconsent.com](https://app.flowconsent.com) (plan Free gratuito, sin tarjeta de crédito, hasta 25.000 sesiones al mes).
- Un banner creado y desplegado. En el plan Free, el despliegue se hace a través de la propia cuenta de Cloudflare (ver la [guía de Cloudflare](/es/doc/cloudflare-deployment)); en Pro y Enterprise, con un clic.
- Acceso de administrador a WordPress.

## Paso 1: copiar el fragmento de código

En FlowConsent, abrir **Builder → Despliegue → Integración**, pestaña **HTML / No-code**. El fragmento tiene dos partes, en este orden:

```html title="Fragmento de FlowConsent"
<script>
// FlowConsent Loader - COLOCAR ANTES de cualquier otro script en el <head>
window.dataLayer=window.dataLayer||[];
function gtag(){dataLayer.push(arguments);}
gtag('consent','default',{
  'ad_storage':'denied',
  'analytics_storage':'denied',
  'ad_user_data':'denied',
  'ad_personalization':'denied',
  'wait_for_update':500
});
gtag('set','url_passthrough',true);
gtag('set','ads_data_redaction',true);
</script>
<!-- FlowConsent CMP -->
<script src="https://SU-CODIGO-LICENCIA.consent.flowconsent.com/cookie-manager.js?code=SU_CODIGO_LICENCIA"></script>
```

El primer bloque fija los valores por defecto `denied` de Google Consent Mode v2 y el segundo carga el banner. Ambos deben estar lo más arriba posible en el `<head>`, **antes** de cualquier script de seguimiento (Google Analytics, Meta Pixel, Google Tag Manager…): todo lo que quede por encima escapa al bloqueo previo.

## Paso 2, método recomendado: el plugin WPCode

WPCode (antes «Insert Headers and Footers») cuenta con más de 3 millones de instalaciones activas.

1. Desde el menú **Plugins**, buscar **WPCode**, instalarlo y activarlo.
2. Abrir **Code Snippets → Header & Footer** en el menú lateral.
3. Pegar el fragmento **al principio** del campo **Header**, por encima de cualquier código existente (Google Analytics, GTM, píxeles).
4. Guardar.

> [!TIP]
> Si ya hay una etiqueta de Google o Google Tag Manager en ese campo, debe quedar **debajo** del fragmento de FlowConsent. Para Google Analytics y los píxeles publicitarios, lo más limpio es quitarlos y declararlos en **Builder → Servicios**: así el banner solo los carga tras el consentimiento.

## Paso 2, alternativa: un tema hijo

Para no añadir ningún plugin, se puede usar un [tema hijo](https://developer.wordpress.org/themes/advanced-topics/child-themes/): WordPress desaconseja editar directamente el tema padre, porque la siguiente actualización borraría los cambios. En el `functions.php` del tema hijo, el fragmento se engancha a `wp_head` con prioridad `1`, que se ejecuta antes de que se impriman los scripts encolados por los plugins (prioridad `9`):

```php title="wp-content/themes/su-tema-hijo/functions.php"
<?php
add_action( 'wp_head', function () {
  ?>
  <!-- Pegar aquí el fragmento completo de FlowConsent (los dos bloques) -->
  <?php
}, 1 );
```

Conviene no usar el editor de archivos integrado para este cambio: no guarda copias de seguridad y un error de PHP puede dejar el sitio fuera de servicio. Es preferible SFTP o el gestor de archivos del alojamiento.

## Paso 3: vaciar las cachés

Hay que vaciar la caché del plugin de caché, la del alojamiento y la del CDN; si no, los visitantes siguen recibiendo la versión antigua de las páginas, sin banner.

## Trampas propias de WordPress

> [!WARNING]
> **Caché y minificación.** Opciones como «diferir JavaScript», «retrasar la ejecución de JavaScript» o «combinar archivos JS» (WP Rocket, LiteSpeed Cache, Autoptimize, W3 Total Cache…) pueden mover el fragmento al final de la página o retenerlo hasta la primera interacción. Los scripts de seguimiento se ejecutan entonces antes que el banner. Hay que excluir de estas optimizaciones el stub de Consent Mode (`FlowConsent Loader`) y el dominio `consent.flowconsent.com`.

> [!WARNING]
> **Plugins de Google que inyectan gtag.** Site Kit by Google, como otros plugins de Google Analytics, imprime su propio `gtag` en el `<head>`, a menudo por encima del código de WPCode. Su colocación se desactiva en **Site Kit → Settings → Connected Services → Analytics → Edit**, interruptor **Place Google Analytics code**; después, Google Analytics se declara en **Builder → Servicios**. Site Kit sigue mostrando las estadísticas en el escritorio de WordPress.

Solo debe quedar un banner de cookies activo: cualquier otro plugin de consentimiento debe desactivarse antes de publicar FlowConsent.

## Verificar la instalación

1. Abrir el sitio en una ventana privada: aparece el banner.
2. En la pestaña **Red** de las herramientas de desarrollo, ninguna petición sale hacia Google, Meta u otro tercero antes de hacer clic en **Aceptar**.
3. Ejecutar el **asistente de instalación** (**Builder → Integración**): comprueba la página publicada (loader presente con el código de licencia correcto, stub de Consent Mode presente, stub antes de cada etiqueta de Google). Ver la [guía del asistente](/es/doc/setup-wizard).
4. Terminar con un **escaneo de rechazo** desde la pestaña **Conformidad** ([verificación de conformidad](/es/doc/compliance-verification)).

## Hacerlo desde un agente de IA (MCP)

FlowConsent cuenta con un servidor MCP oficial, `https://mcp.flowconsent.com`, utilizable desde Claude, ChatGPT o cualquier cliente MCP. La conexión se hace por OAuth 2.0 con la cuenta de FlowConsent, sin clave de API. El agente obtiene el fragmento y las instrucciones de colocación (herramientas `get_banner_snippet` y `get_setup_instructions`), verifica la instalación con un escaneo real (`verify_consent_compliance`) y puede programar una vigilancia periódica (`monitor_compliance`). No modifica el sitio WordPress: pegar el fragmento sigue siendo un paso manual.

Ejemplo de petición: «Deme el fragmento de código de mi banner para mi sitio WordPress y compruebe que está bien instalado en https://misitio.es».

Ver la [guía del servidor MCP](/es/doc/mcp-server) y la página [FlowConsent MCP](/es/mcp).

## Preguntas frecuentes

### ¿Se puede cargar FlowConsent a través de Google Tag Manager?

No. Un banner cargado desde GTM llega demasiado tarde para el bloqueo previo. El fragmento va en el `<head>`, por encima del contenedor de GTM: las etiquetas de Google respetan entonces las señales de Consent Mode v2, y las demás etiquetas requieren la «Configuración de consentimiento adicional». Más detalles en la [guía de Consent Mode](/es/doc/google-consent-mode).

### ¿Por qué no aparece el banner después de la instalación?

Casi siempre es la caché: hay que vaciar la del plugin, la del alojamiento y la del CDN, y probar en una ventana privada. Después, conviene comprobar en el código fuente de la página que el fragmento está dentro del `<head>`.

### ¿Hace falta un tema hijo si se usa WPCode?

No, son métodos alternativos. WPCode conserva el fragmento en las actualizaciones del tema; el tema hijo solo tiene sentido si no se quiere un plugin más.

### ¿Funciona con un tema de bloques (Full Site Editing)?

Sí. WPCode y el hook `wp_head` funcionan tanto con temas clásicos como con temas de bloques.
