Caché de páxinas, CDN e banners de consentimento: como evitar servir o estado de consentimento equivocado

Páxinas rápidas, consentimento equivocado

A caché de páxinas é unha das mellores cousas que podes facer pola velocidade e os custos de aloxamento. Tamén é unha das formas máis doadas de romper unha configuración de consentimento sen decatarte. Unha caché fai exactamente o que se lle di: garda unha resposta unha vez e sérvea a todo o que coincida coa mesma clave. Se esa resposta gardada contén calquera cousa específica da elección de consentimento ou da localización dun visitante, o seguinte visitante tamén a recibe.

Esta guía cobre as capas de caché que adoitan situarse diante dun sitio de editor — cachés de punta do CDN, complementos de caché de páxina completa, proxies inversos, service workers e o propio navegador — e como evitar que cada unha sirva a experiencia de consentimento equivocada.

A regra básica: mantén o consentimento fóra do HTML en caché

A arquitectura máis segura renderiza a páxina HTML almacenada como neutral respecto ao consentimento. A páxina contén o cargador do CMP e as túas etiquetas en estado bloqueado ou de espera, pero ningunha decisión sobre este visitante concreto. Despois o CMP execútase no navegador, le a elección gardada, decide se mostrar o banner e libera as etiquetas en consecuencia.

Os problemas comezan cando o servidor toma decisións de consentimento no momento de renderizar, por exemplo:

Unha vez que esa páxina se garda na caché, o estado do primeiro visitante pasa a ser o estado de todos. Un visitante que rexeitou o seguimento pode recibir unha páxina coas etiquetas xa activas, ou un visitante novo pode non ver nunca un banner porque a copia gardada vén de alguén que xa o descartara.

Por que “Vary: Cookie” poucas veces é a resposta

A solución de manual para o contido por visitante é dicirlles ás cachés que varíen segundo a cabeceira de cookies. Na práctica, os visitantes levan moitas cookies con valores únicos, así que variar segundo toda a cabeceira de cookies adoita deixar a taxa de acertos da caché case a cero. Algúns CDN permiten construír a clave da caché a partir do valor dunha soa cookie, o que é viable se a túa cookie de consentimento ten poucos estados posibles, pero engade complexidade e segue multiplicando o número de copias gardadas. Mover a decisión ao navegador é máis sinxelo e mantén a caché eficiente.

Xeografía na beira

Moitos editores mostran banners distintos segundo a rexión: un banner de aceptación previa para a UE e o Reino Unido, un aviso de exclusión para os estados dos EUA e algo máis lixeiro no resto. Se o servidor escolle a variante a partir do enderezo IP do visitante e esa páxina se garda na caché, un lector europeo pode recibir unha páxina estadounidense gardada, ou ao revés.

Tres patróns permiten evitalo:

  1. Xeolocalización no cliente. Deixa que o CMP determine a rexión no navegador, de modo que o HTML gardado sexa o mesmo para todos.
  2. País na clave da caché. Se tes que decidir na beira, inclúe na clave da caché o código de país que proporciona o teu CDN. Obtés unha copia gardada por país, o que é previsible.
  3. Lóxica de beira sen caché. Executa a decisión rexional nunha función de beira que inxecte un valor pequeno e sen caché nunha páxina que, no resto, está gardada.

Calquera que sexa a opción, documéntaa. Os erros de xeografía están entre os máis difíciles de reproducir, porque só aparecen para visitantes dun lugar que reciben por azar unha páxina gardada por alguén doutro.

Caché do propio script do CMP

Gardar durante moito tempo o cargador do CMP na caché é bo para o rendemento, pero ten un custo cando cambia a configuración. Se actualizas provedores, finalidades ou o texto do banner e o script ou o ficheiro de configuración queda gardado durante un ano, algúns visitantes seguirán vendo a versión antiga. Comproba como versiona os ficheiros o teu CMP: un nome de ficheiro ou un parámetro de versión que cambie permite gardar agresivamente e á vez despregar os cambios ao instante. Confirma tamén que o teu CDN non elimina as cadeas de consulta dos URL de scripts de terceiros se o CMP depende delas.

Service workers e cachés sen conexión

Os sitios cunha capa de aplicación web progresiva adoitan gardar o HTML nun service worker. Vale a mesma regra: non gardes nunca unha páxina que reflicta unha decisión de consentimento concreta. Exclúe da caché do service worker os puntos finais relacionados co consentimento e as páxinas do centro de preferencias, e asegúrate de que sempre se poida obter unha configuración nova do CMP.

A caché de avance e retroceso

Os navegadores modernos manteñen na memoria as páxinas visitadas recentemente para que o botón de atrás as restaure ao instante. Se un visitante abre o centro de preferencias nunha páxina, retira o consentimento e despois preme atrás, a páxina restaurada pode ter aínda as etiquetas en marcha de antes. Escoita o evento pageshow e comproba a súa propiedade persisted: cando unha páxina se restaura desde esta caché, volve ler o estado de consentimento gardado e para ou inicia as etiquetas para que coincidan.

Unha rutina de probas

Puntos clave

← Blog Ler todo →