Atualizado em 19 de outubro de 2026
13 milissegundos. É o tempo de que o cérebro humano precisa para identificar uma imagem, segundo um estudo de neurocientistas do MIT publicado em 2014. No entanto, o script de uma ferramenta de teste A/B do lado do cliente geralmente leva várias centenas de milissegundos para modificar a página. Durante esse tempo, o visitante vê a versão original e, em seguida, a variante. Ele viu ambas. Seu teste, porém, pressupõe que ele tenha visto apenas uma delas.
Esse efeito de cintilação introduz um viés sistemático em suas medições, quase sempre em detrimento da variante, e pode levar você a descartar uma boa ideia ou validar uma ruim. Este guia explica de onde ele vem, quanto custa na prática, como medi-lo em seu próprio site e como eliminá-lo.
O que é o efeito de cintilação em testes A/B?
O efeito de cintilação (ou FOOC, "Flash of Original Content", ou "Flash do Conteúdo Original") é a breve exibição da página original antes da aplicação da variante testada, pois o script de teste modifica a página depois que o navegador já começou a exibi-la. O visitante percebe um salto: um título que muda, um botão que muda de cor, um bloco que se desloca.
Esse fenômeno é específico para testes do lado do cliente. Nesse modelo, o servidor sempre envia a mesma página HTML; trata-se de um arquivo JavaScript, carregado pelo navegador, que decide a qual grupo o visitante pertence e reescreve o DOM de acordo. Até que esse script seja baixado, interpretado e executado, o controle é exibido. Se você não está familiarizado com esse vocabulário (DOM, variante, controle, alocação), nosso glossário de testes A/B repete cada termo.
Por que a cintilação distorce seus resultados
A cintilação afeta apenas um dos dois grupos: os displays de controle não apresentam artefatos, enquanto a variante exibe um flash. Portanto, a comparação não é mais entre "design A versus design B", mas sim entre "design A versus design B com um defeito de exibição". Isso é um viés, não ruído: ele não se cancela aumentando o tamanho da amostra.
Dois mecanismos atuam contra a variante:
- Perda de confiança. Uma página que "salta" sugere um site mal projetado. Em um funil de pagamento ou em um formulário de solicitação de orçamento, essa impressão por si só já é suficiente para levantar suspeitas.
- O efeito de comparação. O visitante já viu o preço, o título ou a imagem antigos. Se a variante apresentar um preço riscado ou uma promessa mais impactante, ele verá ambas as versões, o que altera sua percepção da oferta.
Às vezes, pelo contrário, o elemento que "aparece" chama a atenção e amplifica a variante. Em ambos os casos, o resultado que você lê em seu painel de análise não corresponde à aparência que a variante teria após ser implementada diretamente no código, sem um script. Esta é uma das fontes subestimadas de falsos positivos (e falsos negativos) em testes A/B.
As 5 causas técnicas da cintilação
A oscilação aparece assim que a variante é aplicada após a primeira renderização da página. Cinco fatores, que podem ser combinados, prolongam esse atraso.
1. A localização do script
Um roteiro colocado no final de <body> só é executado depois que o restante do HTML for analisado: o navegador já exibiu tudo. Deve estar o mais acima possível no <head>, antes das folhas de estilo e outros scripts de terceiros.
2. Usando um gerenciador de tags
O Google Tag Manager carrega suas tags de forma assíncrona. Portanto, o script de teste aguarda o carregamento do próprio contêiner do GTM para só então ser acionado. O analista Simo Ahava constatou a discrepância no mesmo site, com o tráfego dividido em duas partes: a página permaneceu oculta. Em média, o tempo de carregamento da tag pelo GTM foi de 964 ms, comparado a 581 ms com o snippet inserido diretamente na página.. Quase 400 ms perdidos exclusivamente devido ao método de integração.
3. Carregamento assíncrono
Um script assíncrono não bloqueia a tela: essa é a sua vantagem em termos de velocidade e a razão pela qual ele produz oscilações na imagem. Voltaremos a esse assunto na próxima seção.
4. Tamanho e latência do script
Um arquivo contendo a configuração de todos os testes de conta, incluindo os pausados, leva mais tempo para ser executado. Se for servido por um servidor distante do visitante, cada requisição adiciona dezenas de milissegundos.
5. A forma como a variante é codificada
Uma modificação que espera que um elemento exista no DOM antes de reescrevê-lo (por exemplo, "substituir o texto do botão assim que ele for carregado") será necessariamente aplicada depois que o elemento for exibido. Editores WYSIWYG às vezes geram esse tipo de código por padrão. A documentação para Optimizely reconhece isso: suas alterações visuais aguardam que o elemento esteja disponível, o que causa flashes quando muitas alterações estão na fila.
Trecho de código síncrono ou assíncrono: a verdadeira decisão
Um trecho de código síncrono bloqueia a tela até que seja executado: sem oscilação, mas com uma tela branca se o script for lento. Um trecho de código assíncrono permite que a página carregue: sem tela branca, mas com oscilação. Não existe uma terceira via gratuita.
| Critérios | trecho síncrono | trecho assíncrono |
|---|---|---|
| Piscar | Nenhuma resposta do script | Provável, proporcional à latência |
| Tela branca | Sim, durante o carregamento do script. | Não |
| Se o servidor de scripts falhar | A página permanecerá bloqueada até que o tempo limite da rede seja atingido. | A página é exibida em sua versão original. |
| Impacto no LCP | Direto (a renderização está pendente) | Indireto (se houver mascaramento) |
| Confiabilidade do experimento | Alto | Depende das medidas anti-oscilação. |
Optimizely recomenda-se carregar o trecho de código de forma síncrona. permitindo, ao mesmo tempo, que certas modificações de variantes sejam executadas de forma assíncrona. VWO (renomeado) Wingify (em 2026) oculta o corpo da página enquanto aguarda sua biblioteca; Kameleoon destaca uma integração "assíncrona bloqueante".
A escolha certa depende de uma única pergunta: a latência do seu script está sob controle? Se o arquivo for pequeno e servido por uma CDN próxima aos seus visitantes, o modo síncrono adiciona algumas dezenas de milissegundos e elimina o problema. Caso contrário, qualquer lentidão na rede resulta em uma tela em branco. Este é o ponto crucial. entrega ultrarrápida das variantes Faça com que o modo de bloqueio seja curto o suficiente para se tornar imperceptível.
O trecho de código anti-flicker: útil, mas tem um preço.
Um trecho de código anti-flicker oculta a página (ou parte dela) usando uma regra CSS enquanto o script de teste é executado e, em seguida, a revela novamente. Ele remove o Flash visível, mas transfere o custo: a página é exibida posteriormente para todos.
O princípio é simples. Uma linha de código colocada no topo do <head> aplicado opacity: 0 ou visibility: hidden no <body>. Quando a ferramenta aplica a variante, ela remove essa regra. Se a ferramenta não responder, um tempo limite máximo exibirá a página de qualquer maneira. Os valores padrão são generosos: o trecho antigo de Google Optimize esperou até 4 segundos, e o SmartCode de VWO / Wingify define suas tolerâncias em 2000 ms para configurações e 2500 ms para a biblioteca..
Esses números são significativos. Durante todo esse tempo, nenhum pixel é renderizado. Uma auditoria publicada pela DebugBear na página inicial do AdRoll mostrou um Largest Contentful Paint (LCP) de 6,0 segundos com a máscara ativada, em comparação com 2,7 segundos quando a máscara foi desativada. O Google considera um LCP acima de 2,5 segundos como "precisando de melhorias" e acima de 4 segundos como "ruim": um anti-flicker mal configurado pode transformar uma página saudável em um resultado negativo.
Três regras para usá-lo sem danificá-lo:
- Ocultar apenas a área testada (o bloco principal, o formulário), não o
<body>inteiro. O restante da página é exibido normalmente e o LCP só é afetado se o elemento oculto for ele próprio o elemento LCP. - Reduza o tempo limite em 1000-1500 ms em vez de 2000-4000 ms. Além disso, um visitante que vê uma página em branco é mais penalizado do que um visitante que vê um flash.
- Ative o mascaramento apenas nas páginas que hospedam um teste.. Um sistema anti-flicker implementado em todo o site penaliza milhares de páginas que não testam nada.
Medindo a cintilação no seu site: o método A/A'
Para determinar se a cintilação influencia seus testes, execute um teste A/A': dois grupos visualizam exatamente a mesma página, mas um deles recebe uma modificação invisível aplicada pelo script de teste. Qualquer diferença significativa entre os dois grupos mede o custo do próprio mecanismo de injeção, independentemente de quaisquer considerações de marketing.
Um teste A/A clássico não basta: nenhum grupo sofre modificação, portanto nenhum sofre flicker. É o método que recomendamos na BlastOptimize antes de iniciar uma série de testes em um novo site ou em um novo modelo de página.
O protocolo de 4 etapas
- Criar variante A' Aplica uma modificação sem efeito visual ao elemento que você pretende testar (por exemplo, reescrever o texto do título com o mesmo texto ou adicionar um atributo).
data-(no botão). O caminho técnico é idêntico ao de uma variante verdadeira. - Instrumente o atraso Registre o tempo decorrido entre a primeira exibição (First Contentful Paint) e a aplicação da alteração. O trecho abaixo é suficiente.
- Deixe que complete um ciclo inteiro. (pelo menos 2 semanas para atenuar os efeitos de dias úteis/fins de semana) com sua meta de conversão usual, conforme definida em seu configuração de objetivo e rastreamento.
- Leia dois números : o tempo mediano e o percentil 90 (visitantes lentos), e então a diferença de conversão entre A e A'.
<script>
// À appeler dans le code de la variante A', juste après la modification
(function () {
var fcp = performance.getEntriesByName('first-contentful-paint')[0];
var applique = performance.now();
var delai = fcp ? Math.round(applique - fcp.startTime) : null;
// delai > 0 : la variante s'applique APRÈS le premier affichage = flicker visible
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ event: 'flicker_delay', flicker_ms: delai });
})();
</script>Como interpretar
- atraso negativo ou zero A variante é aplicada antes da primeira renderização. Não é possível ocorrer cintilação.
- Atraso mediano inferior a 100 ms A oscilação raramente é perceptível conscientemente, mas é suficiente para ser vista (lembre-se dos 13 ms). Monitore o percentil 90.
- Atraso mediano superior a 300 ms A maioria dos visitantes está vendo o problema de cintilação na página. Não execute nenhum teste nesta página até que a integração seja corrigida.
- Diferença de conversão significativa entre A e A' O mecanismo de injeção por si só tem um efeito mensurável. Todos os seus testes neste modelo sofrem desse viés.
Esta figura mostra o tamanho mínimo do efeito que pode ser interpretado nesta página. Se A/A' mostrar −2% para A', uma variante que ganha +1,5% pode na verdade ganhar +3,5%, e uma variante com −1% pode ser neutra.
9 correções concretas, da mais rentável à mais dispendiosa.
A maioria das oscilações de brilho pode ser corrigida sem trocar de ferramentas: movendo o script, tornando-o mais leve e codificando as variantes em CSS em vez de JavaScript. Aqui estão as alavancas, classificadas pela relação esforço/ganho.
- Coloque o trecho no topo do
<head>, Antes do CSS e de outros scripts de terceiros. Ganho imediato, cinco minutos de trabalho. - Saia do script de teste no Google Tag Manager. Integre-o permanentemente ao modelo. A diferença de 400 ms medida por Simo Ahava provém disso.
- Adicionar um
preconnectpara o domínio que serve o script (<link rel="preconnect" href="…">) para abrir a conexão mesmo antes do navegador encontrar a tag. - Codifique as modificações visuais usando CSS. Uma regra CSS injetada no
<head>aplica-se assim que o elemento é desenhado, sem esperar que ele exista no DOM. Altere uma cor, oculte um bloco ou reordene dois elementos comorderO uso do Flexbox não requer JavaScript. Essa também é a recomendação da documentação. Optimizely nas variantes que piscam. - Limpe o código gerado pelo editor visual Remover seletores redundantes, agrupar modificações no mesmo elemento e evitar reescritas completas de blocos HTML quando uma alteração de texto for suficiente.
- Arquivar testes concluídos. Cada teste pausado que permanece na configuração aumenta o tamanho do arquivo para todos os visitantes.
- Oculte apenas a área testada., com um tempo limite curto (1000-1500 ms), em vez da página inteira por 4 segundos.
- Evite testes de redirecionamento em páginas com alto tráfego de entrada. Redirecionar para o URL B após carregar o URL A resulta em dois carregamentos de página: esta é a forma mais custosa de oscilação de desempenho (flicker).
- Distribua o script a partir de uma CDN próxima aos seus visitantes., com uma configuração limitada apenas aos testes ativos na página visitada. É a alavanca sobre a qual você tem menos controle, pois depende da ferramenta: pergunte ao seu fornecedor ou consulte nossa página sobre distribuição de scripts BlastOptimize o mais próximo possível do visitante.
Quando mudar para o lado do servidor
Os testes do lado do servidor eliminam a oscilação da tela por princípio: o servidor escolhe a variante e envia o HTML correto diretamente; nenhum script reescreve a página no navegador. A desvantagem é bem conhecida: cada teste passa por um desenvolvedor, o editor visual torna-se inutilizável e o ciclo de iteração se prolonga. Os testes no servidor são justificados para testes em elementos estruturais (algoritmo de precificação, processo de finalização de compra, navegação), para páginas onde até mesmo o menor desvio no LCP (Local Point of Code - Código de Preços Mais Baixos) é custoso, ou quando sua análise A/A (Análise de Atributos) revela um viés que as nove correções mencionadas acima não resolvem. Para testes de título, visuais ou de botão, uma abordagem bem integrada no lado do cliente continua sendo mais rápida de implementar. Essa escolha arquitetônica merece um guia próprio, que dedicaremos aos testes no servidor.
Lista de verificação anti-cintilação antes de cada lançamento
Antes de colocar um teste em produção, verifique estes dez pontos. Apenas um "não" nos quatro primeiros é suficiente para adiar o lançamento.
- ☐ O trecho de código está embutido no código.
<head>, em primeiro lugar entre os scripts, excluindo os gerenciadores de tags. - ☐ O modo de carregamento (síncrono/assíncrono) é conhecido e documentado para esta página.
- ☐ A variante foi verificada em um smartphone real com a rede limitada a "4G lento" nas ferramentas de desenvolvimento.
- ☐ O atraso entre a primeira exibição e a aplicação da variante é medido (mediana e percentil 90).
- ☐ Sempre que possível, as modificações visuais são feitas em CSS.
- ☐ Se o mascaramento for usado, ele terá como alvo a área testada e seu tempo limite será de ≤ 1500 ms.
- ☐ O LCP da página com e sem teste foi comparado (diferença alvo: menos de 100 ms).
- ☐ Os testes concluídos foram arquivados da conta.
- ☐ Nenhum teste de redirecionamento é executado em uma página de entrada principal sem um motivo forte.
- ☐ Um teste A/A foi realizado neste modelo de página nos últimos 6 meses.
O Flickr foi adicionado à lista de erros comuns em testes A/B que invalidam um teste mesmo antes da análise estatística. Isso é ainda mais perigoso no testes multivariados, onde várias áreas são modificadas simultaneamente e onde cada combinação pode produzir um flash diferente, e no sites de comércio eletrônico, onde as páginas de produtos carregam muitas imagens e scripts de terceiros.
Perguntas frequentes
O efeito de cintilação tem impacto no SEO?
Indiretamente, sim. A cintilação em si não é uma penalidade, mas correções mal implementadas são: um filtro anti-cintilação que obscurece a página degrada o LCP (Low Page Content - Conteúdo de Página Baixo), e uma variante que insere blocos aumenta o CLS (Cumulative Layout Shift - Mudança Cumulativa de Layout). Ambas as métricas fazem parte das Core Web Vitals consideradas pelo Google. Compare os dados dos campos do Search Console em páginas testadas e não testadas para verificar isso.
Minha ferramenta afirma ser "100% livre de cintilação": posso acreditar nisso?
Pergunte como. "Sem cintilação" geralmente significa "com mascaramento": o flash desaparece, mas a página carrega depois. Verifique três coisas: o método de carregamento do snippet, o valor de tempo limite do mascaramento e a diferença de LCP medida com e sem o script. Um teste A/A resolve a questão no seu próprio site. Você encontrará as diferenças de abordagem em nosso comparativo BlastOptimize / Kameleoon e em nosso comparação com AB Tasty.
Um snippet síncrono realmente deixa meu site mais lento?
Isso atrasa a exibição inicial do tempo de download e execução do script. Com um arquivo pequeno servido por uma CDN, a diferença é de algumas dezenas de milissegundos. Com um arquivo grande ou um servidor lento, a diferença é de centenas de milissegundos, e uma interrupção do provedor pode bloquear a página até que o tempo limite da rede seja atingido. Meça o LCP com e sem o trecho de código antes de decidir.
Posso fazer o upload da minha ferramenta de teste A/B através do Google Tag Manager?
Tecnicamente sim, mas essa configuração produz mais oscilações porque o GTM carrega suas tags de forma assíncrona. Medições publicadas mostram aproximadamente 400 ms de mascaramento adicional em comparação com uma integração direta. Reserve o GTM para acionar eventos de rastreamento, não para o script que modifica a página.
Os banners de consentimento pioram a cintilação?
Sim, podem. Se a sua ferramenta de teste só carregar depois que os cookies forem aceitos, ou se a plataforma de gerenciamento de consentimento bloquear scripts enquanto lê a escolha do visitante, a aplicação da variante será atrasada de acordo. Verifique a ordem de execução entre o banner e o trecho de teste em uma sessão limpa, sem cookies.
Principais conclusões
- O efeito de cintilação é a breve exibição da página original antes da variante. É específico para testes do lado do cliente.
- Não se trata de um simples defeito visual: ele distorce sistematicamente a comparação, pois apenas um dos dois grupos apresenta esse problema.
- As principais causas são um script mal posicionado, uma passagem pelo GTM, carregamento assíncrono, um arquivo muito grande e variantes codificadas em JavaScript em vez de CSS.
- O filtro anti-flicker mascara o sintoma, mas atrasa a exibição: selecione a área testada e mantenha um tempo limite ≤ 1500 ms.
- Meça antes de corrigir: o teste A/A' fornece o custo real do mecanismo de injeção em sua instalação.
- O lado do servidor elimina a cintilação por projeto, ao custo de uma dependência dos desenvolvedores.
Você quer ver como BlastOptimize será que serve as suas variantes? Confira o nosso ofertas e preços para lançar um teste A/A inicial em seu site.















Os comentários estão desativados.