Por que meu QR code parou? Quatro causas e como saber
Um QR code impresso que parou de funcionar tem uma de quatro causas. O link dentro dele mostra qual é e se o conserto está ao seu alcance.
O que há de novo aqui: Uma observação datada (18 de outubro de 2026): um código desativado no domínio curto de um grande gerador responde HTTP 200 com uma página de «conta desativada» em vez de um 404, então uma verificação de status o considera saudável. Inclui ainda uma tabela de vereditos gerada pelas regras do nosso próprio verificador de QR code, que qualquer pessoa pode testar na página do verificador.
Um QR code que funcionava quase nunca se estraga no papel. A tinta não expira. Quando um código impresso para de funcionar, aconteceu uma de quatro coisas: a empresa por trás do link curto desativou esse link, a página para a qual ele aponta mudou de lugar, a impressão não consegue ser lida ou o código foi criado com um erro de digitação. O link dentro do código mostra qual delas é em menos de um minuto, e só a primeira está fora do seu alcance.
# O teste de 30 segundos: leia o link dentro do código
Aponte a câmera do celular para o código e olhe a pré-visualização antes de tocar. Ou envie uma foto para o nosso verificador de QR code gratuito, que mostra a mesma coisa e depois segue todos os redirecionamentos que houver por trás. São três resultados possíveis:
- Nada aparece. O celular não consegue ler o código. É um problema de impressão (causa 3), e nenhuma mexida nos links vai resolver.
- Aparece o seu próprio endereço (
suacafeteria.com/cardapio). O código é estático: o endereço está desenhado nos quadradinhos, não há nada no meio e ninguém pode desativá-lo. Se ele falha, o problema é a página (causa 2) ou um erro de digitação no endereço (causa 4). - Aparece um link curto no domínio de outra empresa (algumas letras, uma barra, um código curto). O código é dinâmico: ele leva primeiro ao gerador, e o gerador encaminha a pessoa para o destino que o dono configurou. Se ele falha, muito provavelmente o encaminhamento foi desativado (causa 1).
Esse terceiro caso é o mais difícil de diagnosticar, por um motivo que merece uma seção só dele.
# Um código desativado ainda abre uma página, com HTTP 200
Você poderia esperar que um código morto devolvesse um erro. Em 18 de outubro de 2026,
verificamos um código desativado em qrco.de, o domínio curto usado pelo QR Code Generator
(QRCG, da Bitly). Ele não redirecionava para lugar nenhum e não devolvia erro. O link curto
respondia:
HTTP/2 200
content-type: text/html; charset=UTF-8
e a página entregue continha um único componente,
<qrcg-web-component-error-account-disabled>, que mostra um aviso de «conta desativada». Não
publicamos o caminho do código, porque é o código de outra pessoa.
Dessa única resposta saem três consequências:
- O código continua sendo lido. O celular do seu cliente abre uma página, só que não a sua. É por isso que o relato mais comum é «o QR code funciona, mas mostra uma coisa estranha».
- Uma verificação simples de link o considera saudável. HTTP 200 significa «OK». Qualquer monitor de disponibilidade ou ferramenta de links quebrados que leia só códigos de status vai marcar esse código como normal. É preciso olhar o que a página diz.
- O link indica quem pode resolver. O domínio do código (aqui,
qrco.de) pertence ao gerador. Ele é a única parte que pode reativar esse link.
Isso bate com o que a própria central de ajuda do gerador diz sobre o fim de um teste gratuito: «Dynamic QR Codes are deactivated and point to a service page rather than the original destination» (os QR codes dinâmicos são desativados e apontam para uma página de serviço em vez do destino original). As páginas de códigos desativados de outros geradores são diferentes. Alguns redirecionam para uma página de aviso em vez de exibi-la no próprio link curto. Uma observação em um dia é um exemplo, não uma pesquisa.
O nosso verificador procura exatamente isso. Quando a página no fim da cadeia parece um aviso de «este código foi desativado», seja pelo título, pelo endereço ou por um pequeno conjunto de frases no HTML, como «account disabled», ele avisa, mesmo que o status seja 200.
# Causa 1: o gerador desativou o link curto
Esta é a que acontece com quem não fez nada de errado. Um código dinâmico passa pelo link curto do gerador, e esse link só funciona enquanto o gerador o mantém ativo. Os gatilhos mais comuns, cada um descrito nas páginas de ajuda dos próprios geradores:
- Um teste gratuito terminou. Os códigos dinâmicos gratuitos de alguns geradores param de redirecionar quando o teste acaba.
- Uma assinatura venceu ou um pagamento falhou.
- O limite de leituras do plano gratuito foi atingido. Central de ajuda da QR TIGER: «Dynamic QR codes created with a Freemium account have a predetermined limit on the number of scans they can receive. Once this limit is reached, the QR code becomes inactive» (os QR codes dinâmicos criados com uma conta Freemium têm um limite predeterminado de leituras; ao atingi-lo, o QR code fica inativo).
- O código ou a conta foi excluído, muitas vezes por um colega arrumando um painel, ou quando saiu a pessoa que era dona da conta.
Como saber: o link dentro do código está em um domínio que não é seu, e a página em que você cai é um aviso, um convite para assinar um plano ou uma tela em branco, em vez do seu conteúdo.
O que fazer: o código impresso aponta para o endereço da outra empresa, então só ela pode reativá-lo. As suas escolhas reais são reativá-lo com ela ou reimprimir uma única vez com um código que não vai parar. Se você não tem certeza de qual é o seu caso, o verificador de QR code mostra de quem é o link curto que está no código.
# Causa 2: a página para a qual ele aponta mudou de lugar ou foi excluída
O código funciona perfeitamente e leva o visitante a uma página que não existe mais. Uma
reformulação do site trocou /cardapio por /nosso-cardapio, um PDF foi substituído por um
arquivo com outro nome, ou o site inteiro saiu do ar.
Como saber: o link dentro do código é o seu endereço (ou um link curto que encaminha para
o seu endereço) e você cai em uma página de «não encontrado», normalmente HTTP 404. Se o
endereço começa com http:// e o site só serve https://, alguns celulares também mostram
um aviso ou se recusam a carregar.
O que fazer:
- Se o código é estático, coloque uma página de volta nesse endereço exato, ou configure no seu próprio site um redirecionamento do endereço antigo para o novo. Sua hospedagem ou seu construtor de sites pode fazer isso, e resolve todas as cópias impressas de uma vez.
- Se é um código dinâmico que você ainda controla, mude o destino para a página nova. Sem reimpressão.
# Causa 3: a impressão não consegue ser lida
Como saber: a câmera do celular não mostra link nenhum, ou só lê o código em um ângulo e uma distância específicos. Teste também com outro celular: se um aparelho recente lê sem dificuldade e um mais antigo não, o código está no limite, não quebrado.
Os suspeitos de sempre:
- Pequeno demais para o conteúdo. Um código é uma grade de módulos, e um link mais longo significa mais módulos espremidos no mesmo espaço. Nas nossas medições de tamanho de impressão, um link curto de 21 caracteres vira 25 módulos de largura no nível de correção de erros M, e uma URL de produto de 116 caracteres vira 45. Na mesma largura de 25 mm, isso dá módulos de 0,76 mm contra 0,47 mm.
- Sem zona de silêncio. O padrão pede quatro módulos de espaço em branco em todos os lados, e os leitores usam essa margem para achar as bordas do código. Uma moldura, uma foto ou um texto encostados no código são uma causa frequente.
- Pouco contraste. Módulos escuros sobre fundo claro. Claro sobre escuro, cores pálidas ou um código impresso sobre uma imagem cheia de detalhes dificultam o trabalho do leitor.
- Danos e superfície. Arranhões, desbotamento, dobras, reflexo da plastificação ou um código enrolado em uma garrafa curva.
O que fazer: reimprima. Deixe maior, devolva a zona de silêncio e teste a cópia impressa no lugar onde as pessoas vão ler, com o pior celular que você encontrar.
# Causa 4: um código estático com erro de digitação
Um código estático é o endereço desenhado em quadradinhos, então um erro de digitação também
fica desenhado: cafe.com/menu codificado como cafe.com/mneu, ou um domínio escrito errado.
Como saber: o link dentro do código é quase o seu endereço, mas não exatamente. Um caminho errado resulta em uma página de «não encontrado» no seu próprio site. Um domínio escrito errado geralmente não dá resposta nenhuma.
O que fazer: se o erro está no caminho do seu próprio site, adicione um redirecionamento do caminho errado para a página certa (a mesma solução da causa 2). Se o erro está no domínio e ele não é seu, não há conserto do seu lado. Reimprima.
# O que o verificador conclui, caso a caso
Aqui está o mesmo diagnóstico passado pelo código por trás do nosso verificador de QR code,
com sete respostas de exemplo, uma para cada situação acima. A consulta é simulada (sem códigos reais,
só domínios de exemplo), então esta tabela mostra o que o verificador conclui de cada tipo de
resposta, não o que o código de uma empresa específica faz hoje. O caso 5 reproduz o corpo
da resposta de qrco.de de 18 de outubro.
| Caso | Link no código | Saltos (status) | Veredito | Aviso de desativado |
|---|---|---|---|---|
| Estático, página no ar | https://www.cafe.example/menu |
www.cafe.example (200) | static | não |
| Estático, página movida | https://www.cafe.example/old-menu |
www.cafe.example (404) | broken | não |
| Estático, erro de digitação no domínio | https://www.cfae.example/menu |
www.cfae.example (inacessível) | broken | não |
| Link curto, ativo | https://short.example/Ab12Cd |
short.example (301) → www.cafe.example (200) | redirect | não |
| Código curto, página de conta desativada | https://qr.example/Xy34Zw |
qr.example (200) | hosted | sim |
| Link curto, para uma página de «desativado» | https://short.example/Zz99Yy |
short.example (302) → generator.example (200) | redirect | sim |
| Código do MostlyQR | https://mqr.sh/AB12CD |
mqr.sh (302) → www.cafe.example (200) | mostlyqr | não |
Como ler:
- static: não há outro site na cadeia. Nada pode desativá-lo; ele funciona enquanto a página existir.
- redirect: o código passa antes pelo link curto de outro site. Esse site decide para onde ele vai, e o domínio dele é o primeiro salto da cadeia.
- hosted: não há redirecionamento, mas o link é um código curto em um site que serve a própria página (caso 5). A menos que esse site seja seu, quem o administra controla o código.
- broken: a cadeia termina em um erro ou nunca responde.
- Aviso de desativado é uma marca separada, somada ao veredito. Olhe os casos 5 e 6: os dois devolvem 200 no fim da cadeia, e a marca de aviso é a única coisa que os separa de um código que funciona.
A tabela é gerada, não digitada: passamos as regras do próprio verificador de QR code por cada resposta de exemplo e copiamos os vereditos. Você pode testar qualquer código real do mesmo jeito na página do verificador.
# O que este artigo não cobre
- Um gerador, um dia. A resposta de
qrco.deé uma única observação de 18 de outubro de 2026. Os códigos desativados de outros geradores se comportam de outro jeito, e qualquer um deles pode mudar o que faz. - Os limites do verificador. Ele segue no máximo oito saltos, desiste depois de oito segundos, lê só os primeiros 64 KB de uma página e identifica um aviso a partir de uma lista curta de frases. Um aviso escrito de outra forma recebe um veredito, mas não a marca. E um veredito «redirect» diz quem controla o código. Não diz que o código está quebrado.
- Problemas de impressão não são diagnosticados por um verificador de links. Se o celular não consegue ler o código, não há link para verificar. O verificador só consegue ler uma foto nítida.
# A versão curta
- Leia o link dentro do código com a pré-visualização da câmera ou com o verificador de QR code.
- Nada é lido: reimprima maior, com a zona de silêncio, e teste a cópia em papel.
- O seu próprio endereço: corrija a página ou adicione um redirecionamento no seu site. Se o domínio está escrito errado, reimprima.
- O link curto de outra empresa caindo em um aviso: só essa empresa pode reativá-lo.
Se você acabar reimprimindo, escolha com critério. Um código estático não pode ser desativado, mas também não pode ser alterado. Um QR code dinâmico pode ser alterado depois de impresso, mas depende da empresa por trás dele. Os nossos continuam redirecionando para o último destino salvo mesmo que você cancele um plano pago, enquanto você mantiver a sua conta gratuita e o MostlyQR estiver no ar. Você pode criar um substituto aqui; o primeiro código dinâmico é grátis, sem cartão.
Perguntas frequentes
Por que meu QR code parou de funcionar se nada mudou?
Em geral porque o código guarda um link curto no domínio do gerador, e não o seu próprio endereço, e o gerador desativou esse link: um teste gratuito terminou, uma assinatura venceu ou o limite de leituras do plano gratuito foi atingido. O desenho impresso está bom. Só a empresa dona do domínio curto pode reativá-lo.
Como saber se meu QR code é estático ou dinâmico?
Veja o link dentro dele, na pré-visualização da câmera do celular antes de tocar ou com um verificador de QR code. Se for o endereço do seu próprio site, o código é estático. Se for um link curto no domínio de outra empresa, o código é dinâmico e essa empresa decide para onde ele leva.
Um QR code pode expirar sozinho?
Não. O desenho impresso não tem data nenhuma. Um código estático funciona enquanto a página para a qual aponta existir. Um código dinâmico funciona enquanto a empresa por trás do link curto o mantiver ativo.
Meu celular não reage ao QR code. O que houve?
É um problema de impressão, não de link. O código está pequeno demais para a distância de leitura, tem pouco contraste, está danificado ou não tem a margem em branco (a zona de silêncio) ao redor. Reimprima maior, escuro sobre claro, com quatro módulos de espaço em branco em todos os lados, e teste a cópia impressa, não o arquivo.