25/06/2026

Suporte Shopify na prática: a loja estava travando 60 segundos por causa de uma fonte

Uma loja de moda australiana no Shopify carregando em mais de 60 segundos. O culpado era um arquivo de fonte de um serviço que fechou em 2021. Como diagnostiquei, o que medi antes e depois, e o que mais encontrei no caminho.

Suporte Shopify na prática: a loja estava travando 60 segundos por causa de uma fonte

A CEO de uma marca australiana de moda me chamou com uma descrição bem vaga: "o site está lento, e os clientes não estão conseguindo efetuar compra". Loja Shopify, tema legado, faturamento real rodando em cima.

Abri o site no navegador pra medir. Não carregou. Passou de 60 segundos e o teste estourou por timeout, sem nem chegar no domContentLoaded. Não era "lento": era um site que simplesmente não terminava de abrir.

A causa era mais estranha do que parecia. E a parte útil dessa história não é o conserto (foi uma linha) e sim o caminho até achar a linha.

Primeiro: culpar o serviço é quase sempre errado

O reflexo comum quando uma loja está lenta é acusar a hospedagem / plataforma. Em Shopify isso quase nunca se sustenta, mas eu precisava provar em vez de supor.

Medi o HTML direto:

curl -s -o /dev/null -w "HTTP:%{http_code} ttfb:%{time_starttransfer}s\n" https://loja.com
# HTTP:200 ttfb:0.44s

440 milissegundos até o primeiro byte. O servidor da Shopify estava saudável. Então o travamento de 60 segundos estava acontecendo depois que o HTML chegava, ou seja: em algum recurso externo que a página pedia.

A causa raiz: uma fonte de um serviço que não existe mais

Abri o <head> do tema e listei todos os domínios de terceiros. Testei um por um. Quase todos respondiam em menos de 200ms. Um destoava:

https://cloud.typography.com/.../.../css/fonts.css

Esse arquivo respondia 302 (redirecionamento) apontando pra outro endereço:

https://...worldsecuresystems.com/...font/...css

E aí a ficha caiu. worldsecuresystems.com era o domínio do Adobe Business Catalyst, uma plataforma que a Adobe desligou em 2021. O domínio não está fora do ar temporariamente: ele foi apagado do DNS. Nem o DNS público do Google resolve.

curl -m 60 "https://...worldsecuresystems.com/...font/...css"
# exit 6: Could not resolve host

O detalhe que transforma isso num travamento total: a tag era <link rel="stylesheet"> dentro do <head>. CSS nessa posição é render-blocking por especificação. O navegador se recusa a desenhar qualquer pixel enquanto não terminar de baixar aquele arquivo.

Ou seja: a loja ficava de portas fechadas esperando uma entrega de um fornecedor que faliu cinco anos atrás.

O que os números diziam

O que testeiResultado
Servidor Shopify (HTML)200, TTFB 0,44s
CDN da Shopify (controle de rede)0,08s
Domínio da fonte no DNS do GoogleNão resolve
O fonts.css em produção902ms para receber 0 bytes
Navegador abrindo o siteTimeout em 60s

Naquele "902ms para 0 bytes" a página gastava quase um segundo esperando um arquivo vazio, e isso já com o DNS negativo em cache. Pra um visitante novo, o custo era o travamento inteiro.

A correção e o medo legítimo de removê-la

A correção óbvia era apagar a linha. Mas apagar uma fonte de um site de moda é o tipo de coisa que quebra a identidade visual da marca inteira, então não dá pra sair deletando.

Antes de mexer, procurei onde aquelas fontes eram usadas de fato:

grep -rniE "gotham|whitney|mercury|sentinel" assets/

Achei três lugares usando a família Gotham. E todos os três já tinham fonte reserva declarada:

font-family: "Gotham SSm A", "Gotham SSm B", gotham, Arial, sans-serif;

Essa descoberta muda tudo. Como o serviço está morto, o site já vinha renderizando com a fonte reserva. Removendo o link, a aparência não muda em nada: só para de esperar por algo que nunca chega.

Esse é o tipo de verificação que separa suporte profissional de "achei uma linha suspeita e apaguei". A remoção levou dez segundos. A confiança pra fazer a remoção levou o trabalho todo.

O antes e depois, medido

Não gosto de entregar performance por promessa. Montei as duas versões da página (com e sem a linha), servi as duas localmente na mesma máquina e mesma rede, e medi no navegador real:

MétricaAntesDepois
First Paint336ms72ms
First Contentful Paint352ms88ms
DOMContentLoaded460ms93ms

4x mais rápido pro conteúdo aparecer. E esses números são conservadores, porque o teste rodou com o navegador já sabendo que o domínio estava morto. Pra quem chega pela primeira vez, a diferença era entre ver a loja e desistir dela.

Numa loja de moda de luxo, isso não é métrica de vaidade. É carrinho abandonado antes da primeira foto carregar.

O que mais apareceu na auditoria

Quando você abre o <head> de um tema legado pra investigar uma coisa, sempre acha outras. Aproveitei a viagem:

Tags de hreflang quebradas. Cinco tags de idioma faziam uma substituição de texto trocando um domínio por ele mesmo (um "replace" de .com.au por .com.au), e ainda apontavam pro domínio antigo, que responde com redirecionamento de 1,5s. Isso é problema de SEO, não de velocidade, mas estava errado desde sempre.

Dois rastreadores fantasmas. O tema carregava CrazyEgg e Convert Experiments em toda página. Testei os dois:

  • CrazyEgg devolvia HTTP 200 com arquivo vazio (a conta existe, mas sem plano ativo)
  • Convert Experiments devolvia literalmente {"error":true,"code":"wrongConfig-dataError"}, exatamente a mesma resposta que um ID inventado por mim

Confirmei no navegador que nenhum dos dois criava suas variáveis globais nem enviava um único dado. Ou seja: nenhum mapa de calor estava sendo gravado e nenhum teste A/B estava rodando há sabe-se lá quanto tempo. A cliente possivelmente ainda pagava por ferramentas que não funcionavam. Esse achado sozinho pode valer mais que o conserto.

O que eu decidi NÃO fazer

Essa parte é a que mais me orgulha do trabalho, e a que ninguém vê.

O tema tinha oito scripts bloqueantes no <head>, jQuery incluso. O manual mandaria colocar defer em todos e sair comemorando ganho de Lighthouse.

Fui verificar antes. Encontrei 22 arquivos do tema chamando $(...) inline, executados durante a leitura do HTML, e um document.write num snippet de cross-sell. Ambas as coisas são incompatíveis com defer: os scripts inline rodariam antes do jQuery existir e o site quebraria em produção.

Então apliquei defer só onde era comprovadamente seguro (a galeria de imagens, usada depois da renderização) e documentei o resto como refatoração separada, com escopo e risco explicados.

Por que isso é suporte Shopify e não "mexer no código"

Trabalho com Shopify desde 2016 como Shopify Partner, atendendo lojas na Austrália, Estados Unidos, Europa e Brasil. Se você quiser o contexto de como isso funciona, escrevi sobre no post de especialista Shopify no Brasil.

O que esse caso mostra bem é a diferença entre suporte de verdade e troca de linha:

  1. Diagnóstico com medição, não com palpite. Isolei servidor, rede, DNS e cada terceiro antes de acusar qualquer um.
  2. Verificação antes de remover. Confirmei que a fonte já não carregava pra ninguém antes de apagar a linha.
  3. Prova de resultado. Medi antes e depois no navegador real, não mostrei estimativa.
  4. Escopo honesto. Falei o que não fiz, por quê, e quanto custaria fazer.
  5. Achados extras que viram dinheiro. As duas ferramentas mortas eram possivelmente cobrança recorrente por nada.

Tema legado de Shopify é assim: acumula dez anos de integrações, apps desinstalados pela metade, serviços que fecharam e ninguém removeu. O trabalho não é reescrever tudo. É achar o que está sangrando e parar o sangramento sem quebrar o resto.

Resumo

Se a sua loja Shopify está lenta:

  • Meça o servidor primeiro. TTFB alto é problema de hospedagem. TTFB baixo com página lenta é problema de recurso externo, e a Shopify raramente é culpada.
  • Audite os domínios de terceiros do <head>. Serviços fecham. Ninguém avisa. O código continua pedindo o arquivo pra sempre.
  • Desconfie de CSS e fontes em <head>. É a categoria que trava a renderização inteira, diferente de script com async, que só atrasa.
  • Cheque se seus rastreadores rastreiam. Conta cancelada continua carregando o script e continua custando velocidade.
  • Não aplique defer em bloco num tema jQuery antigo sem antes procurar chamadas inline e document.write.

Precisa de suporte Shopify?

Atendo lojas Shopify na Austrália, Estados Unidos, Europa e Brasil: suporte contínuo, auditoria de performance, customização de tema, migração e implementação do zero.

Se a sua loja está lenta, com comportamento estranho, ou você só quer uma segunda opinião técnica sobre o que tem dentro do seu tema, me chama.

Referências

#shopify#performance#ecommerce#seo

Tags

Se eu te ajudei de alguma forma e você quiser retribuir, pode me pagar um café ☕ ou ainda usar um dos meus links de indicação para abrir conta em serviços como Asaas, Bunny, Clara, assinar conteúdos gratuitos ou usar serviços recomendados.

Você pode me encontrar no: Github, Behance, LinkedIn, YouTube, Instagram, X ou por email hello@marciotoledo.com!

© 2002 - 2026 | Marcio Toledo. Todos os direitos reservados. For LLMs