01Resumo executivo
Cinco leituras. As quatro primeiras são o diagnóstico; a quinta é a boa notícia que indica o caminho.
Praticamente todo mundo que aparece está aparecendo pela primeira vez. Não existe nada no painel que dê motivo para voltar amanhã — preço de bitcoin a pessoa acha em qualquer lugar, inclusive no bloqueio de tela do celular. Esse é o problema número um, e ele não se resolve adicionando seções.
São 34 seções. Metade foi vista por menos de 20 pessoas no mês inteiro, e duas não foram vistas por ninguém. Cada seção custa manutenção, peso de arquivo e risco de erro — e a cauda longa da página está rendendo quase zero.
Alerta de preço: 25 pessoas viram, zero criaram. Preço médio (DCA): 21 viram, zero calcularam. Busca de moeda: nenhum uso em 28 dias. Isso derruba a hipótese de que "ninguém encontra" — as pessoas encontram, olham e vão embora. O problema é a promessa, não a descoberta.
A seção que compara o Bitcoin com ouro, prata e as maiores empresas do mundo usa valores fixos no código que estão bem defasados — o ouro aparece com cerca de 23 trilhões quando a referência atual é perto de 32. Num painel cujo único ativo é ser confiável, número errado é o pior tipo de bug.
Os links para a loja que entraram nos artigos no fim de agosto já são a maior origem de cliques para a loja — 9 cliques de 5 pessoas, mais do que o cabeçalho, o logo e o herói. Com poucos dias no ar e exposição mínima. É a pista mais clara do relatório: conteúdo que explica converte melhor que botão que pede.
02O que os dados mostram
Contagens brutas do GA4 no período, sem tratamento. Eventos por contagem e por usuários únicos.
| Evento | Contagem | Usuários | Leitura |
|---|---|---|---|
page_view | 2.012 | 162 | Inclui o painel e a página do widget |
secao_vista | 1.368 | 117 | 32 das 34 seções apareceram para alguém |
session_start | 579 | 163 | Inflado por aba deixada aberta (sessão expira em 30 min) |
widget_visto | 509 | 64 | Não separado por origem — ver seção 8 |
user_engagement | 463 | 76 | Padrão do GA4 |
first_visit | 151 | 151 | 93% da base é nova |
moeda_trocada | 56 | 11 | 5 trocas por pessoa — a preferência não está sendo lembrada |
clique_loja | 32 | 21 | 13% dos usuários clicam para a loja |
tema_trocado | 22 | 8 | — |
erro_js | 21 | 3 | Concentrado em 3 pessoas: provável 1 bug repetindo |
bloco_falhou | 7 | 1 | Um usuário com bloco que não carregou |
idioma_trocado | 6 | 1 | Uma pessoa. Provavelmente nós testando |
app_instalado | 3 | 2 | PWA instalado 2 vezes |
ir_simulado | 2 | 1 | — |
rastreador_usado | 1 | 1 | — |
widget_copiado | 1 | 1 | Um código de widget copiado em 28 dias |
alerta_criado · preco_medio_lancado · busca_moeda · tentar_de_novo — zero ocorrências | |||
Geografia
Do total de visualizações de seção: Brasil ~1.200, Estados Unidos 173, Panamá 24, Índia 2. O tráfego internacional existe e não é desprezível (cerca de 12%), mas idioma_trocado aconteceu 6 vezes, para 1 pessoa só. Ou o tráfego dos EUA é de brasileiros, ou o seletor de idioma não está sendo encontrado, ou a tradução automática do navegador já resolve. Não dá para saber com o que está instrumentado hoje.
Boa parte desse período foi justamente o mês em que configuramos e depuramos a medição. Recarreguei a página dezenas de vezes testando Zaraz, GA4, o observador de seções e o filtro de erros — e você também. Uma fatia dos 163 usuários e dos 2.012 page_view somos nós. Os 21 erro_js de 3 usuários, em particular, têm chance alta de ser tráfego nosso. As proporções (funil, ferramentas não usadas) seguem válidas; os absolutos devem ser lidos como teto, não como piso.
03O funil de atenção
Usuários únicos que viram cada seção. A barra é relativa à seção mais vista.
De 163 usuários, 109 viram a primeira seção — ou seja, 33% saem antes de qualquer coisa registrar, ou entram só pelo widget. Dos que ficam, a queda é imediata e depois fica plana em torno de 12%: quem passa da metade normalmente vai razoavelmente longe, mas são poucos.
O que fazer com isso
Dois caminhos, e eu recomendaria o segundo:
- Tentar empurrar as pessoas para baixo — índice fixo, âncoras, "veja também". Melhora na margem e mantém o custo de manter 34 seções.
- Aceitar o funil e reorganizar em torno dele. Mantenha na página principal as ~12 seções que passam de 15 usuários e transforme a cauda em páginas próprias com URL, título e descrição —
/dca,/halving,/tesourarias,/taxas. Cada uma passa a poder ranquear no Google por conta própria, o que é impossível hoje: tudo vive numa única URL. A página principal fica mais leve e mais rápida, e a cauda ganha um canal de entrada em vez de depender de alguém rolar 6 mil pixels.
04Ferramentas: vistas x usadas
Esta é a tabela mais importante do relatório.
| Ferramenta | Viram | Usaram | Diagnóstico |
|---|---|---|---|
| Alerta de preço | 25 | 0 | A promessa não se sustenta: o alerta só dispara com a aba aberta. Quem lê a explicação desiste ali |
| Preço médio (DCA) | 21 | 0 | Exige digitar valores e datas. Fricção alta para um resultado que a pessoa não sabe se quer |
| Conversor | 23 | 0 | Nenhuma busca_moeda. Talvez esteja sendo usado sem trocar de moeda — não dá para distinguir hoje |
| Comparador | 19 | — | Sem evento próprio de uso. Ponto cego |
| Rastrear carteira | 9 | 1 | Único uso no mês |
| Simulador de IR | — | 1 | Um uso |
| Widget | 10 | 1 | 1 código copiado. Mas 509 widget_visto — alguém está usando (ver seção 8) |
25 pessoas pararam na seção de alerta de preço e nenhuma criou um alerta. Se fosse problema de descoberta, elas não teriam chegado lá. Chegaram, leram e não quiseram. A ferramenta que mais gente encontrou é a que ninguém aceitou.
Um alerta que só funciona com a aba aberta não é um alerta — é um cronômetro. Há duas saídas honestas: transformar em notificação de verdade (o PWA já está instalado, falta o serviço de push do lado do Worker) ou remover a seção e parar de prometer. A terceira opção — deixar como está — custa credibilidade em silêncio.
moeda_trocada56 trocas de moeda para 11 pessoas: 5 trocas por pessoa. Ninguém troca de moeda 5 vezes porque quer. Isso tem cara de preferência que não fica salva entre recarregamentos, ou de troca que não aplica em toda a página de primeira. Vale reproduzir com calma: é um incômodo real de quem mais se interessou pelo painel.
05O caminho comercial
32 cliques para a loja, 21 pessoas — 13% dos usuários. Para um painel gratuito sem anúncio, não é ruim. O detalhe está em de onde vêm.
Por origem do clique
cliques / usuários
Para onde vão
| Loja (raiz) | ~13 / 12 |
| Cold wallet | 5 / 5 |
| Índice de medo e ganância | 3 / 2 |
| Ciclo de alta | 2 / 2 |
| Dólar comercial | 2 / 2 |
| KriptoHoje (vários) | 1 cada |
Os links de artigo entraram no fim de agosto — estiveram no ar menos da metade do período — e já lideram em cliques. E eles só aparecem em seções que 16 a 25 pessoas veem. Nenhum outro elemento tem essa taxa por exposição.
Faz sentido: quem clica em "entenda o ciclo de alta" está com uma pergunta na cabeça. Quem vê um botão "Loja" no cabeçalho não está. A implicação prática é que o próximo passo comercial não é mais destaque de loja — é mais explicação, com o link dentro dela. Cada uma das 34 seções é uma pergunta que alguém já teve.
Um detalhe que reforça: cold wallet é o segundo destino mais clicado, com 5 pessoas distintas. É exatamente o produto da casa e exatamente o público certo — gente que estava olhando dados de mercado e resolveu ver como guardar. Vale checar se essa página de produto está tão boa quanto o painel que manda tráfego para ela.
06Auditoria técnica
O que está frágil, desatualizado ou arriscado na estrutura atual.
Dados desatualizados no ar
A seção Bitcoin vs. os maiores ativos do mundo busca o valor de mercado do Bitcoin ao vivo, mas compara com uma lista fixa escrita no código. Essa lista ficou para trás:
| Ativo | No código | Referência (set/2026) | Desvio |
|---|---|---|---|
| Prata | 2,1 T | 4,01 T | −48% |
| 2,6 T | 4,13 T | −37% | |
| Ouro | 23,0 T | 32,4 T | −29% |
| Apple | 3,5 T | 4,59 T | −24% |
| NVIDIA | 4,4 T | 5,51 T | −20% |
| Amazon | 2,4 T | 2,76 T | −13% |
| Microsoft | 3,8 T | 3,75 T | +1% |
O efeito visual é que o Bitcoin aparece relativamente maior do que é. Além de corrigir os números, duas coisas ajudam: mostrar na própria seção a data da última atualização da referência (a nota atual diz "atualizadas periodicamente", o que não compromete com nada) e incluir alguns ativos que hoje faltam — Broadcom, TSMC, Aramco — para o Bitcoin não ficar sempre na ponta da lista por ausência de comparação.
Peso e forma do arquivo
- O painel é um único HTML de cerca de 670 KB, com CSS, JavaScript e conteúdo tudo inline, sem etapa de build no servidor. Isso é ótimo para simplicidade e para não depender de ferramenta nenhuma — e é o gargalo de performance no celular, porque as 34 seções chegam antes do primeiro pixel, inclusive as que 4 pessoas veem.
- Não há carregamento sob demanda. As seções da cauda longa custam banda de todos os visitantes e são vistas por 12% deles.
- O service worker está na versão 6 do cache. Funciona, mas com um HTML único de 670 KB em cache a pessoa que volta vê a versão antiga até a atualização completar — o que é especialmente ruim num painel de preços.
- O Cloudflare Fonts reescreve o HTML na borda (remove os links do Google Fonts e injeta
@font-faceapontando para/cf-fonts/). Não é um problema, mas explica por que o arquivo ao vivo nunca bate byte a byte com o local — vale registrar para não perder tempo com isso de novo.
Erros e blocos que falham
21 erro_js concentrados em 3 usuários e 7 bloco_falhou em 1 usuário. O padrão — poucas pessoas, muitas repetições — é assinatura de um bug único em laço, não de instabilidade geral. Combina com o que você relatou antes: Ciclos e risco do Bitcoin mostrando "não consegui carregar o histórico" e Distribuição por faixa de carteira travada carregando. Vale abrir o relatório de erro_js por alvo e resolver o que aparecer primeiro.
Um dado relacionado e revelador: tentar_de_novo teve zero ocorrências. Ou o botão de nova tentativa não está aparecendo quando um bloco falha, ou está aparecendo e ninguém clica. Nos dois casos, quem pegou o erro simplesmente ficou sem o dado.
Manutenção que cobra caro depois
- Tradução por texto de origem. O sistema de idiomas usa o texto em português como chave. Qualquer ajuste de redação — uma vírgula — desliga a tradução daquele trecho em silêncio, sem erro nenhum. Com 3 idiomas e conteúdo que muda, isso vai acumular buracos invisíveis.
- Cada parâmetro de evento é trabalho manual. No Zaraz, propriedade de
zaraz.track()não vai para o GA4 sozinha: precisa de um campo declarado à mão na ação. Foi por isso que ficamos só comalvoeorigem. Medir qualquer coisa nova exige lembrar desse passo.
Configuração e segurança
- A chave demo da CoinGecko que chegou a aparecer no código do painel ainda não foi revogada. É o item mais urgente da lista inteira, e leva dois minutos no painel deles.
- No Zaraz existe uma ferramenta inválida (um ID de medição malformado) disparando na zona
kriptobr.cominteira. Não quebra nada visível, mas roda em cada visita da loja sem servir para nada. - Ficou uma dimensão personalizada no GA4 (
secao) que nenhum evento preenche — resquício da versão anterior da medição. - O autorresponder do Jotform ainda envia com remetente diferente de
contato@kriptobr.com.
As chaves de API vivem como variáveis de ambiente no Worker, não no código da página. Painel e loja estão em propriedades separadas do GA4 — verificamos os dois relatórios em tempo real ao mesmo tempo para confirmar que não há mistura. O Google Signals está desligado e a retenção está declarada na política de privacidade com os prazos que o GA4 realmente usa. Para um painel gratuito de uma operação pequena, a base de privacidade está mais organizada que a média do mercado.
07Conteúdo e busca
O ativo de conteúdo é grande e está todo escondido atrás de uma única URL.
O painel tem 34 seções, um glossário com 54 termos, FAQ, guia e comparadores. Em volume de conteúdo útil, é mais do que muitos sites de conteúdo têm. Em estrutura de busca, é uma página: um título, uma descrição, um endereço. Tudo compete pelo mesmo espaço e nada pode ser encontrado pelo seu próprio nome.
É difícil exagerar o tamanho disso. Quem procura "como calcular preço médio de bitcoin", "quando é o próximo halving" ou "o que é stablecoin" está procurando exatamente o que já está escrito e pronto no painel — e não existe página para entregar. Enquanto isso, os 9 artigos no blog fazem esse trabalho e, como mostra a seção 5, são o melhor canal comercial da operação.
O que eu verificaria antes de investir
- Se os artigos do blog linkam de volta para o painel. O painel já manda tráfego para eles; o contrário fecha o circuito e é grátis.
- Se o glossário e o FAQ estão marcados com dados estruturados (
DefinedTermSeteFAQPage). São os dois tipos de conteúdo que mais se beneficiam disso e já existem escritos. - Quais termos
kriptobr.comekriptohoje.comjá ranqueiam hoje, para escolher as primeiras seções a promover a página própria em vez de adivinhar.
Esse último item eu não consegui checar agora: a conta do Semrush está sem unidades de API disponíveis. Fica como pendência, não como opinião.
08Pontos cegos da medição
Onde os dados de hoje não conseguem responder — e o que falta para responder.
O widget é o maior mistério
widget_visto teve 509 eventos e 64 usuários — é o quarto evento mais frequente do painel. Mas o parâmetro origem nunca foi aberto no relatório, então não sabemos quanto é a prévia dentro do próprio painel e quanto é incorporação de verdade em site de terceiro. Se houver embed real rodando por aí, é o canal de distribuição mais valioso que existe e ninguém sabe. É um clique no GA4.
Duas seções nunca apareceram
32 das 34 seções registraram secao_vista. As outras duas: ou ninguém chegou nelas em 28 dias, ou estão sem o atributo que o observador procura. A segunda hipótese é mais provável e mais fácil de checar — e enquanto não se checa, a leitura do funil tem dois furos.
O conversor não tem evento de uso
Medimos busca_moeda, que ficou em zero, mas alguém pode estar digitando valores sem trocar de moeda — o uso mais comum. O conversor recém ganhou o modo real → cripto e não há como saber se alguém usou. Falta um evento no cálculo, não na busca.
Profundidade de rolagem só por seção
O observador diz qual seção entrou na tela, não quanto da página foi percorrido nem por quanto tempo. Para uma página de 34 seções isso basta para o funil, mas não diz onde a pessoa parou — se abandonou lendo ou se passou correndo.
O observador de seções não roda em aba oculta, e o session_start conta de novo depois de 30 minutos parado. Num painel que as pessoas tendem a deixar aberto, isso significa sessões inflando e visualizações de seção subcontando ao mesmo tempo. É bom saber antes de comemorar ou lamentar qualquer variação de 10%.
09Prioridades
Em ordem. Se der para fazer só o bloco P0 neste mês, já vale.
Único item que é risco de verdade, e o único cuja demora não tem justificativa. Você precisa fazer no painel da CoinGecko — não é algo que eu deva tocar.
Sete números errados numa seção cuja premissa é comparação justa, com desvios de até 48%. Trocar os valores e escrever a data ao lado. Opcional no mesmo passo: incluir Broadcom, TSMC e Aramco.
ID de medição malformado disparando em toda a zona kriptobr.com, inclusive na loja. Não serve para nada e roda em cada visita.
25 pessoas viram, zero criaram. Virar notificação de verdade (push do PWA via Worker) ou sair da página. Deixar como está é prometer o que não se entrega para a seção mais vista da metade de baixo.
É o problema número um e nada na lista o resolve por acidente. O formato mais barato é um resumo diário — e-mail, Telegram ou push do PWA: fechamento do BTC em real, variação, medo e ganância, ágio do dólar, uma linha de notícia. Quem assina volta; quem volta vê loja. Dá para testar com dez pessoas antes de construir.
Deixar na principal as ~12 seções que passam de 15 usuários. As outras viram páginas com título, descrição e endereço próprios. Resolve três coisas de uma vez: peso, busca e o funil da seção 3.
Link dentro de artigo é o canal com melhor taxa por exposição do painel — e está em poucas seções. Cada seção é uma pergunta: quem olha faixas de carteira quer saber onde guardar; quem olha taxas de rede quer entender custo. Explicação com link dentro, não botão de loja.
5 trocas de moeda por pessoa é sintoma. Moeda, tema e idioma devem sobreviver ao recarregamento e valer para a página toda na primeira troca.
Hoje 100% dos visitantes baixam 100% das seções para que 12% as vejam. Carregar por proximidade de rolagem ajuda justamente o celular, que é onde a maioria está.
Base + módulos por seção. O splice.py já é meio caminho — o que falta é isso valer também no que vai para o ar, não só na montagem.
Enquanto a chave for a frase em português, toda revisão de texto apaga uma tradução em silêncio. Quanto mais conteúdo, mais caro fica arrumar depois.
Abrir widget_visto por origem (é um clique e pode revelar um canal inteiro), achar as 2 seções invisíveis, instrumentar o cálculo do conversor, apagar a dimensão secao.
Cold wallet é o segundo destino mais clicado, com 5 pessoas distintas vindas de dados de mercado. O painel está fazendo a parte dele; vale conferir se a página de destino aproveita.
10O que eu não faria agora
Parte de uma avaliação é dizer onde não gastar.
Metade das 34 é vista por menos de 20 pessoas por mês. Seção 35 nasce com público de 12% e custo de manutenção de 100%. Enquanto a cauda não estiver resolvida, cada ideia nova de seção é dívida.
Os EUA são o segundo país, mas idioma_trocado aconteceu 6 vezes para 1 pessoa em 28 dias — que provavelmente fomos nós testando. Os 3 idiomas atuais ainda não provaram retorno; um quarto não vai provar. Primeiro descubra se o tráfego dos EUA é de brasileiro.
O PWA foi instalado 2 vezes no mês. Um app é uma aposta em recorrência, e a recorrência é justamente o que não existe hoje. Resolva o motivo de voltar primeiro — o resumo diário serve a web e o app ao mesmo tempo.
Com 163 usuários no mês, anúncio não paga café e gasta a única coisa que o painel tem de sobra: a impressão de ser limpo e confiável. O caminho comercial já está funcionando e é o link contextual.
Nada nos dados aponta para aparência. As pessoas veem as seções — elas não usam o que veem, e não voltam. São problemas de promessa e de motivo, não de estética.
11Método e limites
O que sustenta cada número acima e o que ele não pode dizer.
Origem dos dados
GA4, propriedade Mercado.KriptoBR.com (p551225332), fluxo G-P215NE5THH, período de 25/ago a 21/set/2026 — 28 dias completos, a primeira janela cheia desde que a medição entrou no ar. Coleta via Cloudflare Zaraz. Eventos personalizados definidos no módulo de medição do painel, com dois parâmetros (alvo e origem), limitados a dois porque cada parâmetro exige um campo declarado à mão na ação do Zaraz. A auditoria técnica vem do código-fonte do painel e da configuração da conta Cloudflare, revisados ao longo de setembro.
Limites que valem para todo o documento
- Amostra pequena. 163 usuários. Diferenças de poucas unidades entre seções não significam nada; a forma do funil significa.
- Tráfego de desenvolvimento incluído. Este foi o mês em que a medição foi construída e depurada. Parte dos eventos somos nós. Os absolutos são teto.
- Algumas linhas do meio da tabela de seções não foram capturadas no relatório do GA4; o funil da seção 3 tem 26 das 34 seções.
- Nada aqui mede quem nunca chegou. O relatório fala de quem entrou. Por que o painel tem 163 usuários e não 1.630 é uma pergunta de aquisição, que estes dados não respondem.
- Sem dados de busca. A conta do Semrush está sem unidades de API, então a seção 7 é raciocínio estrutural, não medição.
Diagnóstico apenas. Nenhuma correção foi aplicada ao painel ao vivo, ao projeto Pages existente, à configuração do Zaraz ou à zona kriptobr.com. Este documento está publicado em um projeto novo e separado do Cloudflare Pages.