Gerador de Slug de URL
Transforme um título em um caminho de URL limpo — kebab-case, minúsculas, sem acentos
Título ou texto
Slug
O que é o Gerador de Slug de URL?
Você escreveu um post intitulado "Como Analisar uma URL em JavaScript — Guia do Dono de Café (Edição 2026)" e agora precisa de um caminho de URL para ele. Você não quer %E2%80%94 ali, não quer espaços, não quer maiúsculas que quebram em servidores que diferenciam caso. Você quer como-analisar-uma-url-em-javascript-guia-do-dono-de-cafe-edicao-2026. É isso que esta ferramenta faz. Cole o título, copie o slug. O termo em si vem do mundo editorial — veja o verbete da Wikipédia sobre URLs amigáveis para a etimologia.
O algoritmo é o padrão. Coloque em minúsculas, depois execute String.prototype.normalize('NFD') para decompor caracteres Unicode em letra base mais marcas combinantes. Remova as marcas (assim é vira e, ç vira c). Trate algumas ligaduras comuns na mão — æ vira ae, ø vira o, ß vira ss, ł vira l. Substitua qualquer sequência de caracteres não-alfanuméricos por um único hífen. Apare hífens iniciais e finais. Limite a 80 caracteres em uma fronteira de palavra para não acabar com um slug cortado no meio de uma palavra.
Por que kebab-case? Porque hífens são a convenção. As diretrizes de estrutura de URL do Google recomendam hífens em vez de underscores para separar palavras em URLs — buscadores interpretam hífens como fronteiras de palavra. A RFC 3986 define os caracteres não reservados em um caminho URL (letras, dígitos, hífen, ponto, underscore, til) e a maioria das convenções de slug fica em um subconjunto deles. Snake_case (meu_post) e Title-Case-Slug (Meu-Post) são alternativas que aparecem, mas kebab-case minúsculo é o padrão em todo lugar, da prática de URLs limpas aos defaults da maioria dos CMS.
Como usar o gerador de slug
Três passos. Cada um corresponde a um botão nesta página.
Cole um título ou carregue o exemplo
Coloque um título, manchete, nome de produto ou qualquer texto no painel da esquerda. Clique em Exemplo para carregar um exemplo realista com travessões, acentos e parênteses — o tipo de título que quebra código de slug ingênuo. Entrada de exemplo:
Como Analisar uma URL em JavaScript — Guia do Dono de Café (Edição 2026)Vale tudo — emojis, letras acentuadas, aspas tipográficas, travessões, hífens duplos, espaços múltiplos. O slug sai limpo.
Leia o slug
O painel da direita mostra o slug enquanto você digita. Minúsculas, hifenizado, só ASCII, limitado a 80 caracteres em uma fronteira de palavra. Se a entrada não tiver caracteres aproveitáveis para slug (por exemplo, só emojis ou só pontuação), você verá uma nota amigável em vez de um resultado vazio confuso.
Copie ou baixe
Clique em Copiar para enviar o slug para a área de transferência, ou Baixar para salvá-lo como arquivo .txt. Use Limpar no painel de entrada para começar de novo com um título novo.
Quando você usaria isto de verdade
URLs de posts de blog
Seu CMS gera slugs automaticamente, mas eles ficam feios — remove acentos errado, deixa underscores, não trata aspas tipográficas. Você cola o título aqui, recebe um slug limpo, e cola de volta no campo de URL. Funciona para WordPress, Ghost, blogs Next.js feitos à mão, qualquer coisa que permita sobrescrever o slug.
URLs de produtos ou categorias em e-commerce
Marco Rivera adiciona um produto novo chamado "Conjunto Crème Brûlée — Pack de 4 (Edição Limitada)". A URL precisa ser /produtos/conjunto-creme-brulee-pack-de-4-edicao-limitada, não /produtos/Conjunto+Crème+Brûlée+%E2%80%94+Pack+de+4+%28Edição+Limitada%29. Slugifica e usa.
Nomes de arquivos a partir de títulos digitados por humanos
Você está salvando documentos enviados em disco e o cliente digitou "Relatório Q4 — Final (v3).docx" como título. Você não quer isso como nome de arquivo. Slugifique o título, anexe .docx, escreva o arquivo. Funciona igual para chaves S3, nomes de branches do GitHub a partir de títulos de issues, e nomes de canais do Slack a partir de nomes de projetos.
Migrar conteúdo de outro CMS
Priya Patel está migrando 800 artigos de um CMS legado para um novo e os títulos de origem têm encoding inconsistente — alguns acentuados, outros não, alguns com emojis de um redesenho de 2018. Passe cada título pelo slugger, deduplica, e você tem o novo mapa de URLs pronto para a tabela de redirecionamento.
Perguntas Frequentes
Por que vocês removem os acentos em vez de fazer percent-encoding?
Porque o slug é feito para ser legível por humanos. café no slug vira %C3%A9 na URL real, o que fica horrível na barra do navegador, quebra copy-paste em chats, e confunde leitores não técnicos. Reduzir a ASCII mantém a URL legível e amigável para SEO. A normalização NFD é a forma padrão de fazer essa decomposição.
E quanto a alfabetos não latinos — chinês, árabe, hindi?
NFD não decompõe ideogramas nem alfabetos que não têm estrutura base+marca-combinante. Então um título em chinês vai produzir um slug vazio aqui, e você verá a mensagem "sem caracteres aproveitáveis para slug". Para alfabetos não latinos você tem duas opções: transliterar primeiro (usando uma lib como ICU ou unidecode), ou usar o alfabeto original na URL — navegadores modernos e o Google lidam com Unicode em URLs sem problema, só fica menos bonito.
Por que limitar a 80 caracteres?
Não há regra rígida, mas URLs que passam de ~80 caracteres no segmento de caminho começam a quebrar mal em emails, prévias sociais, e impressos. A orientação do Google não fixa um número, mas recomenda URLs "simples e descritivas" — longas não são nem uma coisa nem outra. O limite encontra o último hífen antes dos 80 caracteres para evitar corte no meio da palavra.
Lida com emojis?
Sim. Emojis são removidos junto com outros caracteres não-alfanuméricos. Então "🎉 Novo Lançamento! 🚀" vira novo-lancamento. Se seu slug acabar vazio (entrada só com emojis), você recebe a nota amigável de slug vazio em vez de uma URL quebrada.
Qual a diferença entre isto e fazer URL-encoding do título?
URL-encoding mantém todo caractere mas escapa os inseguros — então espaços viram %20, acentos viram bytes UTF-8 percent-escapados. O resultado é uma URL válida mas ilegível. Um slug é outra coisa: um segmento de caminho amigável que joga fora os caracteres que não pertencem ali. Use URL-encoding para parâmetros de query, slugs para segmentos de caminho. O WHATWG URL Standard tem as definições precisas dos dois.
Devo usar kebab-case ou snake_case?
Kebab-case (meu-post) para URLs — essa é a convenção e é o que buscadores tratam como separador de palavras. Snake_case (meu_post) é OK para nomes de variáveis e identificadores de banco, mas em URLs underscores são frequentemente tratados como parte da palavra, prejudicando o SEO. Esta ferramenta usa kebab por padrão. Se precisar de snake, faça find-and-replace dos hífens na saída.
Outras Ferramentas de URL e Texto
Um slug é uma peça de uma URL. Aqui está o que combina com ele: