La regla en pocas palabras
La AEPD actualizó su guía sobre cookies y el mensaje es simple: rechazar debe ser tan fácil como aceptar. Un clic para “Aceptar todas”, un clic para “Rechazar todas”, al mismo nivel, con el mismo peso visual, en la primera pantalla que ve el usuario.
Esa única regla explica casi todos los cambios en banners de cookies de los últimos dos años. Y también explica por qué tantos sitios siguen haciéndolo mal.
Un banner conforme ofrece tres opciones reales en la primera pantalla:
- Aceptar todas las cookies.
- Rechazar todas las cookies.
- Gestionar preferencias (control granular).
Las tres deben estar en la misma zona, parecer botones reales y ser accesibles con una sola acción. Sin trucos, sin menús ocultos, sin “cerrar con la X equivale a aceptar”.
Qué queda descartado
Si tu banner hace alguna de estas cosas, no cumple con los criterios actuales de la AEPD:
- Un botón verde gigante de “ACEPTAR TODO” junto a un enlace de texto diminuto en gris que dice “Gestionar preferencias” o “Más información”.
- Una opción de “Rechazar” que solo aparece tras pulsar “Configurar”, obligando al usuario a pasar varias pantallas para decir que no.
- Casillas pre marcadas para analítica, publicidad o personalización. El estado por defecto de las cookies no esenciales es desactivado.
- Frases tipo “Si continúas navegando aceptas nuestra política de cookies”. Navegar no es consentimiento. Hacer scroll no es consentimiento. Cerrar el banner sin elegir no es consentimiento.
- Banners que reaparecen en cada carga de página hasta que el usuario acepta. Eso es presión, no consentimiento.
- Muros de “Pagar o aceptar” que obligan al usuario a pagar una suscripción o aceptar todo el rastreo. El Comité Europeo de Protección de Datos considera que en la mayoría de casos esto no produce un consentimiento válido, un patrón que analizamos a fondo en los dark patterns de los banners de periódicos.
Si tienes dudas con tu propio banner, ábrelo en una ventana privada e intenta rechazar todo. Cuenta los clics. Si “Rechazar todas” requiere más clics que “Aceptar todas”, tienes un problema.
La regla de simetría visual
La AEPD no especifica tamaños en píxeles, pero el principio es claro: un usuario que mira el banner por primera vez debe ver “Aceptar” y “Rechazar” como opciones equivalentes.
Lista práctica:
- Mismo estilo de botón para aceptar y rechazar. Misma forma, mismo radio de borde, misma altura.
- Misma zona del banner. Ambos visibles sin hacer scroll.
- Peso visual similar. Si aceptar es un botón sólido relleno, rechazar también debe ser un botón sólido relleno. Un aceptar verde sólido junto a un rechazar gris fantasma no es simétrico.
- Mismo nivel de menú. Ambos en la primera pantalla. Rechazar no vive un clic más profundo que aceptar.
- Mismo lenguaje. Si aceptar dice “Aceptar todas”, rechazar debe decir “Rechazar todas”, no “Continuar sin aceptar” u otra frase suavizada para empujar al usuario.
Puedes resaltar tu respuesta preferida con color o contraste, pero la diferencia no puede ser tan grande que una opción parezca la acción y la otra una nota a pie.
Google Consent Mode v2
Si usas Google Analytics, Google Ads o cualquier herramienta del stack de Google, necesitas Consent Mode v2. El principio: cargar la etiqueta en estado denegado por defecto y actualizar solo después de que el usuario acepte.
Define el estado por defecto antes de que cualquier etiqueta de Google se ejecute. Normalmente esto significa en el head, antes de GTM o GA4.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// 1. Estado por defecto: TODO DENEGADO
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'granted'
});
// 2. Cargar GTM/GA4 después de fijar el estado por defecto
Solo cuando el usuario hace clic en “Aceptar” lanzas el update:
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
});
Si el usuario rechaza, no haces nada. El estado denegado por defecto se mantiene y Google recibe pings anónimos (conversiones modeladas) en lugar de un rastreo completo. Mantienes algo de señal analítica sin instalar cookies para las que no tienes consentimiento.
Cosas a verificar en producción:
- La llamada de consentimiento por defecto se ejecuta antes de que cargue cualquier script de Google. Si tu etiqueta dispara primero, ya has puesto cookies y Consent Mode no puede deshacerlo.
- Guardas la decisión del usuario (en una cookie de primera parte o en localStorage) y reproduces el estado correcto en la siguiente visita, para que no vea el banner otra vez.
- El panel de “Gestionar preferencias” actualiza el mismo estado de consentimiento, granular por categoría.
Requisitos de accesibilidad
Un banner de cookies bloquea la página hasta que el usuario interactúa con él. Eso convierte la accesibilidad en obligatoria. Si un usuario de teclado o un usuario de lector de pantalla no puede cerrar el banner, no puede usar el sitio.
Mínimo aceptable:
- Elementos
<button>reales para aceptar, rechazar y gestionar. Nada de<div onclick="...">. Los botones reciben foco de teclado y semántica de lector de pantalla por defecto. - Anillo de foco visible al tabular por el banner. Si has quitado el outline por defecto, sustitúyelo por algo visible.
- Orden lógico de tabulación. Aceptar, rechazar, gestionar, cerrar, en el orden en que aparecen visualmente.
- Contraste de color de al menos 4.5:1 para texto normal y 3:1 para texto grande y elementos interactivos, sobre el fondo real del banner.
- El banner es alcanzable en el orden de tabulación sin atrapar al usuario. Debe poder entrar con tab, elegir y salir.
- Un
aria-labelclaro o un encabezado visible tipo “Consentimiento de cookies” para que los lectores de pantalla anuncien qué es este diálogo. - Para banners modales, usa
role="dialog"y gestiona el foco al abrir y cerrar.
WCAG 2.1 AA es el objetivo práctico. Si entregas banners para clientes, esto no se negocia.
Patrones oscuros que evitar
Más allá del clásico “Aceptar más grande que Rechazar”, estos son los patrones por los que se sanciona a sitios:
- Casillas pre marcadas en el panel de preferencias. Analítica desactivada por defecto. Publicidad desactivada por defecto. Personalización desactivada por defecto. El usuario marca, no desmarca.
- “Rechazar” oculto en un submenú. Si el usuario tiene que hacer clic en “Configurar” o “Gestionar” para encontrar la opción de rechazar, el banner no pasa la prueba de igualdad de esfuerzo.
- Manipulación del lenguaje. “Cookies necesarias para una mejor experiencia” no es necesario, es una etiqueta de marketing. “Necesario” significa estrictamente necesario para que el sitio funcione: sesión, seguridad, preferencias básicas. La analítica no es necesaria.
- Orden de botones confuso. Si aceptar está a la derecha un día y a la izquierda al siguiente, estás entrenando una memoria muscular para pulsar lo que el usuario espera, no lo que quiere.
- Vergüenza al confirmar. “¿Seguro que quieres rechazar? Te perderás contenido personalizado”. Eso es presión, no información.
- La trampa de la “X para cerrar”. Cerrar el banner sin elegir no debería contar como consentimiento. Si no hay consentimiento, no hay consentimiento.
- “Pagar o aceptar” forzado sin un rechazo real. El usuario paga o acepta todo el rastreo. El CEPD ha sido claro en que esto rara vez produce un consentimiento válido.
- Listas de terceros ocultas. El usuario acepta “socios publicitarios” sin ver quiénes son. La lista de proveedores y finalidades debe ser accesible desde el banner.
Si tu banner usa alguno de estos patrones, no solo te arriesgas a una sanción, también enseñas a los usuarios a desconfiar de tu marca.
Qué tienes que registrar
La AEPD espera que puedas demostrar el consentimiento. Implicaciones prácticas:
- Guarda la decisión del usuario con marca de tiempo, la versión del banner que vio y las categorías aceptadas o rechazadas.
- Mantén ese registro durante la vida del consentimiento. Si el usuario revoca, regístralo también.
- Pon fácil revocar. Un enlace permanente en el pie de página (a menudo “Preferencias de cookies”) que reabra el banner.
- Vuelve a pedir consentimiento cuando la política cambie de forma sustantiva, no en cada visita.
El consentimiento no es un evento puntual. Es un estado que mantienes.
Preguntas frecuentes
¿Hay que pedir consentimiento para todas las cookies?
No. Las cookies estrictamente necesarias (sesión, login, seguridad, preferencias básicas, carrito) no requieren consentimiento bajo la directiva ePrivacy y los criterios de la AEPD. Todas las demás sí: analítica, publicidad, personalización, tests A/B, mapas de calor y embeds de terceros que pongan cookies. Ante la duda, trátala como cookie que requiere consentimiento.
¿Qué cuenta como cookie estrictamente necesaria?
Una cookie es estrictamente necesaria solo si el servicio que el usuario ha pedido explícitamente no puede funcionar sin ella. Una cookie de sesión de login es necesaria. Un token CSRF es necesario. Un identificador de carrito es necesario. Google Analytics no lo es. Hotjar tampoco. Una cookie de “recordar tema oscuro” está en el límite y normalmente requiere consentimiento, salvo que cambiar el tema sea el servicio solicitado.
¿Puedo usar un muro de cookies?
Un muro de cookies (debes aceptar para entrar al sitio) por norma general no cumple. El consentimiento debe ser libre, y forzar al usuario a aceptar rastreo para acceder al contenido no es elección libre. El modelo “Pagar o aceptar” es una versión más suave y el CEPD lo ha rechazado en la mayoría de contextos. Algunos medios siguen usándolo, pero esperamos que cambie.
¿Qué registros tengo que conservar?
Como mínimo: quién consintió (un identificador de usuario o dispositivo), cuándo, a qué categorías y sobre qué versión del banner y de la política. La mayoría de plataformas de gestión de consentimiento (CMP) lo hacen por ti. Si construyes la tuya, guarda un registro por evento de consentimiento en una base de datos que controles.
¿Puedo mostrar el banner solo una vez?
Sí, ese es el objetivo. Una vez que el usuario ha elegido, guarda la decisión y no vuelvas a preguntar en cada visita. Vuelve a preguntar solo cuando la política cambie de forma que afecte a categorías o proveedores. Un enlace pequeño y permanente (pie o ajustes) permite al usuario cambiar de opinión sin que tú insistas.
¿Qué pasa si el usuario no hace nada?
Nada. Sin consentimiento no hay cookies no esenciales. Sirves el sitio, las cookies estrictamente necesarias funcionan y la analítica, la publicidad y la personalización se quedan desactivadas. Trata “sin respuesta” como “sin consentimiento”. No asumas, no marques aceptado por defecto, no cuentes el silencio como acuerdo.
¿Esto se aplica a mi sitio si estoy fuera de España?
Si tienes usuarios en España o en la UE, sí, se aplican el RGPD y los requisitos técnicos de seguridad asociados. La AEPD es la autoridad española, pero las normas de fondo son europeas. Un sitio basado en México o Argentina con visitantes españoles o europeos debe cumplir para esos visitantes.
Constrúyelo bien una vez
Un banner de cookies conforme no es complicado. Es una pieza pequeña de UI que respeta tres reglas: misma facilidad para aceptar y rechazar, sin categorías pre marcadas y una forma clara de cambiar de opinión más adelante. Añade Consent Mode v2 si usas herramientas de Google, hazlo accesible por teclado y registra los consentimientos.
Lánzalo bien una vez, de buena fe, y dejas de preocuparte. Intenta hacer trampa, y pasarás los próximos dos años reescribiéndolo cada vez que la AEPD o el CEPD aprieten la tuerca.
Para una gestión ética completa, descubre cómo implementar Global Privacy Control (GPC) y asegura tus activos técnicos bajo la Seguridad técnica LOPD.