Gerador de URL Slugs

Transforme qualquer título em um URL slug limpo no seu navegador — um por vez ou uma lista inteira de uma vez. Transliteração real para cirílico e acentos, regras editáveis e sem envio de dados.

Insira o texto para conversão
Opções avançadas

O slug é a parte final legível de um endereço web — o my-first-post em example.com/blog/my-first-post. É a parte que uma pessoa pode ler antes de decidir se clica, e a parte que um mecanismo de busca lê como uma breve descrição do que a página contém, e por isso merece mais atenção do que um ID de banco de dados ou uma data. Este gerador gratuito transforma qualquer texto em um: cole um título em "Texto para converter", clique em "Gerar" e o resultado aparecerá com um botão de copiar ao lado. Os padrões são as configurações que a maioria dos sites deseja — letras minúsculas, hífens entre as palavras, palavras de preenchimento comuns removidas, letras não latinas transliteradas — para que um slug utilizável esteja a apenas um clique de distância, e cada uma dessas decisões é uma chave que você pode alterar.

Tudo acontece no seu próprio dispositivo. A página carrega um pequeno motor JavaScript e o executa localmente: seus títulos nunca são enviados (uploaded), nunca são registrados, e a ferramenta continua funcionando mesmo com a conexão desligada. É por isso também que o resultado é atualizado no momento em que você altera uma configuração. Vale a pena detalhar a ordem do processamento, pois é isso que torna a saída previsível: um link colado é primeiro reduzido ao seu último segmento de caminho, depois o texto é convertido em letras minúsculas, em seguida as stop words são removidas, os caracteres não latinos são transliterados, os números e caracteres especiais são removidos se você tiver solicitado, o que sobrar é unido com o seu separador, o resultado é cortado no comprimento máximo, e por fim uma repetição recebe um sufixo numérico. O "Texto para converter" aceita até 500.000 caracteres de uma vez, o que equivale a alguns milhares de títulos de artigos.

Uma linha entra, um slug sai. Cole uma lista inteira de títulos e cada linha se tornará seu próprio slug numerado, com o título original mostrado acima em cinza, de modo que, em um lote de cinquenta, você ainda possa saber qual slug pertence a qual título. Uma lista que já existe em um arquivo não precisa passar pela área de transferência: "Carregar do arquivo", o botão ao lado do campo de entrada, abre um arquivo de texto simples — .txt, .csv, .md, .json e afins — e joga o seu conteúdo no campo. Seu navegador lê esse arquivo exatamente da mesma maneira que lê o que você digita, e ele não é enviado a lugar nenhum. "Dividir entrada por" decide como a lista é cortada. "Automático" é o padrão: uma quebra de linha sempre separa os itens, enquanto uma vírgula só os separa quando a entrada for uma única linha cujas partes pareçam valores independentes — então "preço 3,5 milhões" e "Capítulo 5: resultados, conclusões" permanecem inteiros em vez de se despedaçarem em fragmentos. "Quebra de linha", "Vírgula" e "Espaço" forçam a escolha quando você já conhece o formato dos seus dados. O "Formato de saída" decide como um lote retorna quando você o pega — um por linha, separado por espaços ou separado por vírgulas — e tanto "Copiar tudo" quanto "Salvar em arquivo" seguem isso. O "Histórico" mantém os seus últimos 10 lotes no seu próprio navegador, para que uma lista que você converteu há uma hora ainda esteja lá.

O texto não latino é a parte que a maioria dos geradores de slug acerta mais ou menos e poucos acertam exatamente. Uma URL é mais segura em ASCII simples, então letras cirílicas, gregas, árabes, chinesas e europeias acentuadas precisam ser convertidas, e a única verdadeira questão é pela regra de quem. Esta página responde a isso em duas camadas. A camada geral cobre todos os alfabetos: uma biblioteca de transliteração com uma resposta ASCII sensata para quase qualquer caractere que você possa digitar, que é o que "Transliterar de" significa quando diz "Automático (qualquer idioma)". A camada específica é um conjunto de tabelas construídas manualmente para os idiomas onde a resposta genérica não é aquela que o país realmente usa; o menu "Transliterar de" cita os que têm uma tabela hoje, e o conjunto cresce à medida que a ferramenta alcança mais idiomas que precisem de uma. Escolher um deles carrega sua tabela em uma grade editável sob "Regras de transliteração", onde cada letra é um campo de texto que você pode mudar, e "Redefinir regras para o padrão" a coloca de volta. A tabela ucraniana segue a Resolução nº 55 de 2010 do Conselho de Ministros, o padrão impresso nos passaportes ucranianos, incluindo os detalhes que são fáceis de perder: зг se torna zgh em vez de zh para se manter distinto de ж; є, ї, й, ю e я tomam uma forma no início de uma palavra e outra dentro dela; e o apóstrofo e o sinal brando são descartados sem iniciar uma nova palavra, de modo que Знам'янка sai como znamianka e não znamyanka. O alemão usa por padrão a forma expandida ä → ae, ö → oe, ü → ue que os endereços alemães realmente utilizam, com uma variante simples ä → a se você preferir.

A opção "Remover stop words" vem ativada por padrão. Ela descarta as pequenas palavras de conexão — a, the, and, of, for — que alongam um slug sem adicionar significado a ele. A lista sob "Stop words" é totalmente editável e chega já preenchida: uma lista em inglês mais uma lista para o idioma da página em que você está, para que a página ucraniana conheça в, на, та e і, e a página alemã conheça der, die e das. Adicione suas próprias palavras, exclua as que deseja manter, ou desligue o recurso por completo, caso em que o campo ficará cinza em vez de fingir que ainda importa. Duas observações honestas sobre isso. Remover stop words é um pequeno ganho de organização em vez de uma alavanca de ranqueamento — você obtém um endereço mais curto e limpo, não uma posição melhor. E se todas as palavras em um título estiverem na lista, o resultado honesto não é nada, então a ferramenta te avisa isso em vez de te entregar uma caixa vazia.

Os demais interruptores decidem o formato. "Separador no slug" escolhe o que fica entre as palavras, e o padrão de hífen não é uma questão de gosto: o Google lê um hífen como um separador de palavras e um underline como um conector, de forma que my_first_post chega a um rastreador como uma única palavra longa enquanto my-first-post chega como três. O "Underline (_)" está lá para os sistemas que insistem nele. "Letras minúsculas" está ativado porque a maioria dos servidores trata endereços como sensíveis a maiúsculas e minúsculas (case-sensitive), e misturar tamanhos de caixa é uma maneira fácil de acabar com duas URLs para uma única página. "Remover caracteres especiais" remove tudo o que não for letra, dígito, espaço, hífen ou underline, que é o que mantém a pontuação, aspas e emojis fora de um endereço — emojis são removidos antes da transliteração especificamente para que um foguete não vire a palavra foguete. "Remover números" vem desativado, porque um número em um título geralmente é parte dele. O "Comprimento máximo" vai de 10 a 200 e o padrão é 80; quando um slug for mais longo do que isso, o motor faz o corte na última palavra inteira que couber, em vez de cortar no meio de uma. O número ao lado de cada resultado é o seu comprimento em caracteres, e ele fica vermelho depois de 60 — não é um limite rígido, mas o ponto onde um slug começa a ser truncado nos resultados de busca e se torna incômodo para colar em uma mensagem.

Mais duas opções existem porque transformam uma conversão em lote de volta para um trabalho de um clique. "Tornar slugs únicos" pega o caso em que dois títulos diferentes se reduzem ao mesmo slug — "Top 10 dicas" e "Top-10 dicas" ambos se tornam top-10-dicas — e dá ao segundo um -2, ao terceiro um -3, encurtando a base primeiro se o sufixo ultrapassar o comprimento máximo. Duas páginas em um único endereço é um problema muito mais barato de detectar nesta lista do que no seu CMS. "Pegar o slug de uma URL colada" funciona na outra direção: cole um link completo e a ferramenta pega a última parte do caminho, descarta a query string e qualquer finalização como .html ou .php, e decodifica a codificação com porcentagem (percent-encoding), de forma que um link da Wikipédia terminando em %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 volta como lviv em vez de uma sequência de dígitos hexadecimais. Isso só é disparado quando a linha inteira for um link, para que um endereço citado no meio de uma frase seja deixado onde está.

Por que escolher este gerador de slugs?

Slugs são necessários onde quer que uma página tenha que carregar um endereço legível. Um blog ou site de notícias transforma cada manchete em um, que é o caso em torno do qual esta ferramenta foi moldada: cole as manchetes da semana, obtenha as URLs da semana. Uma loja virtual faz o mesmo para nomes de produtos e categorias, geralmente em lote após uma importação, e geralmente em um idioma cujo alfabeto o endereço não pode suportar. Documentações e bases de conhecimento constroem âncoras e nomes de arquivos da mesma maneira. Além dos endereços web, essa mesma string limpa é o que você quer para um nome de arquivo que não quebre em outro sistema operacional, uma chave de banco de dados que uma pessoa consiga ler em um log, o nome de uma branch, um nome de imagem em uma biblioteca de mídia, ou o identificador de uma seção em um gerador de sites estáticos. Qualquer lugar em que um nome legível para humanos tenha que sobreviver ao ser colocado em um campo legível por máquinas é um lugar ao qual um slug pertence.

Vale a pena conhecer alguns limites antes de depender dele. Este é um gerador, não um validador: ele não vai verificar se um slug já está sendo usado no seu site, porque ele não tem ideia do que seu site contém — a exclusividade que ele garante é dentro do lote na sua frente. Redirecionamentos também são o seu trabalho; alterar o slug de uma página publicada quebra seu endereço antigo, e essa é uma decisão para o seu CMS, e não para esta ferramenta. "Salvar em arquivo" escreve em texto simples, não em CSV ou JSON. A divisão automática toma uma decisão de julgamento sobre vírgulas que está correta em quase todos os casos, mas não em todos eles, que é exatamente o motivo pelo qual "Dividir entrada por" permite que você a anule. E a transliteração é uma convenção em vez de uma tradução — München se torna muenchen, não Munich — portanto, quando uma página tem um nome estabelecido no idioma de destino, esse nome é um slug melhor do que qualquer conversão automática do original.

FAQ

Como crio um URL slug?

Cole o seu título no "Texto para converter" e clique em "Gerar". O resultado aparecerá com um botão de copiar ao lado, convertido com os padrões que a maioria dos sites deseja: letras minúsculas, hífens entre as palavras, palavras de preenchimento removidas e letras não latinas transliteradas. Cada uma dessas opções é uma chave que você pode mudar, e as "Opções avançadas" guardam o resto — separador, comprimento máximo, lista de stop words e regras de transliteração.

Posso converter uma lista inteira de títulos de uma vez?

Sim. Cole até 500.000 caracteres — alguns milhares de manchetes — ou puxe-os direto de um arquivo com "Carregar do arquivo", o botão ao lado do campo de entrada, que o lê no seu navegador sem enviar a lugar nenhum. Cada linha se torna seu próprio slug, numerado, com o título do qual surgiu mostrado acima para que você possa combiná-los. "Dividir entrada por" controla como a lista é dividida, "Formato de saída" decide se o lote retorna como linhas, separados por espaços ou separados por vírgulas, e tanto "Copiar tudo" quanto "Salvar em arquivo" pegam tudo de uma vez.

Como o gerador lida com cirílico e letras acentuadas?

Ele os translitera para ASCII, em duas camadas. Qualquer alfabeto — cirílico, grego, árabe, chinês, latim acentuado — é coberto por uma biblioteca geral de transliteração, que é o que "Automático (qualquer idioma)" utiliza. Em cima disso encontram-se as tabelas construídas à mão para os idiomas onde a resposta genérica não é a que esses países de fato usam; o menu "Transliterar de" mostra as que possuem uma tabela hoje. Escolha uma e a sua tabela é carregada, com cada letra editável. A camada geral converte Á → a e Ç → c, que é exatamente o que os endereços neste idioma fazem — Pão se torna pao.

Qual padrão de transliteração é usado para ucraniano?

A Resolução nº 55 do Conselho de Ministros de 27 de janeiro de 2010 — o padrão usado nos passaportes ucranianos. Isso inclui as partes que são fáceis de errar: зг se torna zgh para se manter distinto de ж, as letras є, ї, й, ю e я assumem uma forma no início da palavra e outra dentro dela, e o apóstrofo e o sinal brando são descartados sem começar uma nova palavra, de forma que Знам'янка se torna znamianka em vez de znamyanka. Uma segunda variante com ya, yu e yi em todos os lugares está disponível se você preferir um visual mais simples.

Posso mudar como uma letra em particular é transliterada?

Sim. Abra "Regras de transliteração" e cada letra da tabela é um campo de texto: digite o que você quiser que aquela letra se torne, e o resultado será atualizado enquanto você digita. Limpar um campo remove a letra inteiramente. Suas edições são lembradas no seu próprio navegador para a próxima vez, e "Redefinir regras para o padrão" restaura a tabela padrão sempre que você a quiser de volta.

O que são stop words e eu deveria removê-las?

Elas são as pequenas palavras de conexão — a, the, and, of, for (e os equivalentes como de, do, para) — que tornam um slug mais longo sem deixá-lo mais claro. Removê-las é o padrão e a lista sob "Stop words" é editável, chegando pré-preenchida com uma lista em inglês mais uma para o idioma da página em que você está. Mas seja honesto sobre o benefício: isso produz um endereço mais curto e limpo, não uma melhor posição nas buscas. Se um título consistir inteiramente de stop words, a ferramenta avisa isso em vez de devolver um slug vazio.

Eu deveria usar hífens ou underlines em um slug?

Hífens, a menos que algo no seu sistema exija o contrário. O Google trata um hífen como um separador entre as palavras e um underline como um caractere que as une, portanto my_first_post é lido como uma única palavra comprida enquanto my-first-post é lido como três. O gerador usa o hífen como padrão por esse motivo; "Separador no slug" oferece o "Underline (_)" para os sistemas que precisam dele.

Qual o tamanho ideal de um URL slug?

Curto o bastante para se ler de relance — as primeiras palavras carregam o significado e o resto é geralmente o fim de uma frase. O número ao lado de cada resultado é o seu comprimento em caracteres e fica vermelho após 60, que é mais ou menos o limite onde os resultados de busca começam a cortá-lo e onde se torna desconfortável colá-lo em uma mensagem. O "Comprimento máximo" estabelece um teto de 10 a 200 caracteres, e o padrão é 80.

Ele corta as palavras ao meio quando o slug é longo demais?

Não. Quando um slug ultrapassa o comprimento máximo, o motor retrocede até a última palavra inteira que cabe e a corta ali, para que um slug truncado ainda seja lido como palavras em vez de terminar no meio de uma sílaba. O mesmo se aplica quando um sufixo numérico é adicionado a uma repetição: a base é encurtada primeiro, para que o slug final ainda respeite o seu limite.

O que acontece se dois títulos gerarem o mesmo slug?

A opção "Tornar slugs únicos" vem ativada e cuida disso: a primeira ocorrência fica com o slug normal, a segunda recebe -2, a terceira -3, e assim por diante. Isso pega o caso comum em que dois títulos diferentes se reduzem à mesma coisa — "Top 10 dicas" e "Top-10 dicas" ambos se tornam top-10-dicas. Ao desativá-la, você recebe o resultado bruto, com as duplicatas intactas. Observe que a exclusividade só é garantida dentro do lote que você acabou de converter; a ferramenta não pode saber o que já existe no seu site.

Posso colar uma URL em vez de um título?

Sim. A opção "Pegar o slug de uma URL colada" vem ativada por padrão, e quando uma linha inteira for um link a ferramenta extrai a última parte do caminho, descarta a query string e qualquer fim .html ou .php, e decodifica o percent-encoding — de modo que um endereço da Wikipédia terminando em %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 volta como lviv em vez de uma sequência de códigos hexadecimais. Isso só é disparado em uma linha que seja unicamente um link, para que uma URL citada dentro de uma frase seja tratada como um texto normal.

O meu texto é enviado para um servidor?

Não. A conversão é executada no seu navegador como um JavaScript local. Nada é enviado por upload, nada é registrado em logs, e assim que a página é carregada, ela continua a funcionar com a conexão desligada. Manchetes não publicadas, nomes de produtos internos e trabalhos para clientes permanecem na sua máquina, que é a razão prática para preferir uma ferramenta local em vez de uma baseada em servidor para esta tarefa em particular.

Por que minha frase única se dividiu em dois slugs?

Porque ela continha uma vírgula e "Dividir entrada por" estava definido como "Automático". Esse modo trata a quebra de linha como um separador definitivo e a vírgula como um separador provável, e apenas divide em vírgulas quando as partes de uma única linha parecem valores independentes — um decimal como 3,5 ou uma frase com dois pontos é intencionalmente deixada intacta. Quando um título é dividido e não deveria, defina "Dividir entrada por" para "Quebra de linha" e a entrada só será cortada onde você de fato tiver pressionado Enter.