KKwikfig.

Slug Generator

Turn any title or heading into a clean URL slug: accents are transliterated, punctuation is removed and words are joined exactly how web addresses need. Runs entirely in your browser — your numbers never leave this device.

Separator
Slug
creme-brulee-cafe-my-new-post

How it works

Slug = transliterate accented characters → lowercase → replace each run of non-alphanumeric characters with the separator → trim separators from both ends | Optional maximum length cuts at a word boundary
How accented characters are transliterated in slugs
CharacterBecomesCharacterBecomes
à á â ä åañn
è é ê ëeò ó ô ö øo
ì í î ïiù ú û üu
çcæae
ßssœoe

Paste a title and the generator produces the slug — the URL-safe tail of a web address. The transformation is a pipeline: accented characters are transliterated to their plain Latin equivalents (è becomes e, ñ becomes n, æ becomes ae, ß becomes ss), the text is lowercased, each run of characters that is not a letter or a digit is replaced by a single separator, and separators are trimmed from both ends so a slug never starts or ends with a hyphen. “Crème Brûlée & Café!” therefore becomes creme-brulee-cafe: the ampersand and exclamation mark vanish, and no double hyphens survive.

Two options shape the output. The separator is a hyphen by default — the convention search engines recommend for word separation in URLs — but an underscore can be selected for file names and legacy systems. A maximum length, when set, truncates the slug at a word boundary rather than mid-word, dropping the final partial word entirely, which keeps the shortened URL readable and avoids implying a word that is not there.

One trap to know: transliteration is a courtesy, not a translation. It maps common Latin-script accents, but scripts such as Arabic, Chinese or Cyrillic have no character-by-character mapping in this tool and their characters are dropped by the non-alphanumeric rule — for titles in those scripts, write the slug manually in the romanised form you use elsewhere. Generation runs in your browser; titles are never uploaded or stored.

Worked examples

Accents and punctuation stripped

Input
Crème Brûlée & Café!
Working
è, û and é transliterate to e, u and e; the ampersand and exclamation mark become separator runs that collapse and trim away.
Result
creme-brulee-cafe

A headline with a year and a dash

Input
Hello World — 2026!
Working
The em dash and the exclamation mark are non-alphanumeric runs, each collapsing to a single hyphen (or being trimmed at the end).
Result
hello-world-2026

Length limit cuts at a word boundary

Input
the quick brown fox jumps, first with Separator = underscore, then with Separator = hyphen and Maximum length = 15
Working
With the underscore separator, the five words are joined as the_quick_brown_fox_jumps (the same rule turns “My Post Title” into my_post_title). With hyphens and a 15-character limit, the raw cut would land inside “brown”, so the partial word is dropped entirely.
Result
Underscore form: the_quick_brown_fox_jumps · Limited to 15: the-quick

Frequently asked questions

Why hyphens and not underscores in URLs?

Search engines treat a hyphen as a word separator and an underscore as a joiner: “better-sleep” reads as two words, “better_sleep” can read as one coined term. That is why this generator defaults to hyphens for web addresses. Underscores remain the right choice for file names, code identifiers and systems that already use them consistently.

What happens to numbers and capital letters?

Numbers are kept as digits (2026 stays 2026 — a title like “10 Best Tips for Better Sleep in 2026!” becomes 10-best-tips-for-better-sleep-in-2026) and capitals are lowercased, because URLs are safest in lowercase: some servers treat /About and /about as different pages.

Why did characters from my language disappear?

The transliteration table covers Latin-script accents (French, Spanish, German, Turkish and similar). Characters with no Latin equivalent — Arabic, Chinese, Japanese, Cyrillic and others — are removed by the rule that keeps only a–z and 0–9. For those titles, type the romanised slug you want directly.

How does the maximum length decide where to cut?

It cuts at the last separator before the limit and drops the partial word beyond it, so “the quick brown fox jumps” limited to 15 characters gives “the-quick” rather than “the-quick-brow”. The result can be shorter than the limit — that is deliberate, since a whole-word slug reads better and guesses better.

Should I change a slug that is already live?

Only with a redirect in place. A slug is an address; changing it without redirecting the old address breaks every link, bookmark and search result pointing to it. Generate freely for new pages — for existing pages, treat the slug as permanent.

Is my title uploaded anywhere?

No. Slugs are generated in your browser; your text is never sent to a server, stored or tracked.

Related tools

More in Text Tools · Browse all tools