Como Criar um Encurtador de URL
Um encurtador de URL guarda um endereço web longo sob um código curto e redireciona quem acessar o link curto. O núcleo é minúsculo — uma tabela e uma rota de redirecionamento — e por isso é um projeto clássico para começar. O que torna um encurtador real útil é o resto: um domínio curto, slugs personalizados, contagem de cliques, edição do destino de um link e impedir que spammers usem seu domínio para esconder links de phishing. Decida logo no início se ele é para você e sua equipe ou aberto ao público, porque encurtadores públicos atraem abuso rapidamente.
O que um encurtador de URL precisa
Dados
| Tabela | O que guarda |
|---|---|
| Links | Código curto, URL de destino, dono, título, data de criação, flag de ativo, validade opcional |
| Cliques | Link, horário, origem (referrer), país, tipo de dispositivo |
| Domínios (opcional) | Domínios curtos personalizados e seus donos |
Coloque um índice único no código curto. Dois links com o mesmo código é o único bug que precisa ser impossível.
Páginas e rotas
- A rota de redirecionamento —
/{código}busca o código e redireciona. É a única rota que a maioria dos visitantes realmente usa, então precisa ser rápida e nunca mostrar a interface do seu app. - Criar link — cole uma URL, opcionalmente escolha um slug personalizado e receba o link curto com um botão de copiar.
- Lista de links — seus links com contagem de cliques, busca e chaves para ligar e desligar.
- Detalhe do link — cliques ao longo do tempo, principais origens, países, dispositivos. Edite o destino.
- Página de não encontrado para códigos desconhecidos ou desativados.
- QR code para cada link — barato de adicionar e muito pedido.
Decisões e trade-offs
Tipo de redirecionamento. Um 301 (permanente) pode ser guardado em cache pelos navegadores, então visitantes recorrentes pulam seu servidor: você perde cliques e não consegue mudar o destino para eles. Use 302 ou 307 se você conta cliques ou permite edição. É o que fazem a maioria dos encurtadores com rastreamento.
Códigos curtos. Códigos aleatórios de seis ou sete caracteres (letras e dígitos) são difíceis de adivinhar e têm muito espaço. Evite caracteres confusos (0/O, 1/l) se as pessoas vão digitar os links à mão. Códigos sequenciais revelam quantos links você tem e permitem que qualquer um percorra todos.
Slugs personalizados. /lancamento vale mais que /x7Kp2q. Reserve palavras que seu app usa (login, api, admin), bloqueie slugs ofensivos se a ferramenta for pública e decida se os slugs diferenciam maiúsculas de minúsculas. Não diferenciar é mais amigável.
Velocidade. Um encurtador adiciona um passo antes de cada visita. Mantenha a rota de redirecionamento em uma única busca indexada, e registre o clique depois de enviar o redirecionamento (ou em segundo plano), para que o rastreamento nunca atrase o visitante. Apps em hospedagens que entram em espera quando ociosas podem demorar um pouco mais na primeira visita depois de um período parado; para uma ferramenta pessoal ou de equipe, isso geralmente é aceitável.
Análise de cliques e privacidade. Contar cliques, origens e um país aproximado é padrão. Guardar endereços IP completos e montar perfis de indivíduos é onde a lei de privacidade começa a valer. Guarde o que você realmente vai olhar e agregue sempre que possível. Veja como adicionar análise de dados ao seu app.
O domínio. O link só é tão curto quanto o seu domínio. Compre um domínio curto e aponte-o para o app — veja como conectar um domínio personalizado. Muitas hospedagens preferem um subdomínio (go.suamarca.com) a um domínio raiz, porque é mais simples de conectar.
Abuso. Se qualquer um pode criar links, spammers vão usar seu domínio para disfarçar phishing e malware, e seu domínio pode acabar em listas de bloqueio. Para um encurtador público: exija contas, limite a criação de links, verifique os destinos em uma lista de URLs maliciosas como o Google Safe Browsing, bloqueie links para o próprio encurtador (loops de redirecionamento) e crie uma chave de administração para desativar qualquer link na hora. Um encurtador privado, só para a equipe, evita a maior parte disso.
Um primeiro prompt que funciona
Crie um app web de encurtador de URL para minha equipe. Usuários logados colam uma URL de destino e recebem um link curto com um código aleatório de 7 caracteres (sem 0, O, 1 ou l), ou escolhem um slug personalizado. Os slugs são únicos e não diferenciam maiúsculas de minúsculas; reserve login, api, admin, app e settings. A rota pública /{código} busca o código com uma única consulta indexada e retorna um redirecionamento 302; registre o clique (horário, origem, país, tipo de dispositivo — sem endereço IP completo) sem atrasar o redirecionamento. Códigos desconhecidos ou desativados mostram uma página simples de não encontrado. Os usuários veem a lista dos seus links com contagem de cliques, podem editar o destino, desativar um link, baixar um QR code e abrir uma página de detalhes com cliques por dia, principais origens e países. Valide que os destinos são URLs http ou https e não links para este encurtador. Guarde tudo em um banco de dados.
Etapas de criação
- Criar e redirecionar. Crie um link e abra em uma janela privada. Confirme que a resposta é um 302, e não uma página que redireciona com JavaScript depois.
- Códigos e slugs. Teste um slug duplicado, uma palavra reservada, letras maiúsculas e minúsculas misturadas e uma URL muito longa.
- Rastreamento de cliques. Clique a partir de alguns dispositivos e confira as contagens e as origens.
- Editar e desativar. Mude um destino e confirme que o link curto antigo agora vai para o novo lugar; desative um e confirme que ele para de funcionar.
- Validação. Teste links
javascript:, links para o próprio encurtador e URLs malformadas. Todos devem ser rejeitados no servidor. - Domínio. Conecte seu domínio curto e teste links nele.
- Controles contra abuso, se a ferramenta for pública: limites de taxa, verificação de destino e uma visão de administração dos links recentes.
Erros comuns
- Redirecionamentos 301 com rastreamento de cliques. Os navegadores guardam em cache e seus números ficam errados.
- Redirecionar dentro da página. Carregar o app e só então redirecionar com JavaScript deixa cada clique lento. Redirecione pelo servidor.
- Sem restrição de unicidade nos códigos. Colisões acontecerão um dia.
- Encurtador público aberto, sem controles. Ele será abusado, e a reputação do seu domínio vai junto.
- Aceitar qualquer esquema de URL. Permita apenas destinos http e https.
- Perder links ao mudar. Seja dono do domínio curto para que os links sobrevivam a uma troca de hospedagem.
Quando um produto pronto é a melhor escolha
Serviços consolidados de gerenciamento de links oferecem domínios de marca, análises detalhadas, recursos de equipe, QR codes, integrações e tratamento de abuso prontos para uso. Se os links são centrais para o seu marketing e você não quer manutenção, pague por um.
Crie o seu quando quiser um encurtador simples de equipe no seu próprio domínio, sem preço por usuário, links ligados ao seu próprio produto (links de compartilhamento, links de indicação, links rastreados em e-mails) ou controle total dos dados de cliques. Também é um bom primeiro projeto de backend. Combine com uma página de link na bio e passe pelo checklist de segurança para apps criados com IA antes de abri-lo para qualquer pessoa.
Criando com a Mythex
Na Mythex você descreve o encurtador no chat e testa os redirecionamentos no preview ao vivo. A Mythex adiciona um banco de dados dedicado para links e cliques quando o app precisa. Apps publicados e seus bancos de dados entram em modo de espera quando ociosos e voltam na próxima visita, o que mantém um encurtador pouco usado barato de rodar. Publique em um link mythex.ai e, no plano Pro, conecte seu próprio domínio curto ou compre um dentro da Mythex — veja domínios personalizados. O template de encurtador de URL é um prompt inicial pronto, com slugs personalizados e análise de cliques.
Perguntas
Um encurtador de URL deve usar redirecionamento 301 ou 302?
Um 301 diz aos navegadores que a mudança é permanente, então eles podem guardar o redirecionamento em cache e pular seu servidor na próxima vez, o que significa cliques não contados e links que você não consegue mais alterar. A maioria dos encurtadores que contam cliques ou permitem edição usa redirecionamentos temporários 302 ou 307.
Como os códigos curtos são gerados?
Ou como strings aleatórias de letras e números, verificadas contra os códigos existentes, ou codificando o ID do banco de dados em base 62. Códigos aleatórios são mais difíceis de adivinhar; códigos sequenciais revelam quantos links existem. Seis ou sete caracteres aleatórios dão bilhões de combinações.
Preciso de um domínio curto?
Não para funcionar, mas a graça de um encurtador é um link curto e confiável. Um domínio curto próprio também garante que os links continuem funcionando se você mudar de hospedagem.
Como impedir que pessoas abusem de um encurtador de URL público?
Exija cadastro para criar links, limite a taxa de criação de links, verifique os destinos em uma lista de URLs maliciosas como o Google Safe Browsing, bloqueie o seu próprio domínio como destino e tenha uma forma rápida de desativar links.