UTM não está funcionando? 10 erros que quebram o rastreamento de campanhas
Você configurou os UTMs, rodou a campanha, mas os dados chegam errados ou simplesmente não aparecem. O rastreamento UTM tem mais pontos de falha do que parece. Aqui estão os 10 problemas mais comuns — e como diagnosticar cada um.
- Parâmetros removidos por redirecionamentos
- UTMs inconsistentes (maiúsculas, espaços, variações)
- UTMs em links internos
- Encurtadores de URL removendo parâmetros
- Formulário na página errada (sem UTM na URL)
- Campos ocultos não preenchidos antes do envio
- Navegação entre páginas antes da conversão
- Cache servindo URL sem UTMs
- Scripts de otimização (defer/delay) atrasando captura
- Testar com a mesma sessão que configurou
Erro 1: Parâmetros removidos por redirecionamentos
O redirecionamento é um dos maiores vilões do rastreamento UTM. Quando você usa uma URL que redireciona para outra, os parâmetros UTM podem ou não ser preservados — dependendo de como o redirecionamento foi configurado.
Cenários problemáticos:
- URL curta que redireciona e descarta a query string
- Domínio www → não-www (ou vice-versa) com redirecionamento mal configurado
- HTTP → HTTPS sem preservação de parâmetros
- Página com redirect 301 que não passa a query string
Como diagnosticar:
Use o DevTools (F12 → Network) e observe o campo de filtro para ver todos os
redirects. Ou use uma ferramenta como o curl com o flag -L -v
para acompanhar cada passo do redirect:
curl -L -v "https://seusite.com.br/lp/?utm_source=google" 2>&1 | grep -E "Location:|^>"
Como resolver:
Certifique-se de que todos os redirects preservam a query string. Teste a URL final com os UTMs antes de usar em uma campanha.
Erro 2: UTMs inconsistentes (maiúsculas, espaços, variações)
Parece simples, mas é um dos erros mais comuns — especialmente quando várias pessoas da equipe criam URLs UTM sem um padrão definido.
| Problema | Exemplo | Resultado nos relatórios |
|---|---|---|
| Case inconsistente | google vs Google | 2 sources diferentes |
| Sinônimos | paid_social vs paidsocial | 2 mediums diferentes |
| Espaços | black friday | Codificado como black%20friday |
| Nomes de campanha diferentes para a mesma | black_friday vs bf_2026 | Dados fragmentados |
Como resolver:
Crie e mantenha um documento de nomenclatura compartilhado com toda a equipe. Use minúsculas, underscores e nomes descritivos. Considere usar um UTM builder que só permite valores do seu glossário pré-definido.
Erro 3: UTMs em links internos
Adicionar UTMs em links que apontam para outras páginas do próprio site é um erro técnico que distorce a atribuição. O Google Analytics, por exemplo, interpreta o clique em um link interno com UTM como início de uma nova sessão — apagando a fonte original do visitante.
Exemplo do problema: você posta no Instagram com UTM, o visitante chega à página inicial. No menu, um link para "Serviços" tem UTM. Quando o usuário clica, o GA4 considera que uma nova sessão começou — e a fonte original (Instagram) se perde.
Como resolver:
Use UTMs apenas em links externos — anúncios, e-mails, posts em redes sociais, parcerias. Nunca em links dentro do seu próprio site.
Erro 4: Encurtadores de URL removendo parâmetros
Alguns encurtadores de URL (bit.ly, TinyURL, encurtadores personalizados) podem não preservar a query string completa ao redirecionar.
Como diagnosticar:
Abra a URL encurtada em um navegador e verifique na barra de endereço se os parâmetros UTM aparecem depois do redirecionamento.
Como resolver:
Teste sempre o encurtador antes de usar em uma campanha. Prefira encurtadores que explicitamente preservam parâmetros. Para campanhas de alto volume, prefira URLs completas — a estética importa menos do que os dados.
Erro 5: Formulário na página errada (sem UTM na URL)
Se o script de captura de UTM lê apenas a URL da página atual, e o formulário está em uma URL diferente da landing page (sem UTMs), os campos virão vazios.
Exemplo:
- Anúncio aponta para:
/landing/?utm_source=google - Usuário clica em um botão e vai para:
/contato/(sem UTMs) - Formulário está em
/contato/— sem UTMs na URL atual
Como resolver:
Use um mecanismo que persiste os UTMs entre páginas (cookie, localStorage ou banco de dados server-side). Veja: Como descobrir de qual campanha veio um lead.
Erro 6: Campos ocultos não preenchidos antes do envio
Se você usa campos hidden no formulário e um script JavaScript para preenchê-los, o timing importa. Se o script executa depois da renderização do formulário — mas o usuário envia o formulário muito rápido — os campos podem estar vazios.
Também pode ocorrer em formulários multi-step do Elementor, onde campos de etapas anteriores podem ser resetados ao avançar para a próxima etapa.
Como diagnosticar:
Abra o DevTools → Console antes de enviar o formulário. Inspecione os valores dos campos hidden. Se estiverem vazios, o problema é no preenchimento.
Como resolver:
Garanta que o script executa no evento DOMContentLoaded e que
os campos são preenchidos antes de qualquer interação do usuário. Uma integração
nativa (como a do UTM Tracker DL com CF7 e Elementor) contorna esse problema
registrando a conversão server-side, não dependendo de campos no formulário.
Erro 7: Navegação entre páginas antes da conversão
O visitante clica no anúncio, navega por duas ou três páginas do site, e chega ao formulário. Se a captura de UTM depende da URL atual, os parâmetros da landing page original já someram.
Esse não é um "erro" de configuração — é uma limitação de abordagens baseadas apenas em URL. A solução é usar persistência entre páginas.
Erro 8: Cache servindo URL sem UTMs
Em sites com cache agressivo, a versão em cache de uma página pode não receber os parâmetros UTM corretamente — dependendo de como o plugin de cache está configurado para lidar com parâmetros de query string.
Como diagnosticar:
Acesse o site com uma URL UTM e use o DevTools (Network → Headers) para
verificar se o servidor retornou a página com X-Cache: HIT.
Se sim, o cache pode estar interferindo.
Como resolver:
Configure o plugin de cache para não cachear páginas com parâmetros UTM,
ou certifique-se de que o plugin de cache passa corretamente os parâmetros
de query string para o WordPress. A captura server-side (PHP, no hook init)
é menos afetada por cache de página do que scripts JavaScript que dependem
da URL do navegador.
Erro 9: Scripts de otimização (defer/delay) atrasando captura
Se o script que lê e armazena UTMs tem defer ou delay configurado (por plugins como WP Rocket ou LiteSpeed Cache), ele pode executar depois que o formulário já foi renderizado — ou nem executar se o usuário interagir antes.
Como resolver:
Exclua o script de rastreamento das listas de defer/delay do plugin de cache. Ou use uma abordagem server-side, que é executada no PHP antes de qualquer JavaScript — e portanto não é afetada por essas configurações.
Erro 10: Testar com a mesma sessão que configurou
Esse erro é mais sutil: você acessa o site para configurar e testar, e usa a mesma aba do navegador para testar os UTMs. O problema é que a sessão e o cookie já existem — você pode estar vendo dados de uma visita anterior sem UTMs.
Como testar corretamente:
- Use sempre uma aba anônima (incógnito) para testes
- Acesse via URL com UTMs de teste:
seusite.com.br/?utm_source=teste&utm_campaign=verificacao - Preencha e envie o formulário
- Verifique se o lead apareceu com os UTMs corretos no painel
Perguntas frequentes
?. Se desapareceram, algum redirecionamento os removeu. Se aparecem, o próximo passo é verificar se estão sendo capturados pelo seu sistema (formulário, plugin, GA).