En vivo · estado OK
OW Consent · v1.4.3 · GPL-2.0-or-later

El consentimiento en WordPress
que bloquea antes del clic.

OW Consent neutraliza los rastreadores dentro del HTML antes de que el visitante elija, aplica el régimen legal de su jurisdicción e inscribe cada decisión en un registro encadenado que puedes verificar. Once perfiles de cumplimiento, nueve regímenes con nombre propio — del RGPD a la CCPA. Gratis, GPL, sin versión Pro.

v1.4.3GPL-2.0-or-laterWordPress 6.2+PHP 7.4+
Por qué

¿Por qué otro plugin de consentimiento?

El banner nunca fue el problema. Casi todas las webs tienen uno, y los rastreadores salen igual con el primer byte: el script de Analytics va escrito a pelo en el tema, el píxel publicitario se ejecuta desde el pie de página, el iframe de YouTube deja sus cookies mientras el banner se muestra por encima. El clic en «Aceptar todo» ya no autoriza nada: ratifica lo que ya ha ocurrido.

La segunda trampa es la caché. En cuanto un plugin decide el HTML leyendo la cookie del visitante, se vuelve incompatible con una caché de página — o peor, sirve las decisiones de un visitante a otro. La tercera es la prueba: el artículo 7.1 exige poder demostrar el consentimiento, y una casilla marcada en algún rincón de la base de datos no demuestra absolutamente nada.

OW Consent parte de esas tres restricciones. El marcado servido es idéntico para todo el mundo, rastreadores neutralizados incluidos, y es el navegador el que libera lo que el visitante ha concedido. Cada decisión se añade a una cadena de hash firmada. Y el régimen aplicado — opt-in u opt-out, enlace «Do Not Sell», señal GPC vinculante o no — sigue a la jurisdicción, no a una casilla por defecto.

Un banner que llega después de los rastreadores

En modo estricto, activado por defecto, el documento se reescribe en la salida: scripts neutralizados como text/plain, iframes conmutados a about:blank tras un recuadro en el que hay que hacer clic, píxeles sustituidos por un GIF transparente, pistas de conexión eliminadas. El visitante que nunca hace clic nunca carga esos recursos.

La caché de página contra el consentimiento

Nada en la ruta de renderizado lee la cookie. El estado del visitante se reconstruye en el navegador y se estampa en la etiqueta html antes del primer pintado. LiteSpeed, WP Rocket, Varnish o un CDN pueden cachear la página sin mezclar jamás a dos visitantes.

Una prueba que no se puede aportar

Cada evento se suma a una tabla encadenada, cada fila firmada con HMAC junto al hash de la anterior, y el ancla de cabecera se guarda fuera de la tabla. Y si el registro se niega a escribir, la API responde 503, anula la cookie y no libera ningún rastreador: un consentimiento que la web no sabe demostrar es un consentimiento que no reclama.

Bajo el capó

Lo que cambia concretamente

Sin eslóganes. Estas son las decisiones técnicas que distinguen este producto.

Los rastreadores se bloquean en el marcado

En modo estricto —activado por defecto— el documento completo se captura en la salida y se reescribe en cinco pasadas: los scripts pasan a type text/plain con su URL guardada en data-owc-src, los iframes pasan a about:blank tras un recuadro «Aceptar» con el nombre del proveedor, los píxeles de medición se sustituyen por un GIF transparente de 1×1, los preconnect y dns-prefetch se eliminan (una simple pista ya abre una conexión TLS y entrega la IP), y los medios de terceros ya catalogados pierden su autoplay. El catálogo incluido reúne 175 firmas para 71 proveedores, y puedes añadir, corregir o eliminar reglas desde la administración. Por defecto, un script de terceros desconocido pasa; un iframe desconocido se bloquea.

Pensado para funcionar detrás de una caché de página

Nada de lo que el servidor renderiza depende de la cookie del visitante: las mismas etiquetas neutralizadas se sirven a todo el mundo, y el runtime las restaura en el navegador, en el orden del documento, solo para las categorías concedidas. El estado se estampa en la etiqueta html antes del primer pintado, así que el banner no parpadea. El token de escritura se pide fresco antes de cada envío y nunca viaja incrustado en HTML cacheado: obtenerlo tiene un tope de 4 segundos y su ausencia jamás bloquea una decisión.

Once perfiles de cumplimiento, nueve regímenes con nombre propio

RGPD, UK PECR, nLPD suiza, Ley 25 de Quebec, LGPD, CCPA, POPIA, PIPL, DPDP india, más un perfil australiano y un perfil estadounidense genérico. El perfil no es decorativo: decide el modelo legal (opt-in, o concedido hasta el rechazo para la CCPA, el perfil estadounidense genérico y Australia), la presencia del enlace «Do Not Sell or Share» —un clic ejecuta realmente la exclusión, no abre un panel—, el carácter vinculante o no de la señal Global Privacy Control, y tanto el idioma como la autoridad de control citados en los documentos generados. La detección por país existe, desactivada por defecto.

Un registro de consentimiento que puedes verificar

Cada aceptación, rechazo, modificación o retirada se suma a una tabla dedicada: fila firmada con HMAC-SHA-256 (o SHA3-256) junto al hash de la anterior, y ancla de cabecera guardada fuera de la tabla para que un truncamiento se note. Se inscriben un token de navegador seudónimo, la IP truncada, una huella del user-agent, la página, el perfil vigente, la revisión exacta del banner mostrado y la huella de las políticas enlazadas — nunca un nombre ni una dirección. Un botón verifica toda la cadena y señala dónde se rompe; la exportación CSV o JSON lleva un sobre que permite a un tercero volver a verificar un extracto. Retención por defecto: 5 años.

Escáner del sitio y catálogo editable

Se entrega desactivado, para activarlo cuando quieras: el escáner recorre tus propias páginas con WP-Cron (25 URL por defecto, ajustable hasta 500) entrelazando portada, páginas, entradas, tipos de contenido y taxonomías. Tres fuentes distintas y trazadas: el HTML servido, las cabeceras Set-Cookie —las únicas cookies que un escaneo de servidor puede demostrar, y las únicas que nada puede bloquear— y una sonda en página reservada a los administradores conectados, que atrapa lo que un gestor de etiquetas inyecta en tiempo de ejecución. Un hallazgo se convierte en regla del catálogo con un clic. Y el informe dice lo que no ha podido leer en lugar de hacer pasar un barrido parcial por un inventario.

Documentos legales y portal de solicitudes

Cuatro documentos generados como páginas de WordPress versionadas —política de cookies, política de privacidad, aviso legal, condiciones generales— en el idioma de la jurisdicción (francés, inglés, portugués), con la autoridad de control y la tabla de rastreadores salida del escaneo. La publicación se rechaza mientras haya un campo legalmente obligatorio vacío, y cada documento lleva una advertencia que recuerda que hay que hacerlo revisar. Del lado de los derechos, el shortcode owc_dsar_form abre siete tipos de solicitud, verificadas mediante un ida y vuelta por email; el plazo del artículo 12.3 arranca en la confirmación de identidad, y la solicitud abre en paralelo una solicitud nativa de WordPress para que la exportación o el borrado cubran todos los plugins del sitio.

Comparación

Frente a las alternativas

Datos verificables. Marcar solo lo que existe realmente en la competencia.

CriterioOW ConsentComplianzCookieYesBorlabs Cookie
Modelo de negocioGratis, GPL-2.0-or-laterFreemium (Pro de pago)Freemium (Pro de pago)No anunciado
Clave de licencia que activarNingunaPara la versión ProPara la versión ProNo anunciado
Método de bloqueo de rastreadoresReescritura del HTML en el servidor, 175 firmas incluidas y editablesNo anunciadoNo anunciadoNo anunciado
Registro de pruebas encadenado y verificableCadena HMAC-SHA-256, ancla fuera de la tabla, verificación con un clicNo anunciadoNo anunciadoNo anunciado
Perfiles de cumplimiento incluidos11 perfiles, 9 regímenes con nombre propioNo anunciadoNo anunciadoNo anunciado
Banner de consentimiento configurable4 posiciones, tema claro / oscuro / automático
Portal de solicitudes de ejercicio de derechosIncluido: formulario, verificación por email, plazo del art. 12.3No anunciadoNo anunciadoNo anunciado
Dónde viven los consentimientos registradosEn la base de datos de tu alojamiento, sin servicios de tercerosNo anunciadoNo anunciadoNo anunciado
Integración

Tres formas de integrar un formulario

Sin page builder propietario impuesto. Elige el enfoque que encaja con tu stack.

<!-- Lo que imprime tu tema -->
<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>

<!-- Lo que recibe el visitante antes de todo consentimiento (modo estricto, por defecto) -->
<script type="text/plain"
        data-owc-cat="analytics"
        data-owc-vendor="Google"
        data-owc-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>

<span class="owc-embed-placeholder" data-owc-cat="social" data-owc-vendor="Google">
  <span class="owc-embed-text">Google content blocked: this content uses cookies…</span>
  <button type="button" class="owc-embed-accept" data-owc-cat="social">Accept Google</button>
  <iframe data-owc-cat="social"
          data-owc-src="https://www.youtube.com/embed/VIDEO_ID"
          src="about:blank"></iframe>
</span>

<!-- Este marcado es el mismo para todo el mundo, caché de página incluida.
     Es el runtime, en el navegador, el que restaura las etiquetas de las
     categorías concedidas, en el orden del documento. Retirar el
     consentimiento recarga la página: un script ya ejecutado no se descarga. -->
Preguntas técnicas

Dudas razonables, respuestas directas

¿Los rastreadores se bloquean de verdad antes del consentimiento?

Sí, y el bloqueo vive en el marcado, no en una promesa. En modo estricto, activado por defecto, el documento se captura en la salida y cinco pasadas reescriben scripts, iframes, píxeles, pistas de conexión y medios de terceros. Dos límites que debes conocer: el bloqueo real se apoya en el catálogo de 175 firmas y en las firmas de código en línea —un script de terceros desconocido se permite por defecto, un iframe desconocido se bloquea—, y si desactivas el modo estricto solo se tratan los scripts registrados por WordPress, no los escritos a pelo en el tema. Por último, un documento de más de 8 MB o un fallo del motor de expresiones regulares se sirve intacto en lugar de roto.

¿Es compatible con mi caché de página?

Sí, es la restricción de partida. El HTML servido es idéntico para todos los visitantes, rastreadores neutralizados incluidos, y el estado de consentimiento se reconstruye en el navegador a partir de la cookie y se aplica antes del primer pintado. Así que ninguna caché puede servir las decisiones de un visitante a otro. La contrapartida es explícita: el régimen del visitante se decide en el cliente, de modo que sin JavaScript no se registra nada. Un visitante sin JavaScript ve un bloque noscript, no carga nada que no sea imprescindible y nunca queda encerrado tras una ventana que no puede cerrar.

¿Qué cambia en la práctica el perfil de cumplimiento?

Decide el modelo legal: opt-in para el RGPD, el UK PECR, la nLPD suiza, la Ley 25, la LGPD, POPIA, PIPL y DPDP; concedido hasta el rechazo para la CCPA, el perfil estadounidense genérico y Australia. También decide si se muestra el enlace «Do Not Sell or Share» (solo CCPA y perfil estadounidense genérico), el carácter vinculante de la señal GPC (esos mismos dos perfiles: en los demás la señal se refleja en pantalla pero no se registra nada), y tanto el idioma como la autoridad de control de los documentos generados. La detección por país es opcional y viene desactivada; falla en cerrado, es decir, hacia el régimen más estricto. Dos límites asumidos: no hay granularidad por estado de EE. UU. ni por provincia canadiense, y el archivo de MaxMind ni se descarga ni se puede subir desde el plugin — lo depositas tú mismo en uploads/ow-geoip/.

¿El registro demuestra realmente algo?

Demuestra tanto como la clave que lo firma, y el plugin te lo dice sin rodeos. Cada fila se firma con HMAC junto al hash de la anterior y el ancla de cabecera se guarda fuera de la tabla, de modo que una modificación, un truncamiento o un vaciado se ven en la verificación. Pero si AUTH_KEY y AUTH_SALT no están en tu wp-config.php y no has definido OWC_LEDGER_KEY, la clave sale de la base de datos: cualquiera con acceso a la base puede volver a firmar la cadena. En ese caso el plugin muestra un aviso en la administración e informa él mismo de que la cadena ya no está a prueba de manipulación, en vez de seguir afirmándolo.

¿El módulo IAB TCF convierte mi sitio en una CMP certificada?

No, y conviene decirlo antes que después. El módulo implementa TCF v2.2 en el navegador —API __tcfapi, cadena TC codificada, cookie euconsent-v2— pero no proporciona un CMP ID: ese identificador lo asigna IAB Europe tras el registro, y sin él el módulo no emite absolutamente nada. El alcance también está acotado: solo el segmento Core, ninguna publisher restriction emitida, dos funcionalidades especiales admitidas, sin ámbito global. En resumen, funciona como una CMP compatible no oficial, lo que basta para muchas integraciones pero no sustituye a un registro oficial — Google AdSense, en concreto, lo rechaza en producción dentro del EEE. El módulo viene desactivado.

¿Qué pasa si desactivo o si elimino el plugin?

Desactivarlo no toca ningún dato: se limita a retirar las tareas programadas. Al eliminarlo, dos cosas se van siempre, sea cual sea tu ajuste: las tareas programadas y la tabla de solicitudes de ejercicio de derechos, la única que contiene datos directamente identificativos de terceros que nada acota una vez el plugin ha desaparecido. El resto —registro de consentimiento, hallazgos del escáner, catálogo de rastreadores— sobrevive, salvo que hayas marcado explícitamente el borrado completo, desmarcado por defecto: tu prueba de consentimiento del artículo 7.1 no debe irse con una desinstalación.

Gratis. Sin asteriscos.

Sin versión Pro, sin clave de licencia.

OW Consent se publica bajo licencia GPL-2.0-or-later. Todo lo que describe esta página está en el .zip que descargas: ningún módulo reservado, ninguna suscripción, ningún límite de páginas, de consentimientos o de solicitudes.

  • Está todo incluido: banner, bloqueo de rastreadores, escáner, catálogo editable, registro encadenado, generador de documentos, portal de solicitudes, Consent Mode v2, TCF v2.2 y Global Privacy Control.
  • El .zip se descarga en optionweb.dev: instálalo desde Plugins → Añadir nuevo → Subir plugin. WordPress 6.2 como mínimo — por debajo, el plugin se niega a arrancar y lo dice, en lugar de mostrar un banner que no bloquea nada.
  • Ningún servicio de terceros, ninguna comprobación de licencia, ningún rastreador añadido: consentimientos, solicitudes y documentos se quedan en la base de datos de tu alojamiento.
  • El código está bajo GPL-2.0-or-later, legible y modificable, con sus puntos de extensión documentados: filtros owc_settings, owc_scripts_catalog, owc_blocker_allowlist, owc_policy_template, y las acciones del registro.
Creado por Julien Daniel · Châtelet, Bélgica