Slug Generator

Turn a list of titles into clean, URL-safe slugs without leaving the browser tab.

Runs on your deviceDeveloperWorkingNo account needed

What this tool does

Slug Generator rewrites each line you paste into something a URL can carry. It transliterates the characters it has a mapping for into plain ASCII, removes apostrophes without leaving a gap behind them, collapses every other run of non-alphanumeric characters into a single separator, and joins the surviving words back up. A few symbols are spelled out rather than discarded: & becomes and, @ becomes at, % becomes percent, and $, £ and € become usd, gbp and eur.

It works a line at a time, so a whole column of headlines converts in one pass, blank lines are skipped and surrounding spaces are trimmed. When two lines produce the same result the second is numbered — hello-world, then hello-world-2 — which keeps a batch internally unique. Four settings shape the output: hyphen or underscore, lowercase or keep as typed, a maximum length in characters, and a switch that drops common English words such as the, of and with.

The transliteration table is where the honest limit sits. Latin diacritics, the 33 Russian Cyrillic letters and the Greek alphabet are mapped, so Café and Привет come back as cafe and privet. The Cyrillic letters used outside Russian are absent: Ukrainian і and ї, Serbian ј and њ and the rest are treated as punctuation, so Київ comes back as ki-v rather than kyiv. Chinese, Japanese, Korean, Arabic, Hebrew and the Indic scripts are missing too, and since everything outside A–Z and 0–9 is stripped, a title written entirely in one of them produces an empty line rather than a slug. The duplicate numbering is similarly narrow: it only sees the lines in the box, and cannot know a permalink is already in use on your site. All of it happens in your browser — the titles are never uploaded.

How to use it

  1. Paste one title per line. Leading and trailing spaces are trimmed and blank lines are ignored, so a name column copied straight out of a spreadsheet works as it is.
  2. Choose the separator and the letter case. Hyphen produces the kebab case most content systems expect; underscore is there for the ones that insist on it. Lowercase is the default, and Keep as typed leaves capitals where you put them.
  3. Set a maximum length if the URLs must stay short. 0 means no limit. Above that, the slug is cut at the limit and then pulled back to the previous separator, provided that separator falls past the halfway mark.
  4. Drop common words for a tighter slug. The switch removes a fixed list of 32 English stop words. If a title consists of nothing but those words, they are kept rather than handing you an empty result.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Publishing a post with a readable permalink

A headline carrying a colon, an em dash and a percent sign becomes a slug you can paste into the CMS without tidying it by hand first.

Preparing URLs before a site migration

Convert the old page titles in bulk, sit the slugs beside the paths they replace, and you have both sides of a redirect map before anything moves.

Naming product or category pages from a spreadsheet

Paste the name column, take the slug column, and the URLs stay consistent instead of depending on who typed them that week.

Turning non-English titles into ASCII addresses

Russian, Greek and accented European headlines come back as readable Latin text rather than a line of percent-encoded escapes.

Questions

Are my titles uploaded anywhere?
No. The conversion runs in this browser tab, so the text you paste stays on the machine you typed it on, and the tool keeps working with the network disconnected.
What happens to accents and non-Latin alphabets?
Latin diacritics are reduced to their base letters, and Russian Cyrillic and Greek are transliterated character by character. The table stops there. Letters particular to Ukrainian, Serbian or Macedonian are stripped like punctuation, which splits the word around them, and Chinese, Japanese, Korean, Arabic, Hebrew and Indic scripts leave nothing behind at all.
Why did the length limit cut a word in half?
The slug is trimmed at the limit, then pulled back to the previous separator only when that separator sits past the halfway point. A very long first word has no earlier boundary to retreat to, so it is cut where the limit lands.
Does it check whether the slug is already used on my site?
No. The numbering compares the lines in the box against each other and appends 2, 3 and so on. It has no view of your site, so a slug that clashes with a page you already published will not be flagged here.
Which words does the drop-common-words option remove?
A fixed list of 32 English stop words — a, an, the, and, of, in, on, at, to, for, with and similar. The list cannot be edited from the page, and it knows nothing about other languages.
Should I use hyphens or underscores?
Hyphens, in almost every case: kebab case is what content systems generate and what search guidance has long recommended for separating words in a URL. Underscore is offered for systems that require it.
Can I keep capital letters?
Yes, with Keep as typed. Remember that URL paths are case-sensitive on most servers, so Hello_World and hello_world are two different addresses and only one of them will resolve.

Related tools