Pular para o conteúdo principal

Gerador de slugs

Este gerador transforma qualquer título em um slug de URL limpo: texto Unicode é normalizado com NFKD para que acentos desapareçam, sequências de caracteres não alfanuméricos são reduzidas a um único separador, e tudo é convertido para minúsculas. A ferramenta é executada inteiramente no seu navegador, e o separador é sua escolha.

Só local

Gerador de slugs: explicação

Um slug é a parte de uma URL escolhida por pessoas, pois URLs são lidas por humanos, citadas em e-mails, indexadas por mecanismos de busca e comparadas como strings. Letras minúsculas, dígitos e o separador hífen sobrevivem a esses quatro usos sem causar surpresas.

Chegar lá a partir de títulos reais — cheios de acentos, pontuação e maiúsculas — é um processo, não uma única chamada de substituição. A normalização NFKD remove acentos e resolve formas de compatibilidade como a ligatura fi; apóstrofos são removidos, então don't se torna dont; sequências de caracteres não alfanuméricos são reduzidas a um único separador; tudo é convertido para minúsculas e sem espaços extras.

A honestidade sobre o escopo é importante, porque a normalização não é tradução: o NFKD funciona apenas com caracteres que podem ser decompostos — acentos, ligaturas, letras de largura total. Scripts sem decomposição em latim, como árabe, hebraico ou chinês, não são normalizados, e esta página informa o que acontece em vez de inventar uma transliteração. Tudo é executado no seu navegador.

A conversão para minúsculas é fixada por convenção de slug, mas o texto ao redor de um link geralmente precisa de outro tratamento — o conversor de maiúsculas e minúsculas lida com a Capitalização de Títulos, camelCase e demais formatos.

Slugs existem para evitar a codificação por completo; quando uma URL precisa carregar Unicode branco de qualquer forma, o codificador e decodificador de URL mostra como a codificação percentual faz isso.

O processo, passo a passo

A ordem importa: a normalização é executada antes da conversão para minúsculas, e a substituição do separador é feita por último, para que nunca possa dividir uma letra criada pela normalização. A sequência:

  • Normalizar para NFKD — é se torna e mais um acente combinatório, fi se torna fi, o A de largura total se torna A.
  • Remover os acentos combinatórios (faixa U+0300–U+036F) — café se torna cafe.
  • Converter para minúsculas — Cafe se torna cafe.
  • Remover apóstrofos — don't se torna dont, sem deixar separadores soltos.
  • Substituir cada sequência de caracteres não alfanuméricos — espaços, pontuação, emoji, símbolos — por um único espaço.
  • Remover espaços extras e juntar as palavras com seu separador — um hífen por padrão.

O que a normalização NFKD consegue — e o que não consegue

A normalização lida bem com o alfabeto europeu com acentos: é, è, ü e amigos são convertidos para suas letras base — Ångström se torna angstrom, crème brûlée se torna creme-brulee. Caracteres de compatibilidade também são decompostos: ½ se expande para 1, uma barra de fração e 2, e a barra — sendo um símbolo — se torna o separador, então o slug lê 1-2.

O limite honesto são caracteres sem decomposição. A letra alemã ß não tem nenhuma, então Straße se torna stra-e — o Þ se transforma em um separador no meio da palavra. Surpreendente, mas não é um erro: ß→ss é uma regra de ortografia, não uma regra Unicode. O mesmo limite aparece para todos os scripts não latinos.

Scripts RTL, CJK e o caso de slug vazio

Árabe e hebraico são escritos da direita para a esquerda, mas a direção não é o obstáculo — a decomposição é. Suas letras não têm uma forma de decomposição em latim no NFKD, então sob uma política de slug ASCII elas são mapeadas para o separador. Um título misto mantém suas palavras passíveis de normalização; um título inteiramente em árabe, chinês ou emoji se normaliza para nada, e este gerador retorna um slug vazio em vez de adivinhar.

Aquele resultado vazio é informação, não uma falha: a política ASCII não consegue representar este título, e um placeholder como post-123 esconderia isso de você. As alternativas legítimas são um slug preservador de Unicode — os padrões modernos tratam URLs como IRIs, e navegadores codificam percentualmente caracteres não-ASCII na transmissão — ou transliteração com reconhecimento de idioma, o que precisa de mapeamentos que nenhuma tabela de normalização fornece.

Escolhendo o separador

O hífen é o padrão porque a web o assimila assim: as diretrizes de mecanismos de busca tratam há muito tempo hífens como separadores de palavras, enquanto sublinhados historicamente unem palavras. Sublinhado e ponto permanecem disponíveis para sistemas que esperam por eles.

Qualquer que seja sua escolha, a higienização é idêntica: sequências são reduzidas a um separador e ambos os ficam limpos, então 12 Dicas & Truques! nunca se torna -12-dicas-truques-.

Perguntas frequentes

Meu texto é enviado para algum lugar quando eu gero um slug?

Não. A geração de slug é um punhado de operações de string executadas após a página carregar — normalizar, decompor, converter para minúsculas, substituir, recortar. Nenhuma requisição é feita enquanto você converte, o que o painel Rede do DevTools confirma, e a Content-Security-Policy do site define connect-src 'self' para que o navegador bloquearia qualquer chamada de saída que um script tentasse.

Por que minúsculas e hífens — isso importa para SEO?

Caminhos são sensíveis a maiúsculas e minúsculas na maioria dos servidores, então /Guias e /guias são dois endereços que dividem links e análises; o uso de minúsculas evita isso. Hífens são lidos como espaços — por pessoas vasculhando páginas de resultados e por mecanismos de busca — enquanto um slug colado lê-se como uma única palavra. Nenhuma das duas é um fator de rankeamento isolado; ambas são vitórias de consistência de baixo custo.

Como a remoção de acentos realmente funciona?

A normalização NFKD decompe um caractere em suas partes: é se torna uma letra base e mais um acento agudo combinatório. O gerador remove os marcas combinatórias — uma faixa Unicode fixa — deixando apenas a letra. Ligaturas e formas de largura total se decompoem da mesma forma; é um processo mecânico de remoção de acentos, não uma tradução.

O que acontece com títulos em árabe, hebraico, chinês ou emoji?

Nenhum deles se decompõe em letras latinas, então sob a política ASCII eles são substituídos pelo separador como qualquer outro símbolo. Um título feito inteiramente desses caracteres se normaliza para um slug vazio — a ferramenta dizendo que a política não pode representá-lo. Slugs preservadores de Unicode são uma alternativa válida; a transliteração precisa de regras de idioma que esta ferramenta não simula.

Posso usar sublinhados ou pontos em vez de hífens?

Sim — o controle de separador aceita eles, e o resto do processo é inalterado. O hífen permanece o padrão porque mecanismos de busca o documentaram como separador de palavras, enquanto sublinhados historicamente foram unidores; consistência importa mais que a escolha.

Por que Straße se tornou stra-e, e não strasse?

A letra ß não tem decomposição NFKD — o Unicode a trata como uma letra própria — então sob a política ASCII ela é substituída pelo separador, mesmo no meio de uma palavra. Expandir ß para ss é uma regra de ortografia alemã que nenhuma tabela de normalização contém. Se você precisa de strasse, substitua ß por ss no título antes; o resto se normaliza como esperado.